; 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
}