summaryrefslogtreecommitdiff
path: root/plugins/Actman/i_visual.inc
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Actman/i_visual.inc')
-rw-r--r--plugins/Actman/i_visual.inc1073
1 files changed, 1073 insertions, 0 deletions
diff --git a/plugins/Actman/i_visual.inc b/plugins/Actman/i_visual.inc
new file mode 100644
index 0000000000..ab32488165
--- /dev/null
+++ b/plugins/Actman/i_visual.inc
@@ -0,0 +1,1073 @@
+{Dialog visual part, depends of Dialog window}
+ procedure SHControl(ctrl,mode:dword);
+ begin
+ ShowWindow(GetDlgItem(Dialog,ctrl),mode);
+ end;
+
+ procedure SetupControls(group,mode:dword);
+ begin
+ case group of
+ ACT_CONTACT: begin
+ SHControl(IDC_STAT_CONTACT,mode);
+ SHControl(IDC_CONTACTLIST ,mode);
+ SHControl(IDC_CNT_KEEP ,mode);
+ SHControl(IDC_CNT_FILTER ,mode);
+ SHControl(IDC_STAT_FORMAT ,mode);
+ SHControl(IDC_EDIT_FORMAT ,mode);
+ SHControl(IDC_CNT_APPLY ,mode);
+ SHControl(IDC_STAT_FHELP ,mode);
+ end;
+ ACT_SERVICE: begin
+ SHControl(IDC_STAT_WPAR ,mode);
+ SHControl(IDC_STAT_LPAR ,mode);
+ SHControl(IDC_STAT_WPAR1 ,mode);
+ SHControl(IDC_STAT_LPAR1 ,mode);
+ SHControl(IDC_STAT_SERVICE,mode);
+ SHControl(IDC_EDIT_SERVICE,mode);
+ SHControl(IDC_SRV_SRVC ,mode);
+ SHControl(IDC_FLAG_WPAR ,mode);
+ SHControl(IDC_FLAG_LPAR ,mode);
+
+ SHControl(IDC_RES_GROUP ,mode);
+ SHControl(IDC_RES_POPUP ,mode);
+ SHControl(IDC_RES_MESSAGE ,mode);
+ SHControl(IDC_RES_INSERT ,mode);
+
+ SHControl(IDC_SRV_RESULT ,mode);
+ SHControl(IDC_SRV_RESSTAT ,mode);
+
+ if mode=SW_SHOW then
+ begin
+//!! Check parameter type
+ if CB_GetData(GetDlgItem(Dialog,IDC_FLAG_WPAR))=ptStruct then
+// if SendDlgItemMessage(Dialog,IDC_FLAG_WPAR,CB_GETCURSEL,0,0)=ptStruct then
+ begin
+ SHControl(IDC_WSTRUCT ,SW_SHOW);
+ SHControl(IDC_EDIT_WPAR,SW_HIDE);
+ SHControl(IDC_SRV_WPAR ,SW_HIDE);
+ end
+ else
+ begin
+ SHControl(IDC_WSTRUCT ,SW_HIDE);
+ SHControl(IDC_EDIT_WPAR,SW_SHOW);
+ SHControl(IDC_SRV_WPAR ,SW_SHOW);
+ end;
+ if CB_GetData(GetDlgItem(Dialog,IDC_FLAG_LPAR))=ptStruct then
+// if SendDlgItemMessage(Dialog,IDC_FLAG_LPAR,CB_GETCURSEL,0,0)=ptStruct then
+ begin
+ SHControl(IDC_LSTRUCT ,SW_SHOW);
+ SHControl(IDC_EDIT_LPAR,SW_HIDE);
+ SHControl(IDC_SRV_LPAR ,SW_HIDE);
+ end
+ else
+ begin
+ SHControl(IDC_LSTRUCT ,SW_HIDE);
+ SHControl(IDC_EDIT_LPAR,SW_SHOW);
+ SHControl(IDC_SRV_LPAR ,SW_SHOW);
+ end;
+
+ case CB_GetData(GetDlgItem(Dialog,IDC_SRV_RESULT)) of
+ sresHex: ;
+ sresInt: SHControl(IDC_RES_SIGNED,SW_SHOW);
+ sresString: begin
+ SHControl(IDC_RES_UNICODE,SW_SHOW);
+ SHControl(IDC_RES_FREEMEM,SW_SHOW);
+ end;
+ sresStruct: ;
+ end;
+
+ end
+ else
+ begin
+ SHControl(IDC_WSTRUCT ,SW_HIDE);
+ SHControl(IDC_LSTRUCT ,SW_HIDE);
+ SHControl(IDC_SRV_WPAR ,SW_HIDE);
+ SHControl(IDC_SRV_LPAR ,SW_HIDE);
+ SHControl(IDC_EDIT_WPAR ,SW_HIDE);
+ SHControl(IDC_EDIT_LPAR ,SW_HIDE);
+ SHControl(IDC_RES_FREEMEM,SW_HIDE);
+ SHControl(IDC_RES_UNICODE,SW_HIDE);
+ SHControl(IDC_RES_SIGNED ,SW_HIDE);
+ end;
+ end;
+ ACT_PROGRAM: begin
+ SHControl(IDC_PROCESS_GROUP,mode);
+ SHControl(IDC_PROGRAM ,mode);
+ SHControl(IDC_EDIT_PROCTIME,mode);
+ SHControl(IDC_EDIT_PRGPATH ,mode);
+ SHControl(IDC_PRG_PRG ,mode);
+ SHControl(IDC_EDIT_PRGARGS ,mode);
+ SHControl(IDC_PRG_ARG ,mode);
+ SHControl(IDC_STAT_PROCTIME,mode);
+ SHControl(IDC_STAT_PRGPATH ,mode);
+ SHControl(IDC_STAT_PRGARGS ,mode);
+
+ SHControl(IDC_PRSTART_GROUP,mode);
+ SHControl(IDC_FLAG_NORMAL ,mode);
+ SHControl(IDC_FLAG_HIDDEN ,mode);
+ SHControl(IDC_FLAG_MAXIMIZE,mode);
+ SHControl(IDC_FLAG_MINIMIZE,mode);
+
+ SHControl(IDC_FLAG_CURPATH,mode);
+ SHControl(IDC_FLAG_CONTINUE,mode);
+ SHControl(IDC_FLAG_PARALLEL,mode);
+
+ if mode=SW_SHOW then
+ begin
+ if isVarsInstalled then
+ SHControl(IDC_HLP_FVARS,SW_SHOW);
+ end
+ else
+ SHControl(IDC_HLP_FVARS,SW_HIDE);
+ end;
+ ACT_TEXT: begin
+ SHControl(IDC_FLAG_CLIP ,mode);
+ SHControl(IDC_FLAG_MESSAGE,mode);
+ SHControl(IDC_CLIP_COPYTO ,mode);
+ SHControl(IDC_CLIP_PASTE ,mode);
+ SHControl(IDC_CLIP_GROUP ,mode);
+ SHControl(IDC_FILE_ENC ,mode);
+
+ SHControl(IDC_FLAG_FILE ,mode);
+ SHControl(IDC_FILE_PATH ,mode);
+ SHControl(IDC_TXT_FILE ,mode);
+ SHControl(IDC_FILE_FILEBTN,mode);
+ SHControl(IDC_FILE_READ ,mode);
+ SHControl(IDC_FILE_WRITE ,mode);
+ SHControl(IDC_FILE_APPEND ,mode);
+ SHControl(IDC_FILE_GROUP ,mode);
+
+ SHControl(IDC_TXT_TEXT ,mode);
+ SHControl(IDC_EDIT_INSERT ,mode);
+ SHControl(IDC_STAT_INSERT ,mode);
+
+ if mode=SW_SHOW then
+ begin
+ if isVarsInstalled then
+ SHControl(IDC_HLP_VARS,SW_SHOW);
+ end
+ else
+ SHControl(IDC_HLP_VARS,SW_HIDE);
+ end;
+ ACT_ADVANCE: begin
+ SHControl(IDC_CONDITION,mode);
+ SHControl(IDC_FLAG_GT ,mode);
+ SHControl(IDC_FLAG_LT ,mode);
+ SHControl(IDC_FLAG_EQ ,mode);
+ SHControl(IDC_FLAG_NOP ,mode);
+ SHControl(IDC_FLAG_NOT ,mode);
+ SHControl(IDC_ADV_VALUE,mode);
+ SHControl(IDC_STAT_VAL ,mode);
+ SHControl(IDC_ADV_ASINT,mode);
+
+ SHControl(IDC_OPERATION ,mode);
+ SHControl(IDC_FLAG_BREAK,mode);
+ SHControl(IDC_FLAG_JUMP ,mode);
+ SHControl(IDC_FLAG_ANOP ,mode);
+
+ SHControl(IDC_FLAG_MATH,mode);
+ SHControl(IDC_ADV_OPER ,mode);
+ SHControl(IDC_ADV_VAL2 ,mode);
+ SHControl(IDC_ADV_VAL1 ,mode);
+
+ if mode=SW_SHOW then
+ begin
+ if isVarsInstalled then
+ SHControl(IDC_ADV_HVARS,SW_SHOW);
+ end
+ else
+ SHControl(IDC_ADV_HVARS,SW_HIDE);
+ SHControl(IDC_FLAG_VARS,mode);
+ SHControl(IDC_ADV_VARS ,mode);
+ end;
+ ACT_CHAIN: begin
+ SHControl(IDC_STAT_GROUPS,mode);
+ SHControl(IDC_GROUP_LIST ,mode);
+ end;
+ ACT_RW: begin
+ SHControl(IDC_STAT_CONTACT,mode);
+ SHControl(IDC_CONTACTLIST ,mode);
+
+ SHControl(IDC_RW_OPER ,mode);
+ SHControl(IDC_RW_VAL ,mode);
+ SHControl(IDC_RW_READ ,mode);
+ SHControl(IDC_RW_WRITE ,mode);
+ SHControl(IDC_RW_DELETE ,mode);
+ SHControl(IDC_RW_STATM ,mode);
+ SHControl(IDC_RW_MODULE ,mode);
+ SHControl(IDC_RW_STATS ,mode);
+ SHControl(IDC_RW_SETTING,mode);
+ SHControl(IDC_RW_TVAR ,mode);
+
+ if mode=SW_SHOW then
+ begin
+ if CB_GetData(GetDlgItem(Dialog,IDC_RW_DATATYPE))>2 then
+ begin
+ SHControl(IDC_RW_VALUE,SW_HIDE);
+ SHControl(IDC_RW_TEXT ,SW_SHOW);
+ end
+ else
+ begin
+ SHControl(IDC_RW_VALUE,SW_SHOW);
+ SHControl(IDC_RW_TEXT ,SW_HIDE);
+ end
+ end
+ else
+ begin
+ SHControl(IDC_RW_VALUE,SW_HIDE);
+ SHControl(IDC_RW_TEXT ,SW_HIDE);
+ end;
+ SHControl(IDC_RW_DATATYPE,mode);
+
+ SHControl(IDC_RW_CURRENT,mode);
+ SHControl(IDC_RW_PARAM ,mode);
+ SHControl(IDC_RW_RESULT ,mode);
+ SHControl(IDC_RW_MANUAL ,mode);
+ SHControl(IDC_RW_LAST ,mode);
+
+ SHControl(IDC_RW_MVAR ,mode);
+ SHControl(IDC_RW_SVAR ,mode);
+ end;
+ ACT_MESSAGE: begin
+ SHControl(IDC_MSG_KEEP ,mode);
+ SHControl(IDC_MSG_STAT1 ,mode);
+ SHControl(IDC_MSG_STAT2 ,mode);
+ SHControl(IDC_MSG_TITLE ,mode);
+ SHControl(IDC_MSG_TEXT ,mode);
+ SHControl(IDC_MSG_BTNS ,mode);
+ SHControl(IDC_MSGB_ARI ,mode);
+ SHControl(IDC_MSGB_OK ,mode);
+ SHControl(IDC_MSGB_OC ,mode);
+ SHControl(IDC_MSGB_RC ,mode);
+ SHControl(IDC_MSGB_YN ,mode);
+ SHControl(IDC_MSGB_YNC ,mode);
+ SHControl(IDC_MSG_ICONS ,mode);
+ SHControl(IDC_MSGI_NONE ,mode);
+ SHControl(IDC_MSGI_WARN ,mode);
+ SHControl(IDC_MSGI_INFO ,mode);
+ SHControl(IDC_MSGI_QUEST,mode);
+ SHControl(IDC_MSGI_ERROR,mode);
+
+ SHControl(IDC_MSG_TTL ,mode);
+ SHControl(IDC_MSG_TXT ,mode);
+ end;
+ end;
+ end;
+
+ procedure SetButtonOnOff(ctrl,state:dword);
+ begin
+ CheckDlgButton(Dialog,ctrl,state);
+ case ctrl of
+ IDC_SRV_WPAR,
+ IDC_SRV_LPAR,
+ IDC_SRV_SRVC,
+ IDC_PRG_PRG ,
+ IDC_PRG_ARG ,
+ IDC_TXT_FILE,
+ IDC_TXT_TEXT,
+ IDC_RW_MVAR ,
+ IDC_RW_SVAR ,
+ IDC_RW_TVAR ,
+ IDC_MSG_TTL ,
+ IDC_MSG_TXT : SetButtonIcon(GetDlgItem(Dialog,ctrl),checknames[state]);
+ end;
+ end;
+
+ procedure ButtonOff(ctrl:dword); {$IFDEF MSWINDOWS}inline;{$ENDIF}
+ begin
+ SetButtonOnOff(ctrl,BST_UNCHECKED);
+ end;
+
+ procedure ButtonOn(ctrl:dword); {$IFDEF MSWINDOWS}inline;{$ENDIF}
+ begin
+ SetButtonOnOff(ctrl,BST_CHECKED);
+ end;
+
+ procedure TextClear(ctrl:dword);
+ begin
+ SetDlgItemTextW(Dialog,ctrl,nil);
+ end;
+
+ function FixParam(buf:PAnsiChar;flag:integer):integer;
+ begin
+ if lstrcmpia(buf,Translate('hContact' ))=0 then result:=ptCurrent
+ else if lstrcmpia(buf,Translate('parameter'))=0 then result:=ptParam
+ else if lstrcmpia(buf,Translate('result' ))=0 then result:=ptResult
+ else if lstrcmpia(buf,Translate('structure'))=0 then result:=ptStruct
+ else
+ begin
+ if (buf[0] in ['0'..'9']) or ((buf[0]='-') and (buf[1] in ['0'..'9'])) or
+ ((buf[0]='$') and (buf[1] in sHexNum)) then
+ result:=ptNumber
+ else
+ result:=ptString;
+ end;
+
+ CB_SelectData(Dialog,flag,result);
+// SendDlgItemMessage(Dialog,flag,CB_SETCURSEL,result,0);
+ SendMessage(Dialog,WM_COMMAND,(CBN_SELCHANGE shl 16) or flag,GetDlgItem(Dialog,flag));
+ end;
+
+ procedure ReloadService;
+ var
+ pc:pAnsiChar;
+ buf,buf1:array [0..MaxDescrLen] of AnsiChar;
+ wnd:hwnd;
+ i:integer;
+// bufw:array [0..MaxDescrLen] of WideChar;
+ begin
+ wnd:=GetDlgItem(Dialog,IDC_EDIT_SERVICE);
+ SendMessageA(wnd,CB_GETLBTEXT,SendMessage(wnd,CB_GETCURSEL,0,0),tlparam(@buf));
+ ApiCard.Service:=@buf;
+
+ pc:=ApiCard.FillParams(GetDlgItem(Dialog,IDC_EDIT_WPAR),true);
+ if pc<>nil then
+ begin
+ if GetDlgItemTextA(Dialog,IDC_EDIT_WPAR,buf1,SizeOf(buf1))>0 then
+ case FixParam(@buf1,IDC_FLAG_WPAR) of
+ ptStruct: begin
+ mFreeMem(wstruct);
+ StrDup(wstruct,StrScan(pc,'|')+1);
+// AnsiToWide(StrScan(pc,'|')+1,wstruct,MirandaCP);
+ end;
+ end;
+ mFreeMem(pc);
+ end;
+
+ pc:=ApiCard.FillParams(GetDlgItem(Dialog,IDC_EDIT_LPAR),false);
+ if pc<>nil then
+ begin
+ if GetDlgItemTextA(Dialog,IDC_EDIT_LPAR,buf1,SizeOf(buf1))>0 then
+ case FixParam(@buf1,IDC_FLAG_LPAR) of
+ ptStruct: begin
+ mFreeMem(lstruct);
+ StrDup(lstruct,StrScan(pc,'|')+1);
+// AnsiToWide(StrScan(pc,'|')+1,lstruct,MirandaCP);
+ end;
+ end;
+ mFreeMem(pc);
+ end;
+
+ pc:=ApiCard.ResultType;
+ i:=sresInt;
+ if pc<>nil then
+ begin
+ if lstrcmpia(pc,'struct')=0 then i:=sresStruct
+ else if lstrcmpia(pc,'hex' )=0 then i:=sresHex
+ else if lstrcmpia(pc,'int')=0 then
+ begin
+ i:=sresInt;
+ ButtonOff(IDC_RES_SIGNED);
+ end
+ else if lstrcmpia(pc,'signed')=0 then
+ begin
+ i:=sresInt;
+ ButtonOn(IDC_RES_SIGNED);
+ end
+ else if lstrcmpia(pc,'str')=0 then
+ begin
+ i:=sresString;
+ ButtonOff(IDC_RES_UNICODE);
+ end
+ else if lstrcmpia(pc,'wide')=0 then
+ begin
+ i:=sresString;
+ ButtonOn(IDC_RES_UNICODE);
+ end;
+ mFreeMem(pc);
+ end;
+ CB_SelectData(Dialog,IDC_SRV_RESULT,i);
+
+// ApiCard.Show;
+ end;
+
+ procedure SelectActionType(group:dword);
+ var
+ i:integer;
+ begin
+ for i:=0 to ACT_MAXTYPE-1 do
+ if ActIds[i].code=group then break;
+ SendDlgItemMessage(Dialog,IDC_ACTION_TYPE,CB_SETCURSEL,i,0);
+ end;
+
+ procedure ClearControls(group:dword);
+ begin
+//! SelectActionType(group);
+ case group of
+ ACT_CONTACT: begin
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),true);
+ SendDlgItemMessage(Dialog,IDC_CONTACTLIST,CB_SETCURSEL,0,0);
+ ButtonOff(IDC_CNT_KEEP);
+ ButtonOff(IDC_CNT_FILTER);
+ TextClear(IDC_EDIT_FORMAT);
+ end;
+ ACT_SERVICE: begin
+ TextClear(IDC_EDIT_SERVICE);
+ TextClear(IDC_EDIT_WPAR);
+ TextClear(IDC_EDIT_LPAR);
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_WPAR),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_LPAR),true);
+// SendDlgItemMessage(Dialog,IDC_FLAG_WPAR,CB_SETCURSEL,0,0);
+// SendDlgItemMessage(Dialog,IDC_FLAG_LPAR,CB_SETCURSEL,0,0);
+ CB_SelectData(GetDlgItem(Dialog,IDC_FLAG_WPAR),ptNumber);
+ CB_SelectData(GetDlgItem(Dialog,IDC_FLAG_LPAR),ptNumber);
+
+ CB_SelectData(GetDlgItem(Dialog,IDC_SRV_RESULT),sresInt);
+
+ SendMessage(GetDlgItem(Dialog,IDC_EDIT_WPAR),CB_RESETCONTENT,0,0);
+ SendMessage(GetDlgItem(Dialog,IDC_EDIT_LPAR),CB_RESETCONTENT,0,0);
+
+ ButtonOff(IDC_RES_POPUP);
+ ButtonOff(IDC_RES_MESSAGE);
+ ButtonOff(IDC_RES_INSERT);
+
+ ButtonOff(IDC_RES_FREEMEM);
+ ButtonOff(IDC_RES_UNICODE);
+ ButtonOff(IDC_RES_SIGNED);
+
+ ButtonOff(IDC_SRV_WPAR);
+ ButtonOff(IDC_SRV_LPAR);
+ ButtonOff(IDC_SRV_SRVC);
+ end;
+ ACT_PROGRAM: begin
+ TextClear(IDC_EDIT_PROCTIME);
+ TextClear(IDC_EDIT_PRGPATH);
+ TextClear(IDC_EDIT_PRGARGS);
+
+ ButtonOff(IDC_FLAG_NORMAL);
+ ButtonOff(IDC_FLAG_HIDDEN);
+ ButtonOff(IDC_FLAG_MINIMIZE);
+ ButtonOff(IDC_FLAG_MAXIMIZE);
+
+ ButtonOff(IDC_FLAG_CURPATH);
+ ButtonOff(IDC_FLAG_CONTINUE);
+ ButtonOff(IDC_FLAG_PARALLEL);
+
+ ButtonOff(IDC_PRG_PRG);
+ ButtonOff(IDC_PRG_ARG);
+ end;
+ ACT_TEXT: begin
+ ButtonOff(IDC_FLAG_CLIP);
+ ButtonOff(IDC_FLAG_MESSAGE);
+ ButtonOff(IDC_CLIP_COPYTO);
+ ButtonOff(IDC_CLIP_PASTE);
+
+ ButtonOff(IDC_FLAG_FILE);
+ TextClear(IDC_FILE_PATH);
+ ButtonOff(IDC_FILE_READ);
+ ButtonOff(IDC_FILE_WRITE);
+ ButtonOff(IDC_FILE_APPEND);
+
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_INSERT ),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_CLIP_COPYTO ),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_CLIP_PASTE ),false);
+
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_ENC ),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_PATH ),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_FILEBTN),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_READ ),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_WRITE ),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_APPEND ),false);
+
+ TextClear(IDC_EDIT_INSERT);
+
+ ButtonOff(IDC_TXT_FILE);
+ ButtonOff(IDC_TXT_TEXT);
+ end;
+ ACT_ADVANCE: begin
+ ButtonOff(IDC_FLAG_GT);
+ ButtonOff(IDC_FLAG_LT);
+ ButtonOff(IDC_FLAG_EQ);
+ ButtonOff(IDC_FLAG_NOP);
+ ButtonOff(IDC_FLAG_NOT);
+ TextClear(IDC_ADV_VALUE);
+
+ ButtonOff(IDC_FLAG_BREAK);
+ ButtonOff(IDC_FLAG_JUMP);
+ ButtonOff(IDC_FLAG_ANOP);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VAL2),false);
+
+ ButtonOff(IDC_FLAG_MATH);
+ SendDlgItemMessage(Dialog,IDC_ADV_OPER,CB_SETCURSEL,0,0);
+ TextClear(IDC_ADV_VAL1);
+ ButtonOff(IDC_ADV_ASINT);
+
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_OPER),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VAL1),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VARS),false);
+
+ ButtonOff(IDC_FLAG_VARS);
+ TextClear(IDC_ADV_VARS);
+ end;
+ ACT_CHAIN: begin
+// FillChainList(Dialog);
+ SendDlgItemMessage(Dialog,IDC_GROUP_LIST,CB_SETCURSEL,0,0);
+ end;
+ ACT_RW: begin
+ ButtonOff(IDC_RW_READ);
+ ButtonOff(IDC_RW_WRITE);
+ ButtonOff(IDC_RW_DELETE);
+ SendDlgItemMessage(Dialog,IDC_CONTACTLIST,CB_SETCURSEL,0,0);
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),true);
+ TextClear(IDC_CONTACTLIST);
+ TextClear(IDC_RW_MODULE);
+ TextClear(IDC_RW_SETTING);
+ TextClear(IDC_RW_VALUE);
+ TextClear(IDC_RW_TEXT);
+
+ ButtonOff(IDC_RW_CURRENT);
+ ButtonOff(IDC_RW_PARAM);
+ ButtonOff(IDC_RW_RESULT);
+ ButtonOff(IDC_RW_MANUAL);
+ ButtonOff(IDC_RW_LAST);
+
+ ButtonOff(IDC_RW_MVAR);
+ ButtonOff(IDC_RW_SVAR);
+ ButtonOff(IDC_RW_TVAR);
+ end;
+ ACT_MESSAGE: begin
+ TextClear(IDC_MSG_TITLE);
+ TextClear(IDC_MSG_TEXT);
+ ButtonOff(IDC_MSG_KEEP);
+ ButtonOff(IDC_MSGB_OK);
+ ButtonOff(IDC_MSGB_OC);
+ ButtonOff(IDC_MSGB_ARI);
+ ButtonOff(IDC_MSGB_YNC);
+ ButtonOff(IDC_MSGB_YN);
+ ButtonOff(IDC_MSGB_RC);
+ ButtonOff(IDC_MSGI_NONE);
+ ButtonOff(IDC_MSGI_ERROR);
+ ButtonOff(IDC_MSGI_QUEST);
+ ButtonOff(IDC_MSGI_WARN);
+ ButtonOff(IDC_MSGI_INFO);
+
+ ButtonOff(IDC_MSG_TTL);
+ ButtonOff(IDC_MSG_TXT);
+ end;
+ end;
+ end;
+
+ procedure ClearDialogData;
+ begin
+ ClearControls(ACT_CONTACT);
+ ClearControls(ACT_SERVICE);
+ ClearControls(ACT_PROGRAM);
+ ClearControls(ACT_TEXT);
+ ClearControls(ACT_ADVANCE);
+ ClearControls(ACT_CHAIN);
+ ClearControls(ACT_RW);
+ ClearControls(ACT_MESSAGE);
+ mFreeMem(wstruct);
+ mFreeMem(lstruct);
+ end;
+
+ procedure SHWindows(exclude:dword=0);
+ begin
+ SetupControls(ACT_CONTACT,SW_HIDE);
+ SetupControls(ACT_SERVICE,SW_HIDE);
+ SetupControls(ACT_PROGRAM,SW_HIDE);
+ SetupControls(ACT_TEXT ,SW_HIDE);
+ SetupControls(ACT_ADVANCE,SW_HIDE);
+ SetupControls(ACT_CHAIN ,SW_HIDE);
+ SetupControls(ACT_RW ,SW_HIDE);
+ SetupControls(ACT_MESSAGE,SW_HIDE);
+{
+ if exclude<>ACT_CONTACT then SetupControls(ACT_CONTACT,SW_HIDE);
+ if exclude<>ACT_SERVICE then SetupControls(ACT_SERVICE,SW_HIDE);
+ if exclude<>ACT_PROGRAM then SetupControls(ACT_PROGRAM,SW_HIDE);
+ if exclude<>ACT_TEXT then SetupControls(ACT_TEXT ,SW_HIDE);
+ if exclude<>ACT_ADVANCE then SetupControls(ACT_ADVANCE,SW_HIDE);
+ if exclude<>ACT_CHAIN then SetupControls(ACT_CHAIN ,SW_HIDE);
+ if exclude<>ACT_RW then SetupControls(ACT_RW ,SW_HIDE);
+}
+ case exclude of
+ ACT_CONTACT,
+ ACT_SERVICE,
+ ACT_PROGRAM,
+ ACT_TEXT ,
+ ACT_ADVANCE,
+ ACT_CHAIN ,
+ ACT_RW ,
+ ACT_MESSAGE: begin
+ SetupControls(exclude,SW_SHOW);
+ end;
+ end;
+ end;
+
+ procedure SHActButtons(mode:integer);
+ begin
+ ShowWindow(GetDlgItem(Dialog,IDC_STAT_ACTION),mode);
+ ShowWindow(GetDlgItem(Dialog,IDC_ACTION_TYPE),mode);
+ end;
+
+ procedure InitDef(exclude:dword=0);
+ begin
+ if exclude<>ACT_CONTACT then
+ begin
+ ButtonOn(IDC_CNT_FILTER);
+ // do nothing
+ end;
+ if exclude<>ACT_SERVICE then
+ begin
+ CB_SelectData(Dialog,IDC_SRV_RESULT,sresInt);
+ end;
+ if exclude<>ACT_PROGRAM then
+ begin
+ ButtonOn(IDC_FLAG_PARALLEL);
+ ButtonOn(IDC_FLAG_NORMAL);
+ SetDlgItemInt(Dialog,IDC_EDIT_PROCTIME,0,false);
+ end;
+ if exclude<>ACT_TEXT then
+ begin
+ ButtonOn(IDC_FLAG_CLIP);
+ EnableWindow(GetDlgItem(Dialog,IDC_CLIP_COPYTO),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_CLIP_PASTE ),true);
+ ButtonOn(IDC_CLIP_COPYTO);
+
+ ButtonOn(IDC_FILE_READ);
+ // do nothing
+ end;
+ if exclude<>ACT_ADVANCE then
+ begin
+ ButtonOn(IDC_FLAG_NOP);
+ ButtonOn(IDC_FLAG_ANOP);
+ SetDlgItemInt(Dialog,IDC_ADV_VALUE,0,false);
+ SetDlgItemInt(Dialog,IDC_ADV_VAL1 ,0,false);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VAL1),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VAL2),false);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_OPER),false);
+// SendDlgItemMessage(Dialog,IDC_ADV_OPER,CB_SETCURSEL,0,0);
+ CB_SelectData(Dialog,IDC_ADV_OPER,ORD(aeNot));
+ end;
+ if exclude<>ACT_CHAIN then
+ begin
+// FillChainList(Dialog);
+ SendDlgItemMessage(Dialog,IDC_GROUP_LIST,CB_SETCURSEL,0,0);
+ end;
+ if exclude<>ACT_RW then
+ begin
+ ButtonOn(IDC_RW_READ);
+ SetDlgItemInt(Dialog,IDC_RW_VALUE,0,false);
+ ButtonOn(IDC_RW_MANUAL);
+ EnableWindow(GetDlgItem(Dialog,IDC_RW_VALUE),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_RW_TEXT ),true);
+ end;
+ if exclude<>ACT_MESSAGE then
+ begin
+ ButtonOn(IDC_MSGB_OK);
+ ButtonOn(IDC_MSGI_NONE);
+ end;
+ end;
+
+ // set buttons by options
+ procedure FillAction(CurAction:integer);
+ var
+ i:integer;
+ bb:boolean;
+ wnd:HWND;
+ begin
+ with NewActionList^[CurAction] do
+ begin
+ if (flags and ACF_ASSIGNED)=0 then
+ exit;
+ if actionType=0 then
+ actionType:=ACT_CONTACT;
+
+ InitDef(actionType);
+ SelectActionType(actionType);
+ case actionType of
+
+ ACT_CONTACT: begin
+ if (flags and ACF_KEEPONLY)<>0 then
+ ButtonOn(IDC_CNT_KEEP);
+ if fCLfilter then
+ ButtonOn(IDC_CNT_FILTER);
+ SetDlgItemTextW(Dialog,IDC_EDIT_FORMAT,fCLformat);
+
+ SendDlgItemMessage(Dialog,IDC_CONTACTLIST,CB_SETCURSEL,
+ FindContact(GetDlgItem(Dialog,IDC_CONTACTLIST),contact),0);
+ end;
+
+ ACT_SERVICE: begin
+ if SendDlgItemMessageA(Dialog,IDC_EDIT_SERVICE,CB_SELECTSTRING,twparam(-1),tlparam(service))<>CB_ERR then
+ ReloadService
+ else
+ SetDlgItemTextA(Dialog,IDC_EDIT_SERVICE,service);
+
+ if (flags2 and ACF2_SRV_WPAR)<>0 then ButtonOn(IDC_SRV_WPAR);
+ if (flags2 and ACF2_SRV_LPAR)<>0 then ButtonOn(IDC_SRV_LPAR);
+ if (flags2 and ACF2_SRV_SRVC)<>0 then ButtonOn(IDC_SRV_SRVC);
+
+ if (flags and ACF_MESSAGE)<>0 then ButtonOn(IDC_RES_MESSAGE);
+ if (flags and ACF_POPUP )<>0 then ButtonOn(IDC_RES_POPUP);
+ if (flags and ACF_INSERT )<>0 then ButtonOn(IDC_RES_INSERT);
+
+ if (flags and ACF_HEX)<>0 then
+ i:=sresHex
+ else if (flags and ACF_STRUCT)<>0 then
+ i:=sresStruct
+ else if (flags and ACF_STRING)<>0 then
+ begin
+ i:=sresString;
+ if (flags and ACF_UNICODE )<>0 then ButtonOn(IDC_RES_UNICODE);
+ if (flags2 and ACF2_FREEMEM)<>0 then ButtonOn(IDC_RES_FREEMEM);
+ end
+ else
+ begin
+ i:=sresInt;
+ if (flags and ACF_SIGNED)<>0 then
+ ButtonOn(IDC_RES_SIGNED);
+ end;
+ CB_SelectData(Dialog,IDC_SRV_RESULT,i);
+
+ if (flags and ACF_WPARAM)<>0 then
+ begin
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_WPAR),false);
+ i:=ptParam;
+ end
+ else if (flags and ACF_WRESULT)<>0 then
+ begin
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_WPAR),false);
+ i:=ptResult;
+ end
+ else if (flags and ACF_WPARNUM)<>0 then
+ begin
+ if (flags and ACF_WCURRENT)<>0 then
+ begin
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_WPAR),false);
+ i:=ptCurrent
+ end
+ else
+ begin
+ i:=ptNumber;
+ SetNumValue(GetDlgItem(Dialog,IDC_EDIT_WPAR),wparam,
+ (flags2 and ACF2_SRV_WPAR)<>0,
+ (flags2 and ACF2_SRV_WHEX)<>0);
+// SetDlgItemInt(Dialog,IDC_EDIT_WPAR,wparam,true)
+ end;
+ end
+ else if (flags and ACF_WSTRUCT)<>0 then
+ begin
+ i:=ptStruct;
+ SHControl(IDC_EDIT_WPAR,SW_HIDE);
+ SHControl(IDC_WSTRUCT ,SW_SHOW);
+ mFreeMem(wstruct);
+ StrDup(wstruct,PAnsiChar(wparam));
+ end
+ else if (flags and ACF_WUNICODE)<>0 then
+ begin
+ i:=ptUnicode;
+ SetDlgItemTextW(Dialog,IDC_EDIT_WPAR,pWideChar(wparam));
+ end
+ else
+ begin
+ i:=ptString;
+ SetDlgItemTextA(Dialog,IDC_EDIT_WPAR,PAnsiChar(wparam));
+ end;
+ CB_SelectData(GetDlgItem(Dialog,IDC_FLAG_WPAR),i);
+ SendDlgItemMessage(Dialog,IDC_FLAG_WPAR,CB_SETCURSEL,i,0);
+
+ if (flags and ACF_LPARAM)<>0 then
+ begin
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_LPAR),false);
+ i:=ptParam;
+ end
+ else if (flags and ACF_LRESULT)<>0 then
+ begin
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_LPAR),false);
+ i:=ptResult;
+ end
+ else if (flags and ACF_LPARNUM)<>0 then
+ begin
+ if (flags and ACF_LCURRENT)<>0 then
+ begin
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_LPAR),false);
+ i:=ptCurrent;
+ end
+ else
+ begin
+ i:=ptNumber;
+ SetNumValue(GetDlgItem(Dialog,IDC_EDIT_LPAR),lparam,
+ (flags2 and ACF2_SRV_LPAR)<>0,
+ (flags2 and ACF2_SRV_LHEX)<>0);
+// SetDlgItemInt(Dialog,IDC_EDIT_LPAR,lparam,true)
+ end;
+ end
+ else if (flags and ACF_LSTRUCT)<>0 then
+ begin
+ i:=ptStruct;
+ SHControl(IDC_EDIT_LPAR,SW_HIDE);
+ SHControl(IDC_LSTRUCT ,SW_SHOW);
+ mFreeMem(lstruct);
+ StrDup(lstruct,PAnsiChar(lparam));
+ end
+ else if (flags and ACF_LUNICODE)<>0 then
+ begin
+ i:=ptUnicode;
+ SetDlgItemTextW(Dialog,IDC_EDIT_LPAR,pWideChar(lparam));
+ end
+ else
+ begin
+ i:=ptString;
+ SetDlgItemTextA(Dialog,IDC_EDIT_LPAR,PAnsiChar(lparam));
+ end;
+ CB_SelectData(GetDlgItem(Dialog,IDC_FLAG_LPAR),i);
+
+ end;
+
+ ACT_PROGRAM: begin
+ if (flags2 and ACF2_PRG_PRG)<>0 then
+ ButtonOn(IDC_PRG_PRG);
+ if (flags2 and ACF2_PRG_ARG)<>0 then
+ ButtonOn(IDC_PRG_ARG);
+
+ SetDlgItemTextW(Dialog,IDC_EDIT_PRGPATH ,prgname);
+ SetDlgItemTextW(Dialog,IDC_EDIT_PRGARGS ,args);
+ SetDlgItemInt (Dialog,IDC_EDIT_PROCTIME,time,false);
+ case show of
+ SW_HIDE : ButtonOn(IDC_FLAG_HIDDEN);
+ SW_SHOWMINIMIZED: ButtonOn(IDC_FLAG_MINIMIZE);
+ SW_SHOWMAXIMIZED: ButtonOn(IDC_FLAG_MAXIMIZE);
+ else
+ {SW_SHOWNORMAL :} ButtonOn(IDC_FLAG_NORMAL);
+ end;
+ if (flags and ACF_CURPATH)<>0 then
+ ButtonOn(IDC_FLAG_CURPATH);
+ if (flags and ACF_PRTHREAD)<>0 then
+ ButtonOn(IDC_FLAG_PARALLEL)
+ else
+ ButtonOn(IDC_FLAG_CONTINUE);
+
+ end;
+
+ ACT_TEXT: begin
+ if (flags and ACF_CLIPBRD)<>0 then
+ begin
+ ButtonOn(IDC_FLAG_CLIP);
+ EnableWindow(GetDlgItem(Dialog,IDC_CLIP_COPYTO),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_CLIP_PASTE ),true);
+ if (flags and ACF_COPYTO)<>0 then
+ ButtonOn(IDC_CLIP_COPYTO)
+ else
+ ButtonOn(IDC_CLIP_PASTE);
+// for switches
+ ButtonOn(IDC_FILE_READ);
+ end
+
+ else
+ begin
+ if (flags and (ACF_FILE or ACF_FAPPEND or ACF_FWRITE))<>ACF_FILE then
+ EnableWindow(GetDlgItem(Dialog,IDC_EDIT_INSERT),true);
+ SetDlgItemTextW(Dialog,IDC_EDIT_INSERT,text);
+// for switches
+ ButtonOn(IDC_CLIP_COPYTO);
+
+ if (flags2 and ACF2_TXT_TEXT)<>0 then
+ ButtonOn(IDC_TXT_TEXT);
+
+ if (flags and ACF_FILE)<>0 then
+ begin
+ if (flags2 and ACF2_TXT_FILE)<>0 then
+ ButtonOn(IDC_TXT_FILE);
+ ButtonOn(IDC_FLAG_FILE);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_PATH ),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_FILEBTN),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_READ ),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_WRITE ),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_FILE_APPEND ),true);
+
+ wnd:=GetDlgItem(Dialog,IDC_FILE_ENC);
+ EnableWindow(wnd,true);
+ if (flags and ACF_ANSI)<>0 then
+ CB_SelectData(wnd,0)
+ else if (flags and ACF_UTF8)<>0 then
+ begin
+ if (flags and ACF_SIGN)<>0 then
+ CB_SelectData(wnd,2)
+ else
+ CB_SelectData(wnd,1);
+ end
+ else if (flags and ACF_SIGN)<>0 then
+ CB_SelectData(wnd,4)
+ else
+ CB_SelectData(wnd,3);
+
+ if (flags and ACF_FAPPEND)<>0 then ButtonOn(IDC_FILE_APPEND)
+ else if (flags and ACF_FWRITE )<>0 then ButtonOn(IDC_FILE_WRITE)
+ else ButtonOn(IDC_FILE_READ);
+ SetDlgItemTextW(Dialog,IDC_FILE_PATH,tfile);
+ end
+ else
+ begin
+ ButtonOn(IDC_FLAG_MESSAGE);
+// for switches
+ ButtonOn(IDC_FILE_READ);
+ end;
+ end;
+
+ end;
+
+ ACT_ADVANCE: begin
+ FillSubList(Dialog);
+// SendDlgItemMessage(Dialog,IDC_ADV_VAL2,CB_SETCURSEL,0,0);
+
+ case condition and not ADV_COND_NOT of
+ ADV_COND_GT: ButtonOn(IDC_FLAG_GT);
+ ADV_COND_LT: ButtonOn(IDC_FLAG_LT);
+ ADV_COND_EQ: ButtonOn(IDC_FLAG_EQ);
+ else // ADV_COND_NOP
+ ButtonOn(IDC_FLAG_NOP);
+ end;
+ SetDlgItemInt(Dialog,IDC_ADV_VALUE,value,false);
+ if (condition and ADV_COND_NOT)<>0 then
+ ButtonOn(IDC_FLAG_NOT);
+
+ SetDlgItemInt(Dialog,IDC_ADV_VAL1,mathval,true);
+ case action and ADV_ACTION of
+ ADV_ACT_MATH: begin
+ ButtonOn(IDC_FLAG_MATH);
+ CB_SelectData(GetDlgItem(Dialog,IDC_ADV_OPER),oper);
+// SendDlgItemMessage(Dialog,IDC_ADV_OPER,CB_SETCURSEL,oper,0);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VAL1),true);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_OPER),true);
+ end;
+ ADV_ACT_VARS: begin
+ ButtonOn(IDC_FLAG_VARS);
+ if (flags and ACF_VARASINT)<>0 then
+ ButtonOn(IDC_ADV_ASINT);
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VARS),true);
+ SetDlgItemTextW(Dialog,IDC_ADV_VARS,varval);
+ end;
+ end;
+ bb:=false;
+ case action and ADV_ACT_POST of
+ ADV_ACT_BREAK: ButtonOn(IDC_FLAG_BREAK);
+ ADV_ACT_JUMP : begin
+ SendDlgItemMessageW(Dialog,IDC_ADV_VAL2,CB_SELECTSTRING,twparam(-1),tlparam(operval));
+ ButtonOn(IDC_FLAG_JUMP);
+ bb:=true;
+ end;
+ else // ADV_ACT_NOP
+ ButtonOn(IDC_FLAG_ANOP);
+ end;
+ EnableWindow(GetDlgItem(Dialog,IDC_ADV_VAL2),bb);
+ end;
+
+ ACT_CHAIN: begin
+// FillChainList(Dialog);
+ if (flags and ACF_BYNAME)<>0 then
+ SendDlgItemMessageW(Dialog,IDC_GROUP_LIST,CB_SELECTSTRING,twparam(-1),tlparam(actname))
+ else
+ SendDlgItemMessageW(Dialog,IDC_GROUP_LIST,CB_SELECTSTRING,twparam(-1),tlparam(GetGroupName(id)));
+ end;
+
+ ACT_RW: begin
+ if (flags and ACF_DBDELETE)<>0 then ButtonOn(IDC_RW_DELETE)
+ else if (flags and ACF_DBWRITE )= 0 then ButtonOn(IDC_RW_READ)
+ else ButtonOn(IDC_RW_WRITE);
+
+ bb:=false;
+ if (flags and ACF_CURRENT)<>0 then
+ begin
+ ButtonOn(IDC_RW_CURRENT);
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),false);
+ end
+ else if (flags and ACF_PARAM)<>0 then
+ begin
+ ButtonOn(IDC_RW_PARAM);
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),false);
+ end
+ else if (flags and ACF_RESULT)<>0 then
+ begin
+ ButtonOn(IDC_RW_RESULT);
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),false);
+ end
+ else
+ begin
+ ButtonOn(IDC_RW_MANUAL);
+ bb:=true;
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),true);
+ SendDlgItemMessage(Dialog,IDC_CONTACTLIST,CB_SETCURSEL,
+ FindContact(GetDlgItem(Dialog,IDC_CONTACTLIST),dbcontact),0);
+ end;
+ EnableWindow(GetDlgItem(Dialog,IDC_CONTACTLIST),bb);
+
+ if (flags and ACF_LAST)<>0 then
+ begin
+ ButtonOn(IDC_RW_LAST);
+ bb:=false;
+ end
+ else
+ bb:=true;
+ if (flags and ACF_DBDELETE)<>0 then
+ bb:=false;
+
+ EnableWindow(GetDlgItem(Dialog,IDC_RW_VALUE),bb);
+ EnableWindow(GetDlgItem(Dialog,IDC_RW_TEXT ),bb);
+
+ SetDlgItemTextA(Dialog,IDC_RW_MODULE ,dbmodule);
+ SetDlgItemTextA(Dialog,IDC_RW_SETTING,dbsetting);
+ if (flags2 and ACF2_RW_MVAR)<>0 then ButtonOn(IDC_RW_MVAR);
+ if (flags2 and ACF2_RW_SVAR)<>0 then ButtonOn(IDC_RW_SVAR);
+ if (flags2 and ACF2_RW_TVAR)<>0 then ButtonOn(IDC_RW_TVAR);
+
+
+ wnd:=GetDlgItem(Dialog,IDC_RW_DATATYPE);
+ if ((flags and ACF_DBANSI )=ACF_DBANSI) or
+ ((flags and ACF_DBUTEXT)=ACF_DBUTEXT) then
+ begin
+ SHControl(IDC_RW_TEXT ,SW_SHOW);
+ SHControl(IDC_RW_VALUE,SW_HIDE);
+ if (flags and ACF_DBANSI)=ACF_DBANSI then
+ CB_SelectData(wnd,3)
+ else
+ CB_SelectData(wnd,4);
+ SetDlgItemTextW(Dialog,IDC_RW_TEXT,pWideChar(dbvalue));
+ end
+ else
+ begin
+ if (flags and ACF_DBBYTE)=ACF_DBBYTE then
+ CB_SelectData(wnd,0)
+ else if (flags and ACF_DBWORD)=ACF_DBWORD then
+ CB_SelectData(wnd,1)
+ else
+ CB_SelectData(wnd,2);
+ SHControl(IDC_RW_TEXT ,SW_HIDE);
+ SHControl(IDC_RW_VALUE,SW_SHOW);
+
+ SetNumValue(GetDlgItem(Dialog,IDC_RW_VALUE),dbvalue,
+ (flags2 and ACF2_RW_TVAR)<>0,
+ (flags2 and ACF2_RW_HEX )<>0);
+ end;
+
+ end;
+
+ ACT_MESSAGE: begin
+ SetDlgItemTextW(Dialog,IDC_MSG_TITLE,msgtitle);
+ SetDlgItemTextW(Dialog,IDC_MSG_TEXT ,msgtext);
+ if (flags2 and ACF2_MSG_TTL)<>0 then ButtonOn(IDC_MSG_TTL);
+ if (flags2 and ACF2_MSG_TXT)<>0 then ButtonOn(IDC_MSG_TXT);
+ if (flags and ACF_MSG_KEEP)<>0 then ButtonOn(IDC_MSG_KEEP);
+
+ case boxopts and $0F of
+ 1: ButtonOn(IDC_MSGB_OC);
+ 2: ButtonOn(IDC_MSGB_ARI);
+ 3: ButtonOn(IDC_MSGB_YNC);
+ 4: ButtonOn(IDC_MSGB_YN);
+ 5: ButtonOn(IDC_MSGB_RC);
+ else
+ ButtonOn(IDC_MSGB_OK);
+ end;
+ case boxopts and $F0 of
+ $10: ButtonOn(IDC_MSGI_ERROR);
+ $20: ButtonOn(IDC_MSGI_QUEST);
+ $30: ButtonOn(IDC_MSGI_WARN);
+ $40: ButtonOn(IDC_MSGI_INFO);
+ else
+ ButtonOn(IDC_MSGI_NONE);
+ end;
+ end;
+ end;
+ SHWindows(actionType);
+ end;
+ end;