summaryrefslogtreecommitdiff
path: root/plugins/Watrack/popup/pop_dlg.inc
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Watrack/popup/pop_dlg.inc')
-rw-r--r--plugins/Watrack/popup/pop_dlg.inc179
1 files changed, 179 insertions, 0 deletions
diff --git a/plugins/Watrack/popup/pop_dlg.inc b/plugins/Watrack/popup/pop_dlg.inc
new file mode 100644
index 0000000000..129b538780
--- /dev/null
+++ b/plugins/Watrack/popup/pop_dlg.inc
@@ -0,0 +1,179 @@
+{PopUp Option Dialog}
+
+// PopUp options
+const
+ DLGPOPUP = 'POPUP';
+
+function DlgPopUpOpt(Dialog:HWnd;hMessage:Uint;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall;
+const
+ dlginit:boolean=false;
+var
+ tmp:longbool;
+ ppd:PPOPUPDATAW;
+ fore,back:HWND;
+begin
+ result:=0;
+ case hMessage of
+ WM_INITDIALOG: begin
+ TranslateDialogDefault(Dialog);
+ dlginit:=false;
+
+ SetDlgItemTextW(Dialog,IDC_POPUP_TITLE,PopTitle);
+ SetDlgItemTextW(Dialog,IDC_POPUP_TEXT ,PopText);
+
+ CheckDlgButton(Dialog,IDC_SHOWFILE ,PopUpFile);
+ CheckDlgButton(Dialog,IDC_REQUEST ,PopRequest);
+
+ CheckDlgButton(Dialog,IDC_ACTLEFTCLOSE ,ord(LoByte(PopUpAction)=0));
+ CheckDlgButton(Dialog,IDC_ACTLEFTINFO ,ord(LoByte(PopUpAction)=1));
+ CheckDlgButton(Dialog,IDC_ACTLEFTPLAYER ,ord(LoByte(PopUpAction)=2));
+ CheckDlgButton(Dialog,IDC_ACTLEFTNEXT ,ord(LoByte(PopUpAction)=3));
+ CheckDlgButton(Dialog,IDC_ACTRIGHTCLOSE ,ord(HiByte(PopUpAction)=0));
+ CheckDlgButton(Dialog,IDC_ACTRIGHTINFO ,ord(HiByte(PopUpAction)=1));
+ CheckDlgButton(Dialog,IDC_ACTRIGHTPLAYER,ord(HiByte(PopUpAction)=2));
+ CheckDlgButton(Dialog,IDC_ACTRIGHTNEXT ,ord(HiByte(PopUpAction)=3));
+
+ CheckDlgButton(Dialog,IDC_USEBUTTONS,PopUpButtons);
+
+ SetDlgItemInt (Dialog,IDC_DELAY,PopUpPause,false);
+
+ if PopUpDelay<0 then
+ CheckDlgButton(Dialog,IDC_DELAYPERM,BST_CHECKED)
+ else if PopUpDelay=0 then
+ CheckDlgButton(Dialog,IDC_DELAYDEF,BST_CHECKED)
+ else
+ CheckDlgButton(Dialog,IDC_DELAYCUST,BST_CHECKED);
+ if PopUpDelay<=0 then
+ EnableWindow(GetDlgItem(Dialog,IDC_DELAY),false);
+
+ SendDlgItemMessage(Dialog,IDC_MACRO_HELP,BM_SETIMAGE,IMAGE_ICON,
+ CallService(MS_SKIN_LOADICON,SKINICON_OTHER_HELP,0));
+
+ fore:=GetDlgItem(Dialog,IDC_FORE);
+ back:=GetDlgItem(Dialog,IDC_BACK);
+ SendMessage(fore,CPM_SETCOLOUR,0,PopUpFore);
+ SendMessage(fore,CPM_SETDEFAULTCOLOUR,0,GetSysColor(COLOR_BTNTEXT));
+ SendMessage(back,CPM_SETCOLOUR,0,PopUpBack);
+ SendMessage(back,CPM_SETDEFAULTCOLOUR,0,GetSysColor(COLOR_BTNFACE));
+ SetDlgItemInt(Dialog,IDC_FORE,PopUpFore,false);
+ SetDlgItemInt(Dialog,IDC_BACK,PopUpBack,false);
+ if PopUpColor<2 then
+ begin
+ EnableWindow(fore,false);
+ EnableWindow(back,false);
+ end;
+ case PopUpColor of
+ 0: CheckDlgButton(Dialog,IDC_COLORDEF ,BST_CHECKED);
+ 1: CheckDlgButton(Dialog,IDC_COLORWIN ,BST_CHECKED);
+ 2: CheckDlgButton(Dialog,IDC_COLORCUST,BST_CHECKED);
+ end;
+ dlginit:=true;
+ end;
+
+ WM_COMMAND: begin
+ if (wParam shr 16)=BN_CLICKED then
+ begin
+ fore:=GetDlgItem(Dialog,IDC_FORE);
+ back:=GetDlgItem(Dialog,IDC_BACK);
+ case LoWord(wParam) of
+ IDC_MACRO_HELP: CallService(MS_WAT_MACROHELP,Dialog,0);
+ IDC_TEST: begin
+ mGetMem(ppd,SizeOf(TPOPUPDATAW));
+ FillChar(ppd^,SizeOf(ppd^),0);
+ ppd^.lchIcon:=LoadSkinnedIcon(SKINICON_OTHER_MIRANDA);
+ StrCopyW(ppd^.lpwzContactName,TranslateW('popup test'));
+ StrCopyW(ppd^.lpwzText,TranslateW('second line'));
+ if IsDlgButtonChecked(Dialog,IDC_COLORDEF)=BST_CHECKED then
+ begin
+ ppd^.colorBack:=0;
+ ppd^.colorText:=0;
+ end
+ else if IsDlgButtonChecked(Dialog,IDC_COLORWIN)=BST_CHECKED then
+ begin
+ ppd^.colorBack:=GetSysColor(COLOR_BTNFACE);
+ ppd^.colorText:=GetSysColor(COLOR_BTNTEXT);
+ end
+ else
+ begin
+ ppd^.colorBack:=SendMessage(back,CPM_GETCOLOUR,0,0);
+ ppd^.colorText:=SendMessage(fore,CPM_GETCOLOUR,0,0);
+ end;
+ CallService(MS_POPUP_ADDPOPUPW,twparam(ppd),0);
+ mFreeMem(ppd);
+ end;
+ IDC_DELAYCUST:
+ EnableWindow(GetDlgItem(Dialog,IDC_DELAY),true);
+ IDC_DELAYDEF,IDC_DELAYPERM:
+ EnableWindow(GetDlgItem(Dialog,IDC_DELAY),false);
+ IDC_COLORCUST: begin
+ EnableWindow(fore,true);
+ EnableWindow(back,true);
+ end;
+ IDC_COLORDEF,IDC_COLORWIN: begin
+ EnableWindow(fore,false);
+ EnableWindow(back,false);
+ end;
+ end;
+ end;
+ SendMessage(GetParent(Dialog),PSM_CHANGED,0,0);
+ result:=0;
+ end;
+
+ WM_NOTIFY: begin
+ if dlginit then
+ begin
+ if integer(PNMHdr(lParam)^.code)=PSN_APPLY then
+ begin
+
+ mFreeMem(PopTitle);
+ mFreeMem(PopText);
+ PopTitle:=GetDlgText(Dialog,IDC_POPUP_TITLE);
+ PopText :=GetDlgText(Dialog,IDC_POPUP_TEXT);
+
+ PopUpButtons:=IsDlgButtonChecked(Dialog,IDC_USEBUTTONS);
+
+ PopUpFile :=IsDlgButtonChecked(Dialog,IDC_SHOWFILE);
+ PopRequest:=IsDlgButtonChecked(Dialog,IDC_REQUEST);
+//color
+ if IsDlgButtonChecked(Dialog,IDC_COLORDEF)=BST_CHECKED then
+ PopUpColor:=0
+ else if IsDlgButtonChecked(Dialog,IDC_COLORWIN)=BST_CHECKED then
+ PopUpColor:=1
+ else
+ begin
+ PopUpColor:=2;
+ PopUpFore:=SendDlgItemMessage(Dialog,IDC_FORE,CPM_GETCOLOUR,0,0);
+ PopUpBack:=SendDlgItemMessage(Dialog,IDC_BACK,CPM_GETCOLOUR,0,0);
+ end;
+//pause
+ if IsDlgButtonChecked(Dialog,IDC_DELAYDEF)=BST_CHECKED then
+ PopUpDelay:=0
+ else if IsDlgButtonChecked(Dialog,IDC_DELAYPERM)=BST_CHECKED then
+ PopUpDelay:=-1
+ else
+ begin
+ PopUpDelay:=1;
+ PopUpPause:=GetDlgItemInt(Dialog,IDC_DELAY,tmp,false);
+ end;
+//action
+ if IsDlgButtonChecked(Dialog,IDC_ACTLEFTINFO)=BST_CHECKED then
+ PopUpAction:=1
+ else if IsDlgButtonChecked(Dialog,IDC_ACTLEFTPLAYER)=BST_CHECKED then
+ PopUpAction:=2
+ else if IsDlgButtonChecked(Dialog,IDC_ACTLEFTNEXT)=BST_CHECKED then
+ PopUpAction:=3
+ else
+ PopUpAction:=0;
+ if IsDlgButtonChecked(Dialog,IDC_ACTRIGHTINFO)=BST_CHECKED then
+ inc(PopUpAction,$100)
+ else if IsDlgButtonChecked(Dialog,IDC_ACTRIGHTPLAYER)=BST_CHECKED then
+ inc(PopUpAction,$200)
+ else if IsDlgButtonChecked(Dialog,IDC_ACTRIGHTNEXT)=BST_CHECKED then
+ inc(PopUpAction,$300);
+
+ savepopup;
+ end;
+ end;
+ end;
+ end;
+end;