summaryrefslogtreecommitdiff
path: root/plugins/!Deprecated/Actman20/ua/i_opt_dlg.inc
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/!Deprecated/Actman20/ua/i_opt_dlg.inc')
-rw-r--r--plugins/!Deprecated/Actman20/ua/i_opt_dlg.inc571
1 files changed, 0 insertions, 571 deletions
diff --git a/plugins/!Deprecated/Actman20/ua/i_opt_dlg.inc b/plugins/!Deprecated/Actman20/ua/i_opt_dlg.inc
deleted file mode 100644
index e9d7dc5048..0000000000
--- a/plugins/!Deprecated/Actman20/ua/i_opt_dlg.inc
+++ /dev/null
@@ -1,571 +0,0 @@
-{}
-const
- settings:HWND = 0;
-const
- NumControls = 17;
-
- IDsArray:array [0..NumControls-1] of integer =(
- // Menu settings controls
- IDC_UA_SEPARATE ,IDC_UA_POPUPT ,IDC_UA_POPUPV,
- IDC_UA_VARNAMEST,IDC_UA_VARNAMESV,IDC_UA_VARNAMESH,
- IDC_UA_SHOWVART ,IDC_UA_SHOWVARV ,IDC_UA_SHOWVARH,
- IDC_UA_TWOSTATE ,IDC_UA_SAVSTATE ,IDC_UA_COMMON,
- // toolbar settings controls
- IDC_UA_TTNORMALT,IDC_UA_TTNORMALV,IDC_UA_TTPRESSEDT,IDC_UA_TTPRESSEDV,
- IDC_UA_GLOBAL
- );
-
- // Show-hide controls by place type
- SHArray:array [0..NumTypes-1, 0..NumControls-1] of integer = (
- // CList Modern toolbar
- (SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE,SW_HIDE,SW_HIDE, SW_SHOW,SW_SHOW,SW_SHOW,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,SW_SHOW, SW_HIDE),
- // TabSRMM toolbar
- (SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE,SW_HIDE,SW_HIDE,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW),
- // Core Hotkey
- (SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE,SW_HIDE,SW_HIDE,
- SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE,SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE),
- // Main menu
- (SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_HIDE,SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE),
- // Contact menu
- (SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_HIDE,SW_HIDE,SW_HIDE,SW_HIDE, SW_SHOW),
- // Tray menu
- (SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_HIDE,SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE),
- // Protocol menu
- (SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_HIDE,SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE),
- // Status menu
- (SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW, SW_SHOW,SW_SHOW,SW_SHOW,
- SW_SHOW,SW_SHOW,SW_SHOW, SW_HIDE,SW_HIDE,SW_HIDE,SW_HIDE, SW_HIDE)
- );
- // additional show/hide controls check by Variables installings (1 - need to check)
- SHVarArray:array [0..NumControls-1] of byte = (
- 0,0,0, 0,0,1, 1,1,1,
- 0,0,0,0,0,0,0, 0);
- // additional enable/disable controls check (1 - always enable)
- EnDisArray:array [0..NumControls-1] of byte = (
- 0,0,0, 0,0,0, 0,0,0,
- 1,1,1,0,0,0,0, 1);
-
-var
- hIC:THANDLE;
-
-procedure CheckPlacesAbility;
-var
- i:integer;
-begin
- for i:=0 to NumTypes-1 do
- begin
- with NamesArray[i] do
- begin
- enable:=(service=nil) or (ServiceExists(service)<>0);
- end;
- end;
-end;
-
-function CompareItem(lParam1,lParam2:LPARAM;SortType:LPARAM):int; stdcall;
-begin
- result:=UActionList[lParam1].wSortIndex-UActionList[lParam2].wSortIndex;
-end;
-
-// Show or hide option items
-procedure SetupControls(Dialog:HWND;atype:integer;item:integer=-1);
-var
- i: cardinal;
- typ:integer;
- wnd,wnd1:HWND;
- enable:boolean;
-begin
- if atype<0 then
- begin
- for i:=0 to NumControls-1 do
- begin
- ShowWindow(GetDlgItem(Dialog,IDsArray[i]),SW_HIDE);
- end;
- end
- else
- begin
- wnd1:=GetDlgItem(Dialog,IDC_UA_PLACELIST);
- if item<0 then
- item:=SendMessage(wnd1,LVM_GETNEXTITEM,-1,LVNI_FOCUSED);
- enable:=ListView_GetCheckState(wnd1,item)<>0;
-
- for i:=0 to NumControls-1 do
- begin
- typ:=SHArray[LoByte(atype)+HiByte(atype)][i];
- if typ=SW_SHOW then
- if (SHVarArray[i]<>0) and (not IsVarsInstalled) then
- typ:=SW_HIDE;
- wnd:=GetDlgItem(Dialog,IDsArray[i]);
- ShowWindow(wnd,typ);
- EnableWindow(wnd,enable or (EnDisArray[i]<>0));
- end;
-
- // common settings
- EnableWindow(GetDlgItem(Dialog,IDC_UA_SAVSTATE),
- IsDlgButtonChecked(Dialog,IDC_UA_TWOSTATE)<>BST_UNCHECKED);
-
- // personal settings
- case LoByte(atype) of
- uaTTB, uaTAB: begin
- enable:=false;
- if IsDlgButtonChecked(Dialog,IDC_UA_TWOSTATE)<>BST_UNCHECKED then
- if IsWindowEnabled(GetDlgItem(Dialog,IDC_UA_TTNORMALV)) then
- enable:=true;
- EnableWindow(GetDlgItem(Dialog,IDC_UA_TTPRESSEDV),enable);
- end;
- end;
- end;
-end;
-
-// Clear all screen buttons/text fields (reset)
-procedure ClearControls(Dialog:HWND);
-var
- s:HWND;
-begin
- s:=settings;
- settings:=0;
- CheckDlgButton (Dialog,IDC_UA_TWOSTATE ,BST_UNCHECKED);
- CheckDlgButton (Dialog,IDC_UA_SAVSTATE ,BST_UNCHECKED);
-
- CheckDlgButton (Dialog,IDC_UA_SEPARATE ,BST_UNCHECKED);
- SetDlgItemTextW(Dialog,IDC_UA_POPUPV ,nil);
- SetDlgItemTextW(Dialog,IDC_UA_VARNAMESV,nil);
- SetDlgItemTextW(Dialog,IDC_UA_SHOWVARV ,nil);
- settings:=s;
-end;
-
-procedure ShowSubAction(Dialog:HWND;aType:integer;item:integer=-1);
-var
- UA:pMyActionItem;
- s:HWND;
-begin
- s:=settings;
- settings:=0;
- ClearControls(Dialog);
-
- // get UAction number
- item:=LV_GetLParam(GetDlgItem(Dialog,IDC_UA_ACTIONLIST),item);
-
- UA:=@UActionList[item];
-
- // common settings
- if (UA.flags and UAF_2STATE)<>0 then
- CheckDlgButton(Dialog,IDC_UA_TWOSTATE,BST_CHECKED);
-
- if (UA.flags and UAF_SAVESTATE)<>0 then
- CheckDlgButton(Dialog,IDC_UA_SAVSTATE,BST_CHECKED);
-
- if (UA.flags and UAF_GLOBAL)=0 then
- CheckDlgButton(Dialog,IDC_UA_GLOBAL,BST_CHECKED);
-
- // Show real UA settings
- case LoByte(aType) of
- uaTTB: begin // CList modern toolbar
- SetDlgItemTextA(Dialog,IDC_UA_TTNORMALV ,UA.szTTBTooltip);
- SetDlgItemTextA(Dialog,IDC_UA_TTPRESSEDV,UA.szTTBTooltipPressed);
- SetDlgItemTextW(Dialog,IDC_UA_SHOWVARV ,UA.szTTBShowWhenVars);
- end;
-
- uaTAB: begin // TabSRMM toolbar
- SetDlgItemTextW(Dialog,IDC_UA_TTNORMALV ,UA.szTabBTooltip);
- SetDlgItemTextW(Dialog,IDC_UA_TTPRESSEDV,UA.szTabBTooltipPressed);
- end;
-
- uaMenu: begin
- with UA.UAMenuItem[tMenuType(HiByte(aType))] do
- begin
- if (menu_opt and UAF_MENUSEP)<>0 then
- CheckDlgButton(Dialog,IDC_UA_SEPARATE,BST_CHECKED);
- SetDlgItemTextW(Dialog,IDC_UA_POPUPV ,szMenuPopup);
- SetDlgItemTextW(Dialog,IDC_UA_VARNAMESV,szMenuNameVars);
- SetDlgItemTextW(Dialog,IDC_UA_SHOWVARV ,szMenuShowWhenVars);
- end;
- end;
-
- uaHotkey: begin // Hotkey
- // Settings in Customize/Hotkeys
- end;
- end;
- SetupControls(Dialog,aType,-1);
- settings:=s;
-end;
-
-function isPlaceActive(idx,place:integer):boolean;
-begin
- result:=false;
- with UActionList[idx] do
- case LoByte(place) of
- uaTTB : result:=(flags and UAF_REGTTBB)<>0;
- uaTAB : result:=(flags and UAF_REGTABB)<>0;
- uaHotkey : result:=(flags and UAF_REGHOTKEY)<>0;
- uaMenu: begin
- result:=(UAMenuItem[tMenuType(HiByte(place))].menu_opt and UAF_MENUUSE)<>0
- end;
- end;
-end;
-
-procedure ShowAction(Dialog:HWND;item:integer=-1);
-var
- i,j:integer;
- wnd:HWND;
- li:LV_ITEMW;
- buf:array [0..255] of WideChar;
- lset:HWND;
-begin
- wnd:=GetDlgItem(Dialog,IDC_UA_PLACELIST);
- SendMessage(wnd,LVM_DELETEALLITEMS,0,0);
- j:=LV_GetLParam(GetDlgItem(Dialog,IDC_UA_ACTIONLIST),item);
- if j>=0 then
- begin
- with UActionList[j] do
- begin
- lset:=settings;
- settings:=0;
- // make "places" list
- for i:=0 to NumTypes-1 do
- begin
- with NamesArray[i] do
- begin
- if enable then // cached ability flag
- begin
- li.mask :=LVIF_TEXT+LVIF_PARAM;
- li.iSubItem:=0;
- li.iItem :=i;
- li.lParam :=atype; //!!!!!! need to add subtype
- li.pszText :=TranslateW(FastAnsiToWideBuf(name,buf));
- li.iItem :=SendMessageW(wnd,LVM_INSERTITEMW,0,LPARAM(@li));
-
- ListView_SetCheckState(wnd,li.iItem,isPlaceActive(j,atype));
- end;
- end;
- end;
- ListView_SetItemState(wnd,0,
- LVIS_FOCUSED or LVIS_SELECTED,
- LVIS_FOCUSED or LVIS_SELECTED);
- // show first selected "place"
- ShowSubAction(Dialog,LV_GetLParam(wnd));
- settings:=lset;
- end;
- end
- else
- begin
- ClearControls(Dialog);
- SetupControls(Dialog,-1,-1);
- end;
-end;
-
-procedure SetChangedFlag(Dialog:HWND);
-var
- num,atype:integer;
-begin
- num :=LV_GetLParam(GetDlgItem(Dialog,IDC_UA_ACTIONLIST),-1);
- atype:=LV_GetLParam(GetDlgItem(Dialog,IDC_UA_PLACELIST ),-1);
- UActionList[num].UAMenuItem[tMenuType(HiByte(atype))].changed:=true;
-end;
-
-procedure SaveMenuSubAction(Dialog:HWND;var MenuItem:tUAMenuItem);
-begin
- with MenuItem do
- begin
- mFreeMem(szMenuPopup ); szMenuPopup :=GetDlgText(Dialog,IDC_UA_POPUPV);
- mFreeMem(szMenuNameVars ); szMenuNameVars :=GetDlgText(Dialog,IDC_UA_VARNAMESV);
- mFreeMem(szMenuShowWhenVars); szMenuShowWhenVars:=GetDlgText(Dialog,IDC_UA_SHOWVARV);
- menu_opt:=0;
- if IsDlgButtonchecked(Dialog,IDC_UA_SEPARATE)<>BST_UNCHECKED then
- menu_opt:=menu_opt or UAF_MENUSEP;
- end;
-end;
-
-procedure SetPlaceActive(idx,place:integer;active:boolean);
-begin
- with UActionList[idx] do
- case LoByte(place) of
- uaTTB : if active then flags:=flags or UAF_REGTTBB else flags:=flags and not UAF_REGTTBB;
- uaTAB : if active then flags:=flags or UAF_REGTABB else flags:=flags and not UAF_REGTABB;
- uaHotkey: if active then flags:=flags or UAF_REGHOTKEY else flags:=flags and not UAF_REGHOTKEY;
- uaMenu :
- with UAMenuItem[tMenuType(HiByte(place))] do
- if active then menu_opt:=menu_opt or UAF_MENUUSE
- else menu_opt:=menu_opt and not UAF_MENUUSE;
- end;
-end;
-
-procedure SaveAction(Dialog:HWND;item:integer=-1;atype:integer=-1);
-var
- i,num:integer;
- wnd:HWND;
-begin
- num:=LV_GetLParam(GetDlgItem(Dialog,IDC_UA_ACTIONLIST),item);
- if num<0 then exit;
-
- wnd:=GetDlgItem(Dialog,IDC_UA_PLACELIST);
- atype:=LV_GetLParam(wnd,atype);
- with UActionList[num] do
- begin
- // main flags
- flags:=flags and not UAF_USING;
- // common section
- if IsDlgButtonChecked(Dialog,IDC_UA_TWOSTATE)<>BST_UNCHECKED then
- flags:=flags or UAF_2STATE
- else
- flags:=flags and not UAF_2STATE;
-
- if IsDlgButtonChecked(Dialog,IDC_UA_SAVSTATE)<>BST_UNCHECKED then
- flags:=flags or UAF_SAVESTATE
- else
- flags:=flags and not UAF_SAVESTATE;
-
- if IsDlgButtonChecked(Dialog,IDC_UA_GLOBAL)=BST_UNCHECKED then
- flags:=flags or UAF_GLOBAL
- else
- flags:=flags and not UAF_GLOBAL;
-
- // custom data
- case LoByte(atype) of
- uaTTB: begin // CList modern toolbar
- mFreeMem(szTTBTooltip ); szTTBTooltip :=GetDlgText(Dialog,IDC_UA_TTNORMALV ,true);
- mFreeMem(szTTBTooltipPressed); szTTBTooltipPressed:=GetDlgText(Dialog,IDC_UA_TTPRESSEDV,true);
- mFreeMem(szTTBShowWhenVars ); szTTBShowWhenVars :=GetDlgText(Dialog,IDC_UA_SHOWVARV);
- end;
-
- uaTAB: begin // TabSRMM toolbar
- mFreeMem(szTabBTooltip ); szTabBTooltip :=GetDlgText(Dialog,IDC_UA_TTNORMALV);
- mFreeMem(szTabBTooltipPressed); szTabBTooltipPressed:=GetDlgText(Dialog,IDC_UA_TTPRESSEDV);
- end;
-
- uaMenu: SaveMenuSubAction(Dialog,UAMenuItem[tMenuType(HiByte(atype))]);
-
- uaHotkey: begin // Hotkey
- // Settings in Customize/Hotkeys
- end;
- end;
- for i:=0 to SendMessage(wnd,LVM_GETITEMCOUNT,0,0)-1 do
- begin
- SetPlaceActive(num,LV_GetLParam(wnd,i),ListView_GetCheckState(wnd,i)<>0);
- end;
- //just after Action (not place) changes
- if item<0 then
- SaveUA(num);
- end;
-end;
-
-procedure FillActionList(wnd:HWND);
-var
- i:integer;
- li:LV_ITEMW;
- il:HIMAGELIST;
- lmenu:tMenuType;
-begin
- wnd:=GetDlgItem(wnd,IDC_UA_ACTIONLIST);
- SendMessage(wnd,LVM_DELETEALLITEMS,0,0);
-
- il:=ImageList_Create(16,16,ILC_COLOR32 or ILC_MASK,0,1);
- for i:=0 to HIGH(UActionList) do
- begin
- li.mask :=LVIF_TEXT+LVIF_PARAM+LVIF_IMAGE;
- li.iSubItem:=0;
- li.iItem :=i;
- li.lParam :=i;
- li.pszText :=UActionList[i].szActDescr;
- li.iImage:=ImageList_AddIcon(il,
- HICON(CallService(MS_SKIN2_GETICONBYHANDLE,0,LPARAM(UActionList[i].hIcolibIcon))));
- li.iItem :=SendMessageW(wnd,LVM_INSERTITEMW,0,LPARAM(@li));
-
- for lmenu:=main_menu to HIGH(tMenuType) do
- UActionList[i].UAMenuItem[lmenu].changed:=false;
- end;
- ImageList_Destroy(SendMessage(wnd,LVM_SETIMAGELIST,LVSIL_SMALL,il));
-
- SendMessage(wnd,LVM_SORTITEMS,0,LPARAM(@CompareItem));
-
- ListView_SetItemState(wnd,0,
- LVIS_FOCUSED or LVIS_SELECTED,
- LVIS_FOCUSED or LVIS_SELECTED);
-end;
-
-// refresh icons in UA list (at least)
-function IconChanged(wParam:WPARAM;lParam:LPARAM):int;cdecl;
-var
- i:integer;
- li:LV_ITEMW;
- il:HIMAGELIST;
- wnd:HWND;
-begin
- result:=0;
- wnd:=GetDlgItem(settings,IDC_UA_ACTIONLIST);
-
- il:=ImageList_Create(16,16,ILC_COLOR32 or ILC_MASK,0,1);
- for i:=0 to HIGH(UActionList) do
- begin
- li.mask :=LVIF_IMAGE;
- li.iSubItem:=0;
- li.iItem :=i;
- li.iImage:=ImageList_AddIcon(il,
- HICON(CallService(MS_SKIN2_GETICONBYHANDLE,0,TLPARAM(UActionList[i].hIcolibIcon))));
- SendMessageW(wnd,LVM_SETITEM,0,TLPARAM(@li));
- end;
- ImageList_Destroy(SendMessage(wnd,LVM_SETIMAGELIST,LVSIL_SMALL,il));
-//!!refresh?
-end;
-
-function DlgProcOpt(Dialog:HWnd;hMessage:UINT;wParam:WPARAM;lParam:LPARAM):lresult; stdcall;
-var
- wnd:HWND;
- lv:LV_COLUMNW;
- i:integer;
-begin
- result:=0;
- case hMessage of
- WM_CLOSE: begin
- settings:=0;
- UnhookEvent(hIC);
- end;
-
- WM_INITDIALOG: begin
- settings:=0;
- TranslateDialogDefault(Dialog);
-
- wnd:=GetDlgItem(Dialog,IDC_UA_PLACELIST);
- SendMessage(wnd,LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_CHECKBOXES,LVS_EX_CHECKBOXES);
- SendMessage(wnd,LVM_SETUNICODEFORMAT,1,0);
- zeromemory(@lv,sizeof(lv));
- lv.mask:=LVCF_WIDTH;
- lv.cx :=110;
- SendMessageW(wnd,LVM_INSERTCOLUMNW ,0,tlparam(@lv));
- SendMessageW(wnd,LVM_SETCOLUMNWIDTH,0,LVSCW_AUTOSIZE_USEHEADER);
-
- wnd:=GetDlgItem(Dialog,IDC_UA_ACTIONLIST);
-// SendMessage(wnd,LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_CHECKBOXES,LVS_EX_CHECKBOXES);
- SendMessage(wnd,LVM_SETUNICODEFORMAT,1,0);
- zeromemory(@lv,sizeof(lv));
- lv.mask:=LVCF_WIDTH;
- lv.cx :=110;
- SendMessageW(wnd,LVM_INSERTCOLUMNW ,0,tlparam(@lv));
- SendMessageW(wnd,LVM_SETCOLUMNWIDTH,0,LVSCW_AUTOSIZE_USEHEADER);
- FillActionList(Dialog);
- ShowAction(Dialog,-1);
-
-// if isVarsInstalled then
- begin
- SendDlgItemMessage(Dialog,IDC_UA_VARNAMESH,BM_SETIMAGE,IMAGE_ICON,
- CallService(MS_VARS_GETSKINITEM,0,VSI_HELPICON));
- SendDlgItemMessage(Dialog,IDC_UA_SHOWVARH,BM_SETIMAGE,IMAGE_ICON,
- CallService(MS_VARS_GETSKINITEM,0,VSI_HELPICON));
-// SendDlgItemMessage(Dialog,IDC_UA_VARNAMESH,BUTTONSETASFLATBTN,0,0);
-// SendDlgItemMessage(Dialog,IDC_UA_SHOWVARH ,BUTTONSETASFLATBTN,0,0);
- end;
-
- settings:=Dialog;
- hIC:=HookEvent(ME_SKIN2_ICONSCHANGED,@IconChanged);
- end;
-
- WM_COMMAND: begin
- case wParam shr 16 of
- EN_CHANGE: begin
- if settings<>0 then
- begin
- SendMessage(GetParent(Dialog),PSM_CHANGED,0,0);
- if loword(wParam)=IDC_UA_POPUPV then
- SetChangedFlag(Dialog);
- end;
- end;
-
- BN_CLICKED: begin
- if settings<>0 then
- begin
- case loword(wParam) of
- IDC_UA_TWOSTATE: begin
- SetupControls(Dialog,
- LV_GetLParam(GetDlgItem(Dialog,IDC_UA_PLACELIST)),-1);
- {
- EnableWindow(GetDlgItem(Dialog,IDC_UA_TTPRESSEDV),
- IsDlgButtonChecked(Dialog,IDC_UA_TWOSTATE)<>BST_UNCHECKED);
- }
- if IsDlgButtonChecked(Dialog,IDC_UA_TWOSTATE)=BST_UNCHECKED then
- DeleteIcolibIconP(
- UActionList[LV_GetLParam(GetDlgItem(Dialog,IDC_UA_ACTIONLIST),-1)])
- else
- AddIcolibIconP(
- UActionList[LV_GetLParam(GetDlgItem(Dialog,IDC_UA_ACTIONLIST),-1)]);
-
- SendMessage(GetParent(Dialog),PSM_CHANGED,0,0);
- end;
-
- IDC_UA_VARNAMESH: ShowVarHelp(Dialog,IDC_UA_VARNAMESV);
- IDC_UA_SHOWVARH : ShowVarHelp(Dialog,IDC_UA_SHOWVARV);
-
- IDC_UA_SAVSTATE,
- IDC_UA_GLOBAL: SendMessage(GetParent(Dialog),PSM_CHANGED,0,0);
-
- IDC_UA_SEPARATE: begin
- SetChangedFlag(Dialog);
- SendMessage(GetParent(Dialog),PSM_CHANGED,0,0);
- end;
- end;
- end;
- end;
- end;
- end;
-
- WM_NOTIFY: begin
- case integer(PNMHdr(lParam)^.code) of
- PSN_APPLY: begin
- SaveAction(Dialog);
- SaveUAs;
- FillChar(arMenuRec[0],Length(arMenuRec)*SizeOf(tuaMenuRecA),0);
- for i:=0 to HIGH(UActionList) do
- begin
- SetAllActionUsers(UActionList[i],false);
- end;
- end;
-
- LVN_ITEMCHANGED: begin
- if settings=0 then exit;
- if PNMLISTVIEW(lParam)^.uChanged=LVIF_STATE then
- begin
- i:=(PNMLISTVIEW(lParam)^.uOldState and LVNI_FOCUSED)-
- (PNMLISTVIEW(lParam)^.uNewState and LVNI_FOCUSED);
-
- if i>0 then // old focus
- begin
- if wParam=IDC_UA_ACTIONLIST then
- SaveAction(Dialog,PNMLISTVIEW(lParam)^.iItem)
- else //if wParam=IDC_UA_PLACELIST then
- SaveAction(Dialog,-1,PNMLISTVIEW(lParam)^.iItem);
- end
- else if i<0 then // new focus
- begin
- if wParam=IDC_UA_ACTIONLIST then
- ShowAction(Dialog,PNMLISTVIEW(lParam)^.iItem)
- else//if wParam=IDC_UA_PLACELIST then
- ShowSubAction(Dialog,
- LV_GetLParam(GetDlgItem(Dialog,IDC_UA_PLACELIST),
- PNMLISTVIEW(lParam)^.iItem));
- end
- else if (settings<>0) and
- ((PNMLISTVIEW(lParam)^.uOldState or PNMLISTVIEW(lParam)^.uNewState)=$3000) then
- begin
- // which type
- wnd:=GetDlgItem(Dialog,IDC_UA_PLACELIST);
- if PNMLISTVIEW(lParam)^.iItem<>
- SendMessage(wnd,LVM_GETNEXTITEM,-1,LVNI_FOCUSED) then
- ListView_SetItemState(wnd,PNMLISTVIEW(lParam)^.iItem,
- LVIS_FOCUSED or LVIS_SELECTED,
- LVIS_FOCUSED or LVIS_SELECTED)
- else
- SetupControls(Dialog,LV_GetLParam(wnd,PNMLISTVIEW(lParam)^.iItem),
- PNMLISTVIEW(lParam)^.iItem);
-
- SendMessage(GetParent(Dialog),PSM_CHANGED,0,0);
- end;
- end;
- end;
- end;
- end;
- end;
-end;