; FM2.07 f_OptionsGUI: Gui, +LastFoundExist IfWinExist { gui_W := 350 + gui_ww gui_H := 470 + gui_hh Gui, Show, w%gui_W% h%gui_H%, %lang_OptionsTitle% return } Gui, Margin, 12,12 gui_W := 326 + gui_ww gui_H := 410 + gui_hh gui_hh+= (gui_hh = 0) ? 0 : 18 Gui, Add, Tab, +Theme vgui_Tab w%gui_W% h%gui_H%, %lang_Favorite%|%lang_Application%|%lang_Hotkey%|%lang_Icon%|%lang_Menu%|%lang_Other%|%lang_About% ;--------- Favorites --------- Gui, Tab, %lang_Favorite% gui_FavImageList := IL_Create() gui_W := 296 + gui_ww gui_H := 268 + gui_hh Gui, Add, TreeView, w%gui_W% h%gui_H% vgui_FavTree +ReadOnly ImageList%gui_FavImageList% Gui, Add, Text, y+12 Section, %lang_Name% Gui, Add, Text, y+13 , %lang_Path% Gui, Add, Text, y+13 , %lang_Icon% gui_X := 165 + gui_ww Gui, Add, Text, x+%gui_X% ys , %lang_Size% Gui, Add, Text, x+35 ys , %lang_Depth% gui_W := 140 + gui_ww Gui, Add, Edit, w%gui_W% r1 xs+40 ys-4 Section vgui_FavEditName gf_FavEditName gui_W := 180 + gui_ww Gui, Add, Edit, w%gui_W% r1 xs y+5 vgui_FavEditPath gf_FavEditPath Gui, Add, Button, w20 h20 x+5 yp vgui_FavBtnPath gf_FavBtnPath, &... Gui, Add, Edit, w%gui_W% r1 xs y+5 vgui_FavEditIcon gf_FavEditIcon Gui, Add, Button, w20 h20 x+5 yp vgui_FavBtnIcon gf_FavBtnIcon, ... Gui, Add, Edit, w20 r1 xp-10 ys Number vgui_FavEditSize gf_FavEditSize Gui, Add, Edit, w20 r1 x+40 ys Number vgui_FavEditDepth gf_FavEditDepth Gui, Add, Button, w20 h20 xp-25 y+5 Section vgui_FavTreeAdd gf_FavTreeAdd , %lang_Add% Gui, Add, Button, w20 h20 y+5 vgui_FavTreeDel gf_FavTreeDel , %lang_Del% Gui, Add, Button, w20 h20 x+5 ys vgui_FavTreeUp gf_FavTreeUp , %lang_Up% Gui, Add, Button, w20 h20 y+5 vgui_FavTreeDown gf_FavTreeDown, %lang_Down% setTip("&..." , lang_TipBrowse) setTip("..." , lang_TipIcon) setTip(lang_Add , lang_TipAdd) setTip(lang_Del , lang_TipDel) setTip(lang_Up , "Shift+Up") setTip(lang_Down, "Shift+Down") setTip("Edit4" , lang_TipSize) setTip("Edit5" , lang_TipDepth) Menu, FavPathSp , Add Menu, FavPathSp , DeleteAll Menu, FavPathSp , Add, %lang_MyComputer% , f_FavPathSpecial Menu, FavPathSp , Add Menu, FavPathSp , Add, %lang_AddFavorite% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_AddFavoriteHere%, f_FavPathSpecial Menu, FavPathSp , Add, %lang_Reload% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_Options% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_Edit% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_Exit% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_ToggleHidden% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_ToggleFileExt% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_SystemRecent% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_ExplorerList% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_DriveList% , f_FavPathSpecial Menu, FavPathSp , Add Menu, FavPathSp , Add, %lang_ToolMenu% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_RecentMenu% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_SVSMenu% , f_FavPathSpecial Menu, FavPathSp , Add, %lang_TCMenu% , f_FavPathSpecial Menu, FavPathSp , Add Menu, FavPathSp , Add, %lang_Separator% , f_FavPathSpecial Menu, FavBtnPath, Add Menu, FavBtnPath, DeleteAll Menu, FavBtnPath, Add, %lang_BrowseFolder% , f_FavBrowseFolder Menu, FavBtnPath, Add, %lang_BrowseFile% , f_FavBrowseFile Menu, FavBtnPath, Add, %lang_SpecialItems% , :FavPathSp f_SetMenuIcon("FavPathSp" , lang_MyComputer , f_GetIcon("Computer")) f_SetMenuIcon("FavPathSp" , lang_AddFavorite , f_Icons . ",-301") f_SetMenuIcon("FavPathSp" , lang_AddFavoriteHere, f_Icons . ",-301") f_SetMenuIcon("FavPathSp" , lang_Reload , f_Icons . ",-302") f_SetMenuIcon("FavPathSp" , lang_Options , f_Icons . ",-303") f_SetMenuIcon("FavPathSp" , lang_Edit , f_Icons . ",-304") f_SetMenuIcon("FavPathSp" , lang_Exit , f_Icons . ",-305") f_SetMenuIcon("FavPathSp" , lang_ToggleHidden , f_Icons . ",-302") f_SetMenuIcon("FavPathSp" , lang_ToggleFileExt , f_Icons . ",-302") f_SetMenuIcon("FavPathSp" , lang_SystemRecent , f_GetIcon("Recent")) f_SetMenuIcon("FavPathSp" , lang_ExplorerList , f_GetIcon("Explorer")) f_SetMenuIcon("FavPathSp" , lang_DriveList , f_GetIcon("Computer")) f_SetMenuIcon("FavPathSp" , lang_ToolMenu , f_Icons) f_SetMenuIcon("FavPathSp" , lang_RecentMenu , f_Icons . ",-307") f_SetMenuIcon("FavPathSp" , lang_SVSMenu , "svsadmin.exe") f_SetMenuIcon("FavPathSp" , lang_TCMenu , s_TCPath . "\totalcmd.exe") f_SetMenuIcon("FavBtnPath", lang_BrowseFolder , f_GetIcon(WinDir)) f_SetMenuIcon("FavBtnPath", lang_BrowseFile , f_GetIcon("")) f_SetMenuIcon("FavBtnPath", lang_SpecialItems , f_Icons) if s_TCMenu { IL_Add(gui_FavImageList, s_TCPath . "\totalcmd.exe", 0) gui_FavTreeTVIDRoot := TV_Add(lang_TCDirMenu, "", "Bold Expand Icon1") GuiControl, Disable, gui_FavEditName GuiControl, Disable, gui_FavEditPath GuiControl, Disable, gui_FavBtnPath GuiControl, Disable, gui_FavEditIcon GuiControl, Disable, gui_FavBtnIcon GuiControl, Disable, gui_FavEditSize GuiControl, Disable, gui_FavEditDepth GuiControl, Disable, gui_FavTreeAdd GuiControl, Disable, gui_FavTreeDel GuiControl, Disable, gui_FavTreeUp GuiControl, Disable, gui_FavTreeDown setTip("SysTreeView321", lang_TipTCDirMenu) } else { IL_Add(gui_FavImageList, f_Icons, 0) ; gui_FavTreeTVIDRoot := TV_Add("Menu", "", "Bold Expand Icon1") gui_FavTreeTVIDRoot := TV_Add(lang_LoadFav, "", "Bold Expand Icon1") gui_FavTreePath%gui_FavTreeTVIDRoot% = gui_FavTreeIconID%gui_FavTreeTVIDRoot% = 1 ; icon index in IL TVX("gui_FavTree", "f_FavTreeHandler", "HasRoot", "gui_FavTreePath", "gui_FavTreeIcon", "gui_FavTreeSize", "gui_FavTreeDepth", "gui_FavTreeIconID") setTip("SysTreeView321", "") } ;--------- Applications --------- Gui, Tab, %lang_Application% Gui, Add, Text, BackgroundTrans, %lang_SupportApplications% gui_W := 296 + gui_ww gui_H := 269 + gui_hh Gui, Add, ListView, w%gui_W% h%gui_H% vgui_ApplicationLV gf_ApplicationLV AltSubmit -Multi Checked, Name|Type|Class Loop, % s_ApplicationsCount { if s_Applications%A_Index%Check LV_Add("Check", s_Applications%A_Index%Name, s_Applications%A_Index%Type, s_Applications%A_Index%Class) else LV_Add("", s_Applications%A_Index%Name, s_Applications%A_Index%Type, s_Applications%A_Index%Class) } LV_ModifyCol(1, "AutoHdr", lang_Name) LV_ModifyCol(2, "AutoHdr", lang_Type) LV_ModifyCol(3, "AutoHdr", lang_Class) Gui, Add, Text, y+13 Section, %lang_Name% Gui, Add, Text, y+13 , %lang_Class% gui_X := 170 + gui_ww Gui, Add, Text, x+%gui_X% ys , %lang_Type% gui_W := 145 + gui_ww Gui, Add, Edit, w%gui_W% r1 xs+40 ys-4 Section vgui_AppEditName gf_AppEditName gui_W := 180 + gui_ww Gui, Add, Edit, w%gui_W% r1 xs y+5 vgui_AppEditClass gf_AppEditClass gui_X := 185 + gui_ww Gui, Add, DropDownList,w70 xs+%gui_X% ys Section vgui_AppEditType gf_AppEditType, %lang_Match%||%lang_Contain% Gui, Add, Button, w20 h20 xs y+4 gf_ApplicationAdd , %lang_Add% Gui, Add, Button, w20 h20 x+5 yp gf_ApplicationDel , %lang_Del% Gui, Add, Button, w20 h20 x+5 yp gf_ApplicationDef , ! setTip("Edit7", lang_TipCSV) setTip(lang_Match, lang_TipMatch) setTip("!", lang_TipAddDefault) ;--------- Hotkeys --------- Gui, Tab, %lang_Hotkey% gui_W := 296 + gui_ww gui_H := 292 + gui_hh Gui, Add, ListView, w%gui_W% h%gui_H% vgui_HotkeyLV gf_HotkeyLV AltSubmit -Multi, Hotkey|Action ;|Label Loop, % s_HotkeysCount LV_Add("", s_Hotkeys%A_Index%Key, f_HotkeyLab2Name(s_Hotkeys%A_Index%Lab)) ;, s_Hotkeys%A_Index%Lab) ; LV_Add("", s_Hotkeys%A_Index%Key, s_Hotkeys%A_Index%Name) LV_ModifyCol(1, "AutoHdr", lang_Hotkey) LV_ModifyCol(2, "AutoHdr", lang_Action) gui_HotkeyEditAction := lang_ShowMenu . " 1|" gui_HotkeyEditAction .= lang_ShowMenu . " 1.5|" gui_HotkeyEditAction .= lang_ShowMenu . " 2|" gui_HotkeyEditAction .= lang_OpenSelText . "|" gui_HotkeyEditAction .= lang_AddApp . "|" gui_HotkeyEditAction .= lang_AddFav . "|" gui_HotkeyEditAction .= lang_Reload . "|" gui_HotkeyEditAction .= lang_Options . "|" gui_HotkeyEditAction .= lang_Edit . "|" gui_HotkeyEditAction .= lang_Exit . "|" gui_HotkeyEditAction .= lang_ToggleHidden . "|" gui_HotkeyEditAction .= lang_ToggleFileExt . "|" gui_HotkeyEditAction .= lang_SystemRecent . "|" gui_HotkeyEditAction .= lang_ExplorerList . "|" gui_HotkeyEditAction .= lang_DriveList . "|" gui_HotkeyEditAction .= lang_ToolMenu . "|" gui_HotkeyEditAction .= lang_RecentMenu . "|" gui_HotkeyEditAction .= lang_SVSMenu . "|" gui_HotkeyEditAction .= lang_TCMenu Gui, Add, Text, y+13 Section, %lang_Hotkey% Gui, Add, Text, y+13 , %lang_Action% gui_W := 205 + gui_ww Gui, Add, Edit, w%gui_W% r1 xs+40 ys-4 Section vgui_HotkeyEditHotkey gf_HotkeyEditHotkey Gui, Add, Button, w20 h20 x+5 yp gf_HotkeySet, ... Gui, Add, Button, w20 h20 x+5 yp gf_HotkeyHelp, ? Gui, Add, DropDownList,w%gui_W% xs y+5 vgui_HotkeyEditAction gf_HotkeyEditAction, %gui_HotkeyEditAction% Gui, Add, Button, w20 h20 x+5 yp gf_HotkeyAdd, %lang_Add% Gui, Add, Button, w20 h20 x+5 yp gf_HotkeyDel, %lang_Del% setTip("?", lang_HotkeyHelpB) ;--------- Icons --------- Gui, Tab, %lang_Icon% Gui, Add, CheckBox, h20 vs_NoMenuIcon gf_NoMenuIcon Section, %lang_NoMenuIcon% GuiControl, , s_NoMenuIcon, %s_NoMenuIcon% Gui, Add, Text, ys+4, %lang_IconSize% Gui, Add, Edit, ys w40 r1 vs_IconSize Number, %s_IconSize% setTip("Edit9", lang_TipSize) gui_W := 296 + gui_ww gui_H := 261 + gui_hh Gui, Add, ListView, xs ys+32 w%gui_W% h%gui_H% vgui_IconLV gf_IconLV AltSubmit -Multi, |Extension|Size|Icon Path gui_IconImageList := IL_Create() LV_SetImageList(gui_IconImageList) Loop, % s_IconsCount { if s_Icons%A_Index%Index > 0 ; dont change negative index { if IL_Add(gui_IconImageList, f_DerefPath(s_Icons%A_Index%Path), s_Icons%A_Index%Index+1) = 0 IL_Add(gui_IconImageList, f_Icons, -305) ; cannot load icon } else { if IL_Add(gui_IconImageList, f_DerefPath(s_Icons%A_Index%Path), s_Icons%A_Index%Index) = 0 IL_Add(gui_IconImageList, f_Icons, -305) } LV_Add("Icon" . A_Index, "", s_Icons%A_Index%Ext, s_Icons%A_Index%Size, s_Icons%A_Index%Path . "," . s_Icons%A_Index%Index) } LV_ModifyCol(2, "AutoHdr", lang_Extension) LV_ModifyCol(3, "AutoHdr", lang_Size) LV_ModifyCol(4, "AutoHdr", lang_IconPath) Gui, Add, Text, y+13 Section, %lang_Extension% Gui, Add, Text, y+13 , %lang_Icon% gui_X := 205 + gui_ww Gui, Add, Text, x+%gui_X% ys , %lang_Size% gui_W := 180 + gui_ww Gui, Add, Edit, w%gui_W% r1 xs+40 ys-4 Section vgui_IconEditExt gf_IconEditExt , IconEditExt Gui, Add, Edit, w%gui_W% r1 xs y+4 vgui_IconEditIcon gf_IconEditIcon Gui, Add, Button, w20 h20 x+5 yp vgui_IconBtnIcon gf_IconBtnIcon , ... Gui, Add, Edit, w40 r1 x+10 ys Number vgui_IconEditSize gf_IconEditSize Gui, Add, Button, w20 h20 xp-5 y+4 vgui_IconBtnAdd gf_IconAdd, %lang_Add% Gui, Add, Button, w20 h20 x+5 yp vgui_IconBtnDel gf_IconDel, %lang_Del% setTip("Edit10", lang_TipIconExt) setTip("Edit12", lang_TipSize) GuiControl, , gui_IconEditExt ;--------- Menu --------- Gui, Tab, %lang_Menu% Gui, Add, Text, Section, %lang_MenuPosition%: Gui, Add, Text, xs+10 Section, X Gui, Add, Edit, ys-4 w40 r1 vs_MenuPositionX Number Gui, Add, Text, ys, Y Gui, Add, Edit, ys-4 w40 r1 vs_MenuPositionY Number Gui, Add, DropDownList, w120 ys-4 vs_MenuPosition AltSubmit, %lang_RelativeToScreen%||%lang_RelativeToWindow% GuiControl, , s_MenuPositionX, %s_MenuPositionX% GuiControl, , s_MenuPositionY, %s_MenuPositionY% GuiControl, Choose, s_MenuPosition, %s_MenuPosition% setTip("Edit13", lang_TipMenuPosition) setTip("Edit14", lang_TipMenuPosition) Gui, Add, Text, xs-10 y+15, %lang_RecentMenu%: Gui, Add, Text, xs Section BackgroundTrans, %lang_RecentSize% Gui, Add, Edit, xs+110 ys-4 r1 Number , %s_RecentSize% Gui, Add, UpDown, Range1-36 vs_RecentSize , %s_RecentSize% Gui, Add, CheckBox, ys-4 h20 vs_RecentOnlyFolder , %lang_RecentOnlyFolder% Gui, Add, Text, xs Section BackgroundTrans, %lang_RecentSizeS% Gui, Add, Edit, xs+110 ys-4 r1 Number , %s_RecentSizeS% Gui, Add, UpDown, Range1-36 vs_RecentSizeS , %s_RecentSizeS% Gui, Add, CheckBox, ys-4 h20 vs_RecentOnlyFolderS, %lang_RecentOnlyFolder% Gui, Add, CheckBox, xs h20 vs_RecentShowIndex, %lang_RecentShowIndex% GuiControl, , s_RecentOnlyFolder , %s_RecentOnlyFolder% GuiControl, , s_RecentOnlyFolderS, %s_RecentOnlyFolderS% GuiControl, , s_RecentShowIndex , %s_RecentShowIndex% Gui, Add, Button, x+12 yp-2 gf_ClearRecent, %lang_ClearRecent% Gui, Add, Text, xs-10 y+15, %lang_TempMenu%: Gui, Add, CheckBox, xs h20 vs_TempShowAll Section, %lang_TempShowAll% Gui, Add, Edit, ys w80 r1 vs_ShowFileExt, %s_ShowFileExt% Gui, Add, CheckBox, xs h20 vs_AltFolderIcon, %lang_AltFolderIcon% Gui, Add, CheckBox, h20 vs_BrowseMode , %lang_BrowseMode% setTip("Edit17", lang_TipTempExt) GuiControl, , s_TempShowAll , %s_TempShowAll% GuiControl, , s_AltFolderIcon, %s_AltFolderIcon% GuiControl, , s_BrowseMode , %s_BrowseMode% Gui, Add, CheckBox, xs-10 h20 vs_HideExt, %lang_HideExt% GuiControl, , s_HideExt, %s_HideExt% Gui, Add, CheckBox, xs-10 h20 vs_TCMenu, %lang_UseTCMenu% GuiControl, , s_TCMenu, %s_TCMenu% Gui, Add, Text, x+12 yp+4, %lang_TCPath% Gui, Add, Edit, x+12 yp-4 w80 r1 vs_TCPath, %s_TCPath% ;--------- Others --------- Gui, Tab, %lang_Other% gui_Language = English|| Loop, %A_ScriptDir%\*.lng { SplitPath, A_LoopFileName, , , , A_LoopFileNameNoExt gui_Language .= A_LoopFileNameNoExt . "|" } Gui, Add, Text, y+12 Section, %lang_Language% Gui, Add, DropDownList, w120 ys-4 vs_Language, %gui_Language% Gui, Add, CheckBox, xs h20 vs_StartWithWin Section, %lang_StartWithWin% Gui, Add, CheckBox, ys h20 vs_NoTray , %lang_NoTray% Gui, Add, CheckBox, xs h20 vs_CheckItmePath , %lang_CheckItmePath% Gui, Add, Text, xs y+12, %lang_FileManager% Gui, Add, Edit, x+12 yp-4 w150 r1 vs_FileManager, %s_FileManager% setTip("Edit19", lang_TipFileManager) Gui, Add, Text, xs y+12, %lang_Browser% Gui, Add, Edit, x+12 yp-4 w150 r1 vs_Browser , %s_Browser% Gui, Add, Text, xs y+12, %lang_TrayIconClick% Gui, Add, DropDownList, w100 vs_TrayIconClick x+12 yp-4 AltSubmit, %lang_ShowMenu% 1||%lang_ShowMenu% 1.5|%lang_ShowMenu% 2 GuiControl, Choose, s_TrayIconClick, %s_TrayIconClick% Gui, Add, Text, xs, %lang_AddFav%: Gui, Add, CheckBox, xp+10 y+12 h20 vs_AddFavBottom Section, %lang_AddFavBottom% Gui, Add, CheckBox, h20 vs_AddFavSkipGUI, %lang_AddFavSkipGUI% Gui, Add, CheckBox, x+12 yp h20 vs_AddFavReplace, %lang_AddFavReplace% Gui, Add, CheckBox, xs h20 vs_AddFavApp , %lang_AddFavApp% Gui, Add, CheckBox, x+12 yp h20 vs_AddFavAppCmd , %lang_AddFavAppCmd% setTip(lang_AddFavApp, lang_TipAddFavApp) Gui, Add, CheckBox, xs-10 h20 vs_SearchSel, %lang_SearchSel% Gui, Add, Edit, xp+12 y+6 w240 r1 vs_SearchSelUrl, %s_SearchSelUrl% GuiControl, Choose, s_Language, %s_Language% GuiControl, , s_StartWithWin , %s_StartWithWin% GuiControl, , s_NoTray , %s_NoTray% GuiControl, , s_CheckItmePath, %s_CheckItmePath% GuiControl, , s_AddFavBottom , %s_AddFavBottom% GuiControl, , s_AddFavSkipGUI, %s_AddFavSkipGUI% GuiControl, , s_AddFavReplace, %s_AddFavReplace% GuiControl, , s_AddFavApp , %s_AddFavApp% GuiControl, , s_AddFavAppCmd , %s_AddFavAppCmd% GuiControl, , s_SearchSel , %s_SearchSel% ;--------- About --------- Gui, Tab, %lang_About% gui_X := 50 + gui_ww/2 gui_Y := 100 + gui_hh/2 Gui, Add, Picture, Icon w32 h32 x+%gui_X% y+%gui_Y% Section, %f_Icons% Gui, Font, s16, Verdana Gui, Add, Text, ys+4 Section BackgroundTrans, Folder Menu Gui, Font Gui, Add, Text, ys+11 BackgroundTrans, v%f_CurrentVer% Gui, Add, Text, xs BackgroundTrans, Copyright (c) 2006-2009 rexx Gui, Add, Button, y+16 gf_GoWebsite, %lang_Website% Gui, Add, Button, gf_CheckVersionButton, %lang_CheckVer% Gui, Add, CheckBox, h20 vs_CheckVersion , %lang_CheckVersion% GuiControl, , s_CheckVersion , %s_CheckVersion% Gui, Add, Text, BackgroundTrans, %lang_Translate% Gui, Tab gui_X := 50 + gui_ww Gui, Add, Button, xm w60 Section gf_EditConfig , %lang_ToolEdit% Gui, Add, Button, x+%gui_X% ys w60 Default gf_OptionOK , %lang_OK% Gui, Add, Button, x+5 ys w60 gf_OptionCancel, %lang_Cancel% Gui, Add, Button, x+5 ys w60 gf_OptionApply , %lang_Apply% setTip(lang_ToolEdit, lang_TipEdit) if gui_hh = 0 { Gui, Add, Button, x+5 ys w20 gf_ExpandGui, > setTip(">", lang_BiggerWindow) } else { Gui, Add, Button, x+5 ys w20 gf_ExpandGui, < setTip("<", lang_SmallerWindow) } GuiControl, ChooseString, gui_Tab, %gui_Tab% ; choose last used tab gui_hh-= (gui_hh = 0) ? 0 : 18 gui_W := 350 + gui_ww gui_H := 470 + gui_hh Gui, Show, w%gui_W% h%gui_H%, %lang_OptionsTitle% ;GuiControl, Disable, gui_FavTree ;GuiControl, Disable, gui_ApplicationLV ;GuiControl, Disable, gui_HotkeyLV ;GuiControl, Disable, gui_IconLV GuiControl, -Redraw, gui_FavTree if s_TCMenu f_CreateTCTree() else { f_CreateFavTree("/FolderMenu/Menu/Item[1]", gui_FavTreeTVIDRoot) TV_Modify(gui_FavTreeTVIDRoot, "", lang_Menu) } GuiControl, +Redraw, gui_FavTree ;GuiControl, Enable, gui_FavTree ;GuiControl, Enable, gui_ApplicationLV ;GuiControl, Enable, gui_HotkeyLV ;GuiControl, Enable, gui_IconLV return f_EditConfig: MsgBox, 36, %lang_OptionsTitle%, %lang_SaveChange% IfMsgBox Yes Gosub, f_OptionOK else Gosub, f_OptionCancel MsgBox, 64, %lang_OptionsTitle%, %lang_EditReload% Run, notepad %A_ScriptDir%\Config.xml return f_OptionOK: f_SubmitApps() f_SubmitHotkeys() f_SubmitIcons() Gui, Submit f_ReadLanguage() f_SetConfig() f_WriteConfig() xpath_save(f_ConfigXML, "Config.xml") xpath_load(f_ConfigXML, "Config.xml") f_ReadFavorites() TrayTip ; remove old one if f_ErrorMsg != { TrayTip, !, %f_ErrorMsg%, , 1 f_ErrorMsg = } Gui, 2:Destroy Gui, Destroy return f_OptionCancel: GuiClose: GuiEscape: Gui, 2:Destroy Gui, Destroy return f_OptionApply: f_SubmitApps() f_SubmitHotkeys() f_SubmitIcons() Gui, Submit, NoHide f_ReadLanguage() f_SetConfig() f_WriteConfig() xpath_save(f_ConfigXML, "Config.xml") xpath_load(f_ConfigXML, "Config.xml") f_ReadFavorites() TrayTip ; remove old one if f_ErrorMsg != { TrayTip, !, %f_ErrorMsg%, , 1 f_ErrorMsg = } return f_ExpandGui: GuiControlGet, gui_Tab MsgBox, 36, %lang_OptionsTitle%, %lang_SaveChange% IfMsgBox Yes Gosub, f_OptionOK else Gosub, f_OptionCancel gui_hh := (gui_hh = 0) ? A_ScreenHeight-580 : 0 gui_hh := (gui_hh > 0) ? gui_hh : 0 gui_ww := (gui_ww = 0) ? 100 : 0 ;gui_ww := (gui_ww > 0) ? gui_ww : 0 Sleep, 100 Gosub, f_OptionsGUI return f_CheckVersionButton: f_CheckVersion() return f_GoWebsite: f_OpenUrl("http://www.autohotkey.net/~rexx/FolderMenu/") return ;==================== Add Favorite ====================; f_GetProcessPath(PID, CommandLine=0) { Static pFunc if !(hProc := DllCall("OpenProcess", UInt, 0x043A, Int, 0, UInt, PID)) return if pFunc = pFunc := DllCall("GetProcAddress", UInt, DllCall("GetModuleHandle", Str, "kernel32.dll"), Str, "GetCommandLineA") hThrd := DllCall("CreateRemoteThread", UInt, hProc, UInt, 0, UInt, 0, UInt, pFunc, UInt, 0, UInt, 0, UInt, 0) DllCall("WaitForSingleObject", UInt, hThrd, UInt, 0xFFFFFFFF) DllCall("GetExitCodeThread", UInt, hThrd, UIntP, pcl) if CommandLine { VarSetCapacity(sFilePath, 512) DllCall("ReadProcessMemory", UInt, hProc, UInt, pcl, Str, sFilePath, UInt, 512, UInt, 0) } else { VarSetCapacity(sFilePath, 260) DllCall("psapi\GetModuleFileNameExA", "Uint", hProc, "Uint", 0, "str", sFilePath, "Uint", 260) } DllCall("CloseHandle", UInt, hThrd) DllCall("CloseHandle", UInt, hProc) sFilePath = %sFilePath% return sFilePath } f_AddFavoriteGetInfo: ;if w_WinID = ;{ ; WinGet, w_WinID, ID, A ; WinGet, w_WinMin, MinMax, ahk_id %w_WinID% ; if w_WinMin = -1 ; Only detect windows not Minimized. ; return WinGetClass, w_Class, ahk_id %w_WinID% ;} gui_AddFavName = gui_AddFavPath = gui_AddFavPath := f_GetPath(w_WinID, w_Class) if gui_AddFavPath = ; cannot get folder path, get process path { if s_AddFavApp { WinGet, gui_AddFavPath, PID, ahk_id %w_WinID% gui_AddFavPath := f_GetProcessPath(gui_AddFavPath, s_AddFavAppCmd) ; WinGetTitle, gui_AddFavName, ahk_id %w_WinID% ; use title as name } } if s_CheckItmePath { gui_AddFavName := f_ItemPathExist(gui_AddFavPath) if gui_AddFavName { StringReplace, lang_PathExist_, lang_PathExist, `%ItemName`%, %gui_AddFavName% MsgBox, 48, %lang_Warning%, %lang_PathExist_% } } gui_AddFavName := f_GetName(gui_AddFavPath) if gui_AddFavName = gui_AddFavName = %lang_NewItem% return f_AddFavoriteHere: Gosub, f_AddFavoriteGetInfo StringTrimLeft, f_ThisMenu, A_ThisMenu, 9 ; trim "MainMenu@" StringSplit, f_ThisMenu, f_ThisMenu, @ if s_AddFavSkipGUI && gui_AddFavPath != "" ; skip gui only if path is not blank { gui_AddFavXmlPath := "/FolderMenu/Menu/Item[1]" if InStr(A_ThisMenu, "@") { Loop, %f_ThisMenu0% { f_ThisMenu := f_ThisMenu%A_Index% gui_AddFavXmlPath .= "/Item[@Name='" . f_Menu_%f_ThisMenu% . "']" } } gui_AddFavNameExist := xpath(f_ConfigXML, gui_AddFavXmlPath . "/Item[@Name='" . gui_AddFavName . "']/@Path/text()") if !s_AddFavReplace ; check for existing item and ask for what to do { if gui_AddFavNameExist != { StringReplace, lang_ItemExist_, lang_ItemExist, `%NewItemName`%, %gui_AddFavName% StringReplace, lang_ItemExist_, lang_ItemExist_, `%ItemName`%, %gui_AddFavNameExist% MsgBox, 36, %lang_AddFav%, %lang_ItemExist_% } IfMsgBox No return ; dont replace it. } if gui_AddFavNameExist = xpath(f_ConfigXML, gui_AddFavXmlPath . "/Item[+1]/@Name/text()", gui_AddFavName) xpath(f_ConfigXML, gui_AddFavXmlPath . "/Item[@Name='" . gui_AddFavName . "']/@Path/text()", gui_AddFavPath) xpath(f_ConfigXML, gui_AddFavXmlPath . "/Item[@Name='" . gui_AddFavName . "']/@Type/text()", "Item") StringReplace, lang_FavoriteAdded_, lang_FavoriteAdded, `%ItemName`%, %gui_AddFavName% TrayTip, %lang_AddFav%, %lang_FavoriteAdded_%, , 1 xpath_save(f_ConfigXML, "Config.xml") xpath_load(f_ConfigXML, "Config.xml") f_ReadFavorites() return } ;gui_hh = 0 ;gui_ww = 0 gui_Tab = %lang_Favorite% Gosub, f_OptionsGUI GuiControl, ChooseString, gui_Tab, %gui_Tab% Sleep, 100 GuiControl, Focus, gui_FavTree if InStr(A_ThisMenu, "@") { Send, {Home}{Left}{Right} Loop, %f_ThisMenu0% { f_ThisMenu := f_ThisMenu%A_Index% Send, % f_Menu_%f_ThisMenu% Send, {Right} } } else Send, {Home} TVX_Insert(0, s_AddFavBottom) gui_FavTreeSelected := TV_GetSelection() TV_Modify(gui_FavTreeSelected, "", gui_AddFavName) gui_FavTreePath%gui_FavTreeSelected% := gui_AddFavPath gui_FavEditIconPath := f_GetIcon(gui_AddFavPath) f_FavTreeUpdateIcon(gui_FavEditIconPath, gui_AddFavPath, gui_FavTreeSelected) return f_AddFavorite: Gosub, f_AddFavoriteGetInfo if s_AddFavSkipGUI && gui_AddFavPath != "" ; skip gui only if path is not blank { gui_AddFavNameExist := xpath(f_ConfigXML, "/FolderMenu/Menu/Item[1]/Item[@Name='" . gui_AddFavName . "']/@Path/text()") if !s_AddFavReplace ; check for existing item and ask for what to do { if gui_AddFavNameExist != { StringReplace, lang_ItemExist_, lang_ItemExist, `%NewItemName`%, %gui_AddFavName% StringReplace, lang_ItemExist_, lang_ItemExist_, `%ItemName`%, %gui_AddFavNameExist% MsgBox, 36, %lang_AddFav%, %lang_ItemExist_% } IfMsgBox No return ; dont replace it. } if gui_AddFavNameExist = xpath(f_ConfigXML, "/FolderMenu/Menu/Item[1]/Item[+1]/@Name/text()", gui_AddFavName) xpath(f_ConfigXML, "/FolderMenu/Menu/Item[1]/Item[@Name='" . gui_AddFavName . "']/@Path/text()", gui_AddFavPath) xpath(f_ConfigXML, "/FolderMenu/Menu/Item[1]/Item[@Name='" . gui_AddFavName . "']/@Type/text()", "Item") StringReplace, lang_FavoriteAdded_, lang_FavoriteAdded, `%ItemName`%, %gui_AddFavName% TrayTip, %lang_AddFav%, %lang_FavoriteAdded_%, , 1 xpath_save(f_ConfigXML, "Config.xml") xpath_load(f_ConfigXML, "Config.xml") f_ReadFavorites() return } ;gui_hh = 0 ;gui_ww = 0 gui_Tab = %lang_Favorite% Gosub, f_OptionsGUI GuiControl, ChooseString, gui_Tab, %gui_Tab% Sleep, 100 TVX_Insert(0, s_AddFavBottom) gui_FavTreeSelected := TV_GetSelection() TV_Modify(gui_FavTreeSelected, "", gui_AddFavName) gui_FavTreePath%gui_FavTreeSelected% := gui_AddFavPath gui_FavEditIconPath := f_GetIcon(gui_AddFavPath) f_FavTreeUpdateIcon(gui_FavEditIconPath, gui_AddFavPath, gui_FavTreeSelected) return GuiDropFiles: GuiControlGet, gui_Tab if gui_Tab = %lang_Favorite% { if A_GuiControl in gui_FavTree,gui_FavEditName,gui_FavEditPath { Loop, Parse, A_GuiEvent, `n { gui_AddFavPath = %A_LoopField% gui_AddFavName := f_GetName(gui_AddFavPath) if gui_AddFavName = gui_AddFavName = %lang_NewItem% if A_GuiControl = gui_FavTree { TVX_Insert() gui_FavTreeSelected := TV_GetSelection() TV_Modify(gui_FavTreeSelected, "", gui_AddFavName) gui_FavTreePath%gui_FavTreeSelected% := gui_AddFavPath } else { if !TV_GetParent(gui_FavTreeSelected) ; drop a file to root's path field, do nothing return GuiControl, , gui_FavEditName, %gui_AddFavName% GuiControl, , gui_FavEditPath, %gui_AddFavPath% } if gui_FavEditIcon = { gui_FavEditIconPath := f_GetIcon(gui_AddFavPath) f_FavTreeUpdateIcon(gui_FavEditIconPath, gui_AddFavPath, gui_FavTreeSelected) } } } } return ;==================== Favorites TreeView ====================; f_FavTreeAdd: TVX_Insert(GetKeyState("Shift", "P")) GuiControl, Enable, gui_FavEditName GuiControl, Focus, gui_FavEditName return f_FavTreeDel: TVX_Delete(GetKeyState("Shift", "P")) return f_FavTreeUp: GuiControl, Focus, gui_FavTree Send, +{Up} return f_FavTreeDown: GuiControl, Focus, gui_FavTree Send, +{Down} return f_FavTreeHandler: if A_GuiEvent = S { gui_FavTreeSelected := TV_GetSelection() TV_GetText(gui_FavEditName,gui_FavTreeSelected) gui_FavEditPath := gui_FavTreePath%gui_FavTreeSelected% gui_FavEditIcon := gui_FavTreeIcon%gui_FavTreeSelected% gui_FavEditSize := gui_FavTreeSize%gui_FavTreeSelected% gui_FavEditDepth:= gui_FavTreeDepth%gui_FavTreeSelected% GuiControl, , gui_FavEditName, %gui_FavEditName% GuiControl, , gui_FavEditPath, %gui_FavEditPath% GuiControl, , gui_FavEditIcon, %gui_FavEditIcon% GuiControl, , gui_FavEditSize, %gui_FavEditSize% GuiControl, , gui_FavEditDepth,%gui_FavEditDepth% GuiControl, Enable, gui_FavEditName GuiControl, Enable, gui_FavEditPath GuiControl, Enable, gui_FavEditIcon GuiControl, Enable, gui_FavEditSize GuiControl, Enable, gui_FavEditDepth GuiControl, Enable, gui_FavBtnPath GuiControl, Enable, gui_FavBtnIcon if !TV_GetParent(gui_FavTreeSelected) or gui_FavEditName = "-" ; root or separator { GuiControl, Disable, gui_FavEditName GuiControl, Disable, gui_FavEditPath GuiControl, Disable, gui_FavEditIcon GuiControl, Disable, gui_FavEditSize GuiControl, Disable, gui_FavEditDepth GuiControl, Disable, gui_FavBtnPath GuiControl, Disable, gui_FavBtnIcon } else if TV_GetChild(gui_FavTreeSelected) ; menu { GuiControl, Disable, gui_FavEditPath GuiControl, Disable, gui_FavBtnPath } } return f_FavEditName: GuiControlGet, gui_FavEditName TV_Modify(gui_FavTreeSelected, "", gui_FavEditName) return f_FavEditPath: GuiControlGet, gui_FavEditPath gui_FavTreePath%gui_FavTreeSelected% = %gui_FavEditPath% return f_FavEditIcon: GuiControlGet, gui_FavEditIcon gui_FavTreeIcon%gui_FavTreeSelected% = %gui_FavEditIcon% return f_FavBtnIcon: gui_FavEditIconPath = gui_FavEditIconIndex = f_Split2(f_DerefPath(gui_FavEditIcon), ",", gui_FavEditIconPath, gui_FavEditIconIndex) f_PickIconDlg(gui_FavEditIconPath, gui_FavEditIconIndex) GuiControl, , gui_FavEditIcon, %gui_FavEditIconPath%,%gui_FavEditIconIndex% gui_FavTreeIcon%gui_FavTreeSelected% = %gui_FavEditIcon% if gui_FavEditIconIndex > 0 gui_FavTreeIconID%gui_FavTreeSelected% := IL_Add(gui_FavImageList, gui_FavEditIconPath, gui_FavEditIconIndex+1) else gui_FavTreeIconID%gui_FavTreeSelected% := IL_Add(gui_FavImageList, gui_FavEditIconPath, gui_FavEditIconIndex) TV_Modify(gui_FavTreeSelected, "Icon" . gui_FavTreeIconID%gui_FavTreeSelected%) return f_FavEditSize: GuiControlGet, gui_FavEditSize gui_FavTreeSize%gui_FavTreeSelected% = %gui_FavEditSize% return f_FavEditDepth: GuiControlGet, gui_FavEditDepth gui_FavTreeDepth%gui_FavTreeSelected% = %gui_FavEditDepth% return f_CreateTCTree() { Global Critical if s_TCPath = s_TCPath := "C:\totalcmd" Local TCIniFile := s_TCPath . "\wincmd.ini" IniRead, TCIniFile, %TCIniFile%, DirMenu, RedirectSection, %TCIniFile% ; read redirect info StringReplace, TCIniFile, TCIniFile, `%COMMANDER_PATH`%, %s_TCPath% Local ItemMenu, ItemName, ItemPath, ItemIconPath, ItemIconID, ItemIconIndex Local ParentTVID := gui_FavTreeTVIDRoot Loop { IniRead, ItemName, %TCIniFile%, DirMenu, menu%A_Index%, %A_Space% if ItemName = break if ItemName = -- ; out of a submenu { if InStr(ParentTVID, "|", "", 0) StringRight, ParentTVID, ParentTVID, InStr(ParentTVID, "|", "", 0)-1 } else if SubStr(ItemName, 1, 1) = "-" ; into a submenu { StringTrimLeft, ItemName, ItemName, 1 ItemIconPath := f_GetIcon("Menu") f_Split2(ItemIconPath, ",", ItemIconPath, ItemIconIndex) if ItemIconIndex > 0 ; dont change negative index ItemIconIndex++ ItemIconID := IL_Add(gui_FavImageList, ItemIconPath, ItemIconIndex) ParentTVID := TV_Add(ItemName, ParentTVID, "Icon" . ItemIconID) . "|" . ParentTVID } else { IniRead, ItemPath, %TCIniFile%, DirMenu, cmd%A_Index%, %A_Space% StringTrimLeft, ItemPath, ItemPath, 3 ItemIconPath := f_GetIcon(ItemPath) f_Split2(ItemIconPath, ",", ItemIconPath, ItemIconIndex) if ItemIconPath = This { ItemIconPath = %ItemPath% StringReplace, ItemIconPath, ItemIconPath, `", , All } if ItemIconIndex > 0 ; dont change negative index ItemIconIndex++ SetWorkingDir % ItemPath ItemIconID := IL_Add(gui_FavImageList, ItemIconPath, ItemIconIndex) SetWorkingDir %A_ScriptDir% TV_Add(ItemName, ParentTVID, "Icon" . ItemIconID) } } ; TV_Add(lang_TipTCDirMenu) return } f_CreateFavTree(XMLPath, ParentTVID) ;, ParentVarName) { Global Critical Local ItemType, ItemName, ItemPath, ItemIcon, ItemSize, ItemDepth Local ItemTVID, ItemIconPath, ItemIconIndex, ItemIconID Loop, % xpath(f_ConfigXML, XMLPath . "/Item/count()") { ; Tooltip, Loading Favorites...`nMenu %ParentVarName%`, Item %A_Index% ItemType := xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Type/text()") if ItemType = Separator { ItemTVID := TV_Add("-", ParentTVID, "Icon1000") gui_FavTreePath%ItemTVID% := "" gui_FavTreeIcon%ItemTVID% := "" gui_FavTreeSize%ItemTVID% := "" gui_FavTreeDepth%ItemTVID%:= "" gui_FavTreeIconID%ItemTVID% := "1000" } else if ItemType = Item { ItemName := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Name/text()")) ItemPath := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Path/text()")) ItemIcon := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Icon/text()")) ItemSize := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Size/text()")) if ItemIcon = ; no icon in xml, get default icon { if SubStr(ItemPath, 1, 1) = "_" ; special items { if ItemPath = _ToolAdd ItemIconPath = %f_Icons%,-301 else if ItemPath = _ToolAddHere ItemIconPath = %f_Icons%,-301 else if ItemPath = _ToolReload ItemIconPath = %f_Icons%,-302 else if ItemPath = _ToolOptions ItemIconPath = %f_Icons%,-303 else if ItemPath = _ToolEdit ItemIconPath = %f_Icons%,-304 else if ItemPath = _ToolExit ItemIconPath = %f_Icons%,-305 else if ItemPath = _ToolToggleHidden ItemIconPath = %f_Icons%,-302 else if ItemPath = _ToolToggleFileExt ItemIconPath = %f_Icons%,-302 else if ItemPath = _SystemRecent ItemIconPath := f_GetIcon("Recent") else if ItemPath = _ExplorerList ItemIconPath := f_GetIcon("Explorer") else if ItemPath = _DriveList ItemIconPath := f_GetIcon("Computer") else if ItemPath = _ToolMenu ItemIconPath = %f_Icons% else if ItemPath = _RecentMenu ItemIconPath = %f_Icons%,-307 else if ItemPath = _DebugMenu ItemIconPath = %f_Icons%,-306 else if ItemPath = _SVSMenu ItemIconPath = svsadmin.exe else if ItemPath = _TCMenu ItemIconPath = %s_TCPath%\totalcmd.exe } else ; a normal item { ItemIconPath := f_GetIcon(ItemPath) } } else ; use icon in xml ItemIconPath := f_DerefPath(ItemIcon) f_Split2(ItemIconPath, ",", ItemIconPath, ItemIconIndex) if ItemIconPath = This { ItemIconPath = %ItemPath% StringReplace, ItemIconPath, ItemIconPath, `", , All } if ItemIconIndex > 0 ; dont change negative index ItemIconIndex++ SetWorkingDir % ItemPath ItemIconID := IL_Add(gui_FavImageList, ItemIconPath, ItemIconIndex) SetWorkingDir %A_ScriptDir% ItemTVID := TV_Add(ItemName, ParentTVID, "Icon" . ItemIconID) gui_FavTreePath%ItemTVID% := ItemPath gui_FavTreeIcon%ItemTVID% := ItemIcon gui_FavTreeSize%ItemTVID% := ItemSize gui_FavTreeDepth%ItemTVID%:= "" gui_FavTreeIconID%ItemTVID% := ItemIconID } else if ItemType = ItemMenu { ItemName := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Name/text()")) ItemPath := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Path/text()")) ItemIcon := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Icon/text()")) ItemSize := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Size/text()")) ItemDepth:= f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Depth/text()")) if ItemIcon = ; no icon in xml, get default icon ItemIconPath := f_GetIcon(ItemPath) else ; use icon in xml ItemIconPath := ItemIcon f_Split2(ItemIconPath, ",", ItemIconPath, ItemIconIndex) if ItemIconPath = This { ItemIconPath = %ItemPath% StringReplace, ItemIconPath, ItemIconPath, `", , All } if ItemIconIndex > 0 ; dont change negative index ItemIconIndex++ SetWorkingDir % ItemPath ItemIconID := IL_Add(gui_FavImageList, ItemIconPath, ItemIconIndex) SetWorkingDir %A_ScriptDir% ItemTVID := TV_Add(ItemName, ParentTVID, "Icon" . ItemIconID) gui_FavTreePath%ItemTVID% := ItemPath gui_FavTreeIcon%ItemTVID% := ItemIcon gui_FavTreeSize%ItemTVID% := ItemSize gui_FavTreeDepth%ItemTVID%:= ItemDepth gui_FavTreeIconID%ItemTVID% := ItemIconID } else if ItemType = Menu { ItemName := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Name/text()")) ItemIcon := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Icon/text()")) ItemSize := f_XMLUnescape(xpath(f_ConfigXML, XMLPath . "/Item[" . A_Index . "]/@Size/text()")) if ItemIcon = ItemIconPath := f_GetIcon("Menu") else ItemIconPath := ItemIcon f_Split2(ItemIconPath, ",", ItemIconPath, ItemIconIndex) if ItemIconIndex > 0 ; dont change negative index ItemIconIndex++ ItemIconID := IL_Add(gui_FavImageList, ItemIconPath, ItemIconIndex) ItemTVID := TV_Add(ItemName, ParentTVID, "Icon" . ItemIconID) gui_FavTreePath%ItemTVID% := "" ; blank path for group item gui_FavTreeIcon%ItemTVID% := ItemIcon gui_FavTreeSize%ItemTVID% := ItemSize gui_FavTreeDepth%ItemTVID%:= "" gui_FavTreeIconID%ItemTVID% := ItemIconID ; this group icon id f_CreateFavTree(XMLPath . "/Item[" . A_Index . "]", ItemTVID) } } ; ToolTip return } f_WriteFavorites() { Global Local RootName TV_GetText(RootName, gui_FavTreeTVIDRoot) if RootName = %lang_Menu% ; only writes menu when the root is named "Menu" { xpath(f_ConfigXML, "/FolderMenu/Menu/Item[1]/remove()") TVX_Walk(0, "f_FavTreeSaveH", gui_FavTreeEvent, gui_FavTreeEventItem) } return } f_FavTreeSaveH: f_FavTreeSave(gui_FavTreeEvent, gui_FavTreeEventItem) return f_FavTreeSave(Event, Item) { Global Local ItemID, ItemName, ItemPath, ItemIcon, ItemSize, ItemDepth TV_GetText(ItemName, Item) if Event = + ; start { gui_FavTreeXMLPath := "/FolderMenu/Menu" gui_FavTreeXMLID = 0 } if Event = M ; enter group { ItemID := gui_FavTreeXMLID ItemIcon := gui_FavTreeIcon%Item% ItemSize := gui_FavTreeSize%Item% ItemName := f_XMLEscape(ItemName) ItemIcon := f_XMLEscape(ItemIcon) xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[+1]/@ID/text()", ItemID) xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[@ID='" . ItemID . "']/@Type/text()", "Menu") xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[@ID='" . ItemID . "']/@Name/text()", ItemName) xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[@ID='" . ItemID . "']/@Icon/text()", ItemIcon) xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[@ID='" . ItemID . "']/@Size/text()", ItemSize) gui_FavTreeXMLPath .= "/Item[@ID='" . ItemID . "']" gui_FavTreeXMLID++ } if Event = I ; item { if ItemName = - { xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[+1]", "") } else { ItemPath := gui_FavTreePath%Item% ItemIcon := gui_FavTreeIcon%Item% ItemSize := gui_FavTreeSize%Item% ItemDepth:= gui_FavTreeDepth%Item% ItemName := f_XMLEscape(ItemName) ItemPath := f_XMLEscape(ItemPath) ItemIcon := f_XMLEscape(ItemIcon) if ItemDepth = xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[+1]", "") else xpath(f_ConfigXML, gui_FavTreeXMLPath . "/Item[+1]", "") } } if Event = E ; exit group { gui_FavTreeXMLPath := SubStr(gui_FavTreeXMLPath, 1, InStr(gui_FavTreeXMLPath, "/", 0, 0)-1) } if Event = - ; end { } return } f_FavBrowseFolder: GuiControlGet, gui_FavEditPath gui_FavEditPath := f_DerefPath(gui_FavEditPath) FileSelectFolder, gui_FavEditPath, *%gui_FavEditPath%, , Select Folder if gui_FavEditPath != { GuiControl, , gui_FavEditPath, %gui_FavEditPath% gui_FavEditName := f_GetName(gui_FavEditPath) GuiControl, , gui_FavEditName, %gui_FavEditName% if gui_FavEditIcon = { gui_FavEditIconPath := f_GetIcon(gui_FavEditPath) f_FavTreeUpdateIcon(gui_FavEditIconPath, gui_FavEditPath, gui_FavTreeSelected) } } return f_FavBrowseFile: GuiControlGet, gui_FavEditPath gui_FavEditPath := f_DerefPath(gui_FavEditPath) FileSelectFile, gui_FavEditPath, , %gui_FavEditPath%, Select File if gui_FavEditPath != { GuiControl, , gui_FavEditPath, %gui_FavEditPath% gui_FavEditName := f_GetName(gui_FavEditPath) GuiControl, , gui_FavEditName, %gui_FavEditName% if gui_FavEditIcon = { gui_FavEditIconPath := f_GetIcon(gui_FavEditPath) f_FavTreeUpdateIcon(gui_FavEditIconPath, gui_FavEditPath, gui_FavTreeSelected) } } return f_FavBtnPath: Menu, FavBtnPath, Show return f_FavPathSpecial: GuiControl, , gui_FavEditName, %A_ThisMenuItem% if A_ThisMenuItem = %lang_MyComputer% { GuiControl, , gui_FavEditPath, Computer gui_FavEditIconPath := f_GetIcon("Computer") } else if A_ThisMenuItem = %lang_AddFavorite% { GuiControl, , gui_FavEditPath, _ToolAdd gui_FavEditIconPath = %f_Icons%,-301 } else if A_ThisMenuItem = %lang_AddFavoriteHere% { GuiControl, , gui_FavEditPath, _ToolAddHere gui_FavEditIconPath = %f_Icons%,-301 } else if A_ThisMenuItem = %lang_Reload% { GuiControl, , gui_FavEditPath, _ToolReload gui_FavEditIconPath = %f_Icons%,-302 } else if A_ThisMenuItem = %lang_Options% { GuiControl, , gui_FavEditPath, _ToolOptions gui_FavEditIconPath = %f_Icons%,-303 } else if A_ThisMenuItem = %lang_Edit% { GuiControl, , gui_FavEditPath, _ToolEdit gui_FavEditIconPath = %f_Icons%,-304 } else if A_ThisMenuItem = %lang_Exit% { GuiControl, , gui_FavEditPath, _ToolExit gui_FavEditIconPath = %f_Icons%,-305 } else if A_ThisMenuItem = %lang_ToggleHidden% { GuiControl, , gui_FavEditPath, _ToolToggleHidden gui_FavEditIconPath = %f_Icons%,-302 } else if A_ThisMenuItem = %lang_ToggleFileExt% { GuiControl, , gui_FavEditPath, _ToolToggleFileExt gui_FavEditIconPath = %f_Icons%,-302 } else if A_ThisMenuItem = %lang_SystemRecent% { GuiControl, , gui_FavEditPath, _SystemRecent gui_FavEditIconPath := f_GetIcon("Recent") } else if A_ThisMenuItem = %lang_ExplorerList% { GuiControl, , gui_FavEditPath, _ExplorerList gui_FavEditIconPath := f_GetIcon("Explorer") } else if A_ThisMenuItem = %lang_DriveList% { GuiControl, , gui_FavEditPath, _DriveList gui_FavEditIconPath := f_GetIcon("Computer") } else if A_ThisMenuItem = %lang_ToolMenu% { GuiControl, , gui_FavEditPath, _ToolMenu gui_FavEditIconPath = %f_Icons% } else if A_ThisMenuItem = %lang_RecentMenu% { GuiControl, , gui_FavEditPath, _RecentMenu gui_FavEditIconPath = %f_Icons%,-307 } else if A_ThisMenuItem = %lang_SVSMenu% { GuiControl, , gui_FavEditPath, _SVSMenu gui_FavEditIconPath = svsadmin.exe } else if A_ThisMenuItem = %lang_TCMenu% { GuiControl, , gui_FavEditPath, _TCMenu gui_FavEditIconPath = %s_TCPath%\totalcmd.exe } else if A_ThisMenuItem = %lang_Separator% { GuiControl, , gui_FavEditName, - GuiControl, , gui_FavEditPath gui_FavTreeIconID%gui_FavTreeSelected% := 1000 TV_Modify(gui_FavTreeSelected, "Icon1000") return } if gui_FavEditIcon = f_FavTreeUpdateIcon(gui_FavEditIconPath, "", gui_FavTreeSelected) return f_FavTreeUpdateIcon(IconPath, ThisPath, FavTreeSelected) { Global Local IconIndex if IconPath = This { IconPath := ThisPath StringReplace, IconPath, IconPath, `", , All } f_Split2(IconPath, ",", IconPath, IconIndex) if IconIndex > 0 ; dont change negative index IconIndex++ gui_FavTreeIconID%FavTreeSelected% := IL_Add(gui_FavImageList, IconPath, IconIndex) TV_Modify(FavTreeSelected, "Icon" . gui_FavTreeIconID%FavTreeSelected%) return } ;==================== Apps List ====================; f_ApplicationLV: Gui, ListView, gui_ApplicationLV if A_GuiEvent = I { StringCaseSense, On if ErrorLevel contains S { LV_GetText(gui_AppEditName , A_EventInfo, 1) LV_GetText(gui_AppEditType , A_EventInfo, 2) LV_GetText(gui_AppEditClass, A_EventInfo, 3) GuiControl, , gui_AppEditName , %gui_AppEditName% if gui_AppEditType = C GuiControl, Choose, gui_AppEditType , 2 else GuiControl, Choose, gui_AppEditType , 1 GuiControl, , gui_AppEditClass, %gui_AppEditClass% } StringCaseSense, Off } else if A_GuiEvent = K { if A_EventInfo = 45 ; ins key Gosub, f_ApplicationAdd if A_EventInfo = 46 ; del key Gosub, f_ApplicationDel } return f_AppEditName: Gui, ListView, gui_ApplicationLV gui_AppSelected := LV_GetNext() if gui_AppSelected = 0 return GuiControlGet, gui_AppEditName LV_Modify(gui_AppSelected, "Col1", gui_AppEditName) return f_AppEditClass: Gui, ListView, gui_ApplicationLV gui_AppSelected := LV_GetNext() if gui_AppSelected = 0 return GuiControlGet, gui_AppEditClass LV_Modify(gui_AppSelected, "Col3", gui_AppEditClass) return f_AppEditType: Gui, ListView, gui_ApplicationLV gui_AppSelected := LV_GetNext() if gui_AppSelected = 0 return GuiControlGet, gui_AppEditType if gui_AppEditType = %lang_Contain% LV_Modify(gui_AppSelected, "Col2", "C") else LV_Modify(gui_AppSelected, "Col2", "M") return f_ApplicationAdd: Gui, ListView, gui_ApplicationLV LV_Add("Check Focus Select Col2", "M") gui_AppSelected := LV_GetNext() LV_Modify(gui_AppSelected, "Vis") GuiControl, Focus, gui_AppEditName return f_ApplicationDel: Gui, ListView, gui_ApplicationLV gui_AppSelected := LV_GetNext() if gui_AppSelected = 0 return LV_Delete(gui_AppSelected) LV_Modify(gui_AppSelected, "Select Focus") return f_ApplicationDef: Gui, ListView, gui_ApplicationLV LV_Add("Check Focus Select", lang_Explorer , "M", "CabinetWClass,ExploreWClass") LV_Add("Check Focus Select", lang_Dialog , "M", "#32770") LV_Add("Check Focus Select", lang_DialogO , "C", "bosa_sdm_") LV_Add("Check Focus Select", lang_Command , "M", "ConsoleWindowClass") LV_Add("Check Focus Select", lang_Desktop , "M", "Progman,WorkerW") LV_Add("Check Focus Select", lang_7zFM , "M", "FM") LV_Add("Check Focus Select", "FileZilla3" , "M", "wxWindowClassNR") LV_Add("Check Focus Select", "TotalCommander", "M", "TTOTAL_CMD") LV_Add("Check Focus Select", "UnrealCommander","M", "TxUNCOM.UnicodeClass") LV_Add("Check Focus Select", "FreeCommander" , "M", "TfcForm") LV_Add("Check Focus Select", "Emacs" , "M", "Emacs") LV_Add("Check Focus Select", "rxvt" , "C", "rxvt") LV_Add("Check Focus Select", "WinRAR" , "M", "WinRarWindow") LV_Add("Check Focus Select", "FileZilla2" , "M", "FileZilla Main Window") LV_Add("Check Focus Select", "XnView" , "M", "XmainClass") LV_Add("Check Focus Select", "xplorer^2" , "M", "ATL:ExplorerFrame") LV_Add("Check Focus Select", "ACDSee Classic", "M", "ACDBrowser") gui_AppSelected := LV_GetNext() LV_Modify(gui_AppSelected, "Vis") return f_SubmitApps() { Global Local ThisName, ThisClass, ThisType, ThisCheck Gui, ListView, gui_ApplicationLV s_ApplicationsCount := LV_GetCount() Loop, % s_ApplicationsCount { LV_GetText(ThisName , A_Index, 1) LV_GetText(ThisClass, A_Index, 3) LV_GetText(ThisType , A_Index, 2) SendMessage, 4140, A_Index - 1, 0xF000, SysListView321 ; 4140 is LVM_GETITEMSTATE. 0xF000 is LVIS_STATEIMAGEMASK. ThisCheck := (ErrorLevel >> 12) - 1 ; This sets IsChecked to true if RowNumber is checked or false otherwise. s_Applications%A_Index%Name := ThisName s_Applications%A_Index%Class:= ThisClass s_Applications%A_Index%Type := ThisType s_Applications%A_Index%Check:= ThisCheck } return } ;==================== Icons ListView ====================; f_NoMenuIcon: Gui, ListView, gui_IconLV GuiControlGet, s_NoMenuIcon GuiControl, , gui_IconEditExt GuiControl, , gui_IconEditIcon GuiControl, , gui_IconEditSize LV_Modify(LV_GetNext(), "-Select -Focus") GuiControl, Disable%s_NoMenuIcon%, s_IconSize GuiControl, Disable%s_NoMenuIcon%, gui_IconLV GuiControl, Disable%s_NoMenuIcon%, gui_IconEditExt GuiControl, Disable%s_NoMenuIcon%, gui_IconEditIcon GuiControl, Disable%s_NoMenuIcon%, gui_IconEditSize GuiControl, Disable%s_NoMenuIcon%, gui_IconBtnIcon GuiControl, Disable%s_NoMenuIcon%, gui_IconBtnAdd GuiControl, Disable%s_NoMenuIcon%, gui_IconBtnDel return f_IconEditExt: Gui, ListView, gui_IconLV gui_IconSelected := LV_GetNext() if gui_IconSelected = 0 return GuiControlGet, gui_IconEditExt LV_Modify(gui_IconSelected, "Col2", gui_IconEditExt) return f_IconEditSize: Gui, ListView, gui_IconLV gui_IconSelected := LV_GetNext() if gui_IconSelected = 0 return GuiControlGet, gui_IconEditSize LV_Modify(gui_IconSelected, "Col3", gui_IconEditSize) return f_IconEditIcon: Gui, ListView, gui_IconLV gui_IconSelected := LV_GetNext() if gui_IconSelected = 0 return GuiControlGet, gui_IconEditIcon LV_Modify(gui_IconSelected, "Col4", gui_IconEditIcon) return f_IconAdd: Gui, ListView, gui_IconLV f_PickIconDlg(gui_IconNewPath, gui_IconNewIndex) LV_Add("Focus Select Icon" . IL_Add(gui_IconImageList, gui_IconNewPath, gui_IconNewIndex+1), "", "", "", gui_IconNewPath . "," . gui_IconNewIndex) GuiControl, Focus, gui_IconEditExt return f_IconDel: Gui, ListView, gui_IconLV gui_IconSelected := LV_GetNext() if gui_IconSelected = 0 return LV_Delete(gui_IconSelected) LV_Modify(gui_IconSelected, "Select Focus") return f_IconLV: Gui, ListView, gui_IconLV if A_GuiEvent = I { StringCaseSense, On if ErrorLevel contains S { LV_GetText(gui_IconEditExt , A_EventInfo, 2) LV_GetText(gui_IconEditSize, A_EventInfo, 3) LV_GetText(gui_IconEditIcon, A_EventInfo, 4) GuiControl, , gui_IconEditExt , %gui_IconEditExt% GuiControl, , gui_IconEditSize, %gui_IconEditSize% GuiControl, , gui_IconEditIcon, %gui_IconEditIcon% } StringCaseSense, Off } else if A_GuiEvent = A Gosub, f_IconBtnIcon else if A_GuiEvent = K { if A_EventInfo = 45 ; ins key Gosub, f_IconAdd if A_EventInfo = 46 ; del key Gosub, f_IconDel } return f_IconBtnIcon: Gui, ListView, gui_IconLV gui_IconSelected := LV_GetNext() if gui_IconSelected = 0 return f_Split2(gui_IconEditIcon, ",", gui_IconEditPath, gui_IconEditIndex) gui_IconEditPath := f_DerefPath(gui_IconEditPath) f_PickIconDlg(gui_IconEditPath, gui_IconEditIndex) LV_Modify(gui_IconSelected, "Col4", gui_IconEditPath . "," . gui_IconEditIndex) if gui_IconEditIndex > 0 LV_Modify(gui_IconSelected, "Col1 Icon" . IL_Add(gui_IconImageList, gui_IconEditPath, gui_IconEditIndex+1)) else LV_Modify(gui_IconSelected, "Col1 Icon" . IL_Add(gui_IconImageList, gui_IconEditPath, gui_IconEditIndex)) GuiControl, , gui_IconEditIcon, % gui_IconEditPath . "," . gui_IconEditIndex return f_PickIconDlg(ByRef IconPath, ByRef IconIndex) { if IconPath = IconPath = shell32.dll VarSetCapacity(wIconPath, 260 * 2) DllCall("MultiByteToWideChar", "Uint", 0, "Uint", 0, "str", IconPath, "int", -1, "str", wIconPath, "int", 260) DllCall("shell32\PickIconDlg", "Uint", 0, "str", wIconPath, "Uint", 260, "intP", IconIndex) VarSetCapacity(IconPath, 260) DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "str", wIconPath, "int", -1, "str", IconPath, "int", 260, "Uint", 0, "Uint", 0) IconPath := f_DerefPath(IconPath) return } f_SubmitIcons() { Global Local ThisExt, ThisSize, ThisPath, ThisIndex Gui, ListView, gui_IconLV s_IconsCount := LV_GetCount() Loop, % s_IconsCount { LV_GetText(ThisExt , A_Index, 2) LV_GetText(ThisSize, A_Index, 3) LV_GetText(ThisPath, A_Index, 4) f_Split2(ThisPath, ",", ThisPath, ThisIndex) s_Icons%A_Index%Ext := ThisExt s_Icons%A_Index%Size := ThisSize s_Icons%A_Index%Path := ThisPath s_Icons%A_Index%Index := ThisIndex } return } ;==================== Hotkeys ====================; f_HotkeyHelp: MsgBox, 68, %lang_Hotkey%, %lang_HotkeyHelp% IfMsgBox Yes f_OpenUrl("http://www.autohotkey.com/docs/Hotkeys.htm#Symbols") return f_HotkeyEditHotkey: Gui, ListView, gui_HotkeyLV gui_HotkeySelected := LV_GetNext() if gui_HotkeySelected = 0 return GuiControlGet, gui_HotkeyEditHotkey LV_Modify(gui_HotkeySelected, "Col1", gui_HotkeyEditHotkey) return f_HotkeyEditAction: Gui, ListView, gui_HotkeyLV gui_HotkeySelected := LV_GetNext() if gui_HotkeySelected = 0 return GuiControlGet, gui_HotkeyEditAction LV_Modify(gui_HotkeySelected, "Col2", gui_HotkeyEditAction) return f_HotkeySet: Gui, 2:Destroy if gui_HotkeyDDL = { gui_HotkeyDDL := "A||B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|" gui_HotkeyDDL .= "0|1|2|3|4|5|6|7|8|9|0|``|-|=|[|]|`\|;|'|,|.|/|" gui_HotkeyDDL .= "F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|" gui_HotkeyDDL .= "Space|Tab|Enter|Escape|Backspace|Delete|Insert|Home|End|PgUp|PgDn|Up|Down|Left|Right|" gui_HotkeyDDL .= "ScrollLock|CapsLock|NumLock|PrintScreen|CtrlBreak|Pause|Break|" gui_HotkeyDDL .= "Numpad0|Numpad1|Numpad2|Numpad3|Numpad4|Numpad5|Numpad6|Numpad7|Numpad8|Numpad9|" gui_HotkeyDDL .= "NumpadDot|NumpadDiv|NumpadMult|NumpadAdd|NumpadSub|NumpadEnter|" gui_HotkeyDDL .= "LButton|RButton|MButton|WheelDown|WheelUp|WheelLeft|WheelRight|XButton1|XButton2|" gui_HotkeyDDL .= "Browser_Back|Browser_Forward|Browser_Refresh|Browser_Stop|Browser_Search|Browser_Favorites|Browser_Home|" gui_HotkeyDDL .= "Volume_Mute|Volume_Down|Volume_Up|" gui_HotkeyDDL .= "Media_Next|Media_Prev|Media_Stop|Media_Play_Pause|" gui_HotkeyDDL .= "Launch_Mail|Launch_Media|Launch_App1|Launch_App2|" } GuiControlGet, gui_HotkeyText, , gui_HotkeyEditHotkey Gui, 2:Add, Text, Section, % lang_Hotkey . ": " Gui, 2:Add, Text, x+5 yp w120 vgui_HotkeyText, %gui_HotkeyText% Gui, 2:Add, CheckBox, h20 vgui_HotkeyW gf_HotkeyText xs Section, Win Gui, 2:Add, CheckBox, h20 vgui_HotkeyA gf_HotkeyText, Alt Gui, 2:Add, CheckBox, h20 vgui_HotkeyC gf_HotkeyText, Ctrl Gui, 2:Add, CheckBox, h20 vgui_HotkeyS gf_HotkeyText, Shift Gui, 2:Add, CheckBox, h20 vgui_HotkeyD gf_HotkeyText ys, %lang_HotkeyD% Gui, 2:Add, CheckBox, h20 vgui_HotkeyN gf_HotkeyText, %lang_HotkeyN% Gui, 2:Add, DropDownList, w130 vgui_Hotkey gf_HotkeyText, %gui_HotkeyDDL% Gui, 2:Add, Button, w60 Section Default gf_HotkeyOK, %lang_OK% Gui, 2:Add, Button, w60 ys gf_HotkeyCancel, %lang_Cancel% Gui, 2:+AlwaysOnTop -Caption +Border +ToolWindow ; +ToolWindow avoids a taskbar button and an alt-tab menu item. if InStr(gui_HotkeyText, "~") GuiControl, 2:, gui_HotkeyN, 1 if InStr(gui_HotkeyText, "#") GuiControl, 2:, gui_HotkeyW, 1 if InStr(gui_HotkeyText, "!") GuiControl, 2:, gui_HotkeyA, 1 if InStr(gui_HotkeyText, "^") GuiControl, 2:, gui_HotkeyC, 1 if InStr(gui_HotkeyText, "+") GuiControl, 2:, gui_HotkeyS, 1 if InStr(gui_HotkeyText, "DB") GuiControl, 2:, gui_HotkeyD, 1 StringReplace, gui_HotkeyText, gui_HotkeyText, ~, , All StringReplace, gui_HotkeyText, gui_HotkeyText, #, , All StringReplace, gui_HotkeyText, gui_HotkeyText, !, , All StringReplace, gui_HotkeyText, gui_HotkeyText, ^, , All StringReplace, gui_HotkeyText, gui_HotkeyText, +, , All StringReplace, gui_HotkeyText, gui_HotkeyText, DB, , All GuiControl, 2:ChooseString, gui_Hotkey, %gui_HotkeyText% Gui, 2:Show return f_HotkeyText: Gui, 2:Submit, NoHide gui_HotkeyText := gui_Hotkey if gui_HotkeyN gui_HotkeyText := "~" . gui_HotkeyText if gui_HotkeyW gui_HotkeyText := "#" . gui_HotkeyText if gui_HotkeyA gui_HotkeyText := "!" . gui_HotkeyText if gui_HotkeyC gui_HotkeyText := "^" . gui_HotkeyText if gui_HotkeyS gui_HotkeyText := "+" . gui_HotkeyText if gui_HotkeyD gui_HotkeyText := "DB" . gui_HotkeyText GuiControl, , gui_HotkeyText, %gui_HotkeyText% return f_HotkeyOK: Gosub, f_HotkeyText gui_HotkeyEditHotkey := gui_HotkeyText GuiControl, 1:, gui_HotkeyEditHotkey , %gui_HotkeyEditHotkey% Gui, 2:Destroy return f_HotkeyCancel: 2GuiEscape: Gui, 2:Destroy return f_HotkeyAdd: Gui, ListView, gui_HotkeyLV LV_Add("Focus Select") GuiControl, , gui_HotkeyEditHotkey Gosub, f_HotkeySet GuiControl, Choose, gui_HotkeyEditAction, 1 Gosub, f_HotkeyEditAction return f_HotkeyDel: Gui, ListView, gui_HotkeyLV gui_HotkeySelected := LV_GetNext() if gui_HotkeySelected = 0 return LV_Delete(gui_HotkeySelected) LV_Modify(gui_HotkeySelected, "Select Focus") return f_HotkeyLV: Gui, ListView, gui_HotkeyLV if A_GuiEvent = I { StringCaseSense, On if ErrorLevel contains S { LV_GetText(gui_HotkeyEditHotkey , A_EventInfo, 1) LV_GetText(gui_HotkeyEditAction , A_EventInfo, 2) GuiControl, , gui_HotkeyEditHotkey , %gui_HotkeyEditHotkey% GuiControl, ChooseString, gui_HotkeyEditAction, %gui_HotkeyEditAction% } StringCaseSense, Off } else if A_GuiEvent = A Gosub, f_HotkeySet else if A_GuiEvent = K { if A_EventInfo = 45 ; ins key Gosub, f_HotkeyAdd if A_EventInfo = 46 ; del key Gosub, f_HotkeyDel } return f_SubmitHotkeys() { Global Local ThisName, ThisKey Gui, ListView, gui_HotkeyLV s_HotkeysCount := LV_GetCount() Loop, % s_HotkeysCount { LV_GetText(ThisName, A_Index, 2) LV_GetText(ThisKey , A_Index, 1) ; s_Hotkeys%A_Index%Name := ThisName s_Hotkeys%A_Index%Key := ThisKey s_Hotkeys%A_Index%Lab := f_HotkeyName2Lab(ThisName) } return } f_HotkeyName2Lab(ThisName) { Global if ThisName = %lang_ShowMenu% 1 return "f_DisplayMenu1" else if ThisName = %lang_ShowMenu% 1.5 return "f_DisplayMenu15" else if ThisName = %lang_ShowMenu% 2 return "f_DisplayMenu2" else if ThisName = %lang_OpenSelText% return "f_OpenSel" else if ThisName = %lang_AddApp% return "f_AddApp" else if ThisName = %lang_AddFav% return "f_AddFavoriteK" else if ThisName = %lang_Reload% return "f_ToolReload" else if ThisName = %lang_Options% return "f_ToolOptions" else if ThisName = %lang_Edit% return "f_ToolEdit" else if ThisName = %lang_Exit% return "f_ToolExit" else if ThisName = %lang_ToggleHidden% return "f_ToolToggleHidden" else if ThisName = %lang_ToggleFileExt% return "f_ToolToggleFileExt" else if ThisName = %lang_SystemRecent% return "f_SystemRecent" else if ThisName = %lang_ExplorerList% return "f_ExplorerList" else if ThisName = %lang_DriveList% return "f_DriveList" else if ThisName = %lang_ToolMenu% return "f_ToolMenu" else if ThisName = %lang_RecentMenu% return "f_RecentMenu" else if ThisName = %lang_SVSMenu% return "f_SVSMenu" else if ThisName = %lang_TCMenu% return "f_TCMenu" else return } f_HotkeyLab2Name(ThisLab) { Global if ThisLab = f_DisplayMenu1 return lang_ShowMenu . " 1" else if ThisLab = f_DisplayMenu15 return lang_ShowMenu . " 1.5" else if ThisLab = f_DisplayMenu2 return lang_ShowMenu . " 2" else if ThisLab = f_OpenSel return lang_OpenSelText else if ThisLab = f_AddApp return lang_AddApp else if ThisLab = f_AddFavoriteK return lang_AddFav else if ThisLab = f_ToolReload return lang_Reload else if ThisLab = f_ToolOptions return lang_Options else if ThisLab = f_ToolEdit return lang_Edit else if ThisLab = f_ToolExit return lang_Exit else if ThisLab = f_ToolToggleHidden return lang_ToggleHidden else if ThisLab = f_ToolToggleFileExt return lang_ToggleFileExt else if ThisLab = f_SystemRecent return lang_SystemRecent else if ThisLab = f_ExplorerList return lang_ExplorerList else if ThisLab = f_DriveList return lang_DriveList else if ThisLab = f_ToolMenu return lang_ToolMenu else if ThisLab = f_RecentMenu return lang_RecentMenu else if ThisLab = f_SVSMenu return lang_SVSMenu else if ThisLab = f_TCMenu return lang_TCMenu else return }