35 #pragma package(smart_init)
36 #pragma resource "*.dfm"
45 : TForm(Owner), _currentpos(0), _lastindex(0), _lastlength(0)
61 lstSongs->ItemHeight = Canvas->TextHeight(
'W');
70 void __fastcall TfrmPlaylist::DeleteSelected(
void)
84 const char*
States[odComboBoxEdit + 1] =
85 {
"odSelected",
"odGrayed",
"odDisabled",
"odChecked",
"odFocused",
"odDefault",
"odHotLight",
"odInactive",
86 "odNoAccel",
"odNoFocusRect",
"odReserved1",
"odReserved2",
"odComboBoxEdit"
93 for (Windows__1 i = odSelected ; i < odComboBoxEdit ; i++)
95 if (State.Contains(i))
96 setstr += AnsiString(States[i]) +
" ";
102 TListBox * ListBox = (TListBox *) Control;
103 AnsiString ItemText = ListBox->Items->Strings[Index];
104 TCanvas * Canvas = ListBox->Canvas;
106 if (State.Contains(odFocused))
112 Canvas->Font->Color = clRed;
116 Canvas->TextOut(Rect.Left +
Offset, Rect.Top, ItemText);
119 Canvas->Font->Color = clWindowText;
124 int Index,
const TRect &Rect,
125 TOwnerDrawState State)
127 TListBox * ListBox = (TListBox *) Control;
128 AnsiString ItemText = ListBox->Items->Strings[Index];
129 TCanvas * Canvas = ListBox->Canvas;
131 if (State.Contains(odFocused))
137 Canvas->FillRect(Rect);
142 void __fastcall TfrmPlaylist::DropFiles(TMessage& Msg)
145 char CFileName[MAX_PATH];
146 std::auto_ptr<TStringList> Files(
new TStringList);
147 void * hDrop = (
void *) Msg.WParam;
151 DragQueryPoint(hDrop, &DropPoint);
154 DropIndex =
lstSongs->ItemAtPos(DropPoint,
true);
157 len = DragQueryFile((
void *) hDrop, 0xFFFFFFFF, NULL, 0);
158 for (i = 0 ; i < len ; i++){
159 if (DragQueryFile((
void *) hDrop, i, CFileName, MAX_PATH) > 0){
160 Files->Add(CFileName);
164 DragFinish((
void *) Msg.WParam);
176 int DropIndex =
lstSongs->ItemAtPos(TPoint(X, Y),
false);
200 DragAcceptFiles(
lstSongs->Handle,
true);
208 int Index =
lstSongs->ItemAtPos(TPoint(X, Y),
true);
247 BelowIndex =
lstSongs->ItemAtPos(
lstSongs->ScreenToClient(Mouse->CursorPos),
true);
248 mnuPlay->Enabled = (BelowIndex > -1);
266 DeleteSelected();
break;
294 if (PtInRect(&(
pbSongPos->ClientRect), TPoint(X,Y)))