LifeRPG_v2.0/Search.ahk
2012-12-16 04:02:59 -05:00

109 lines
3.6 KiB
AutoHotkey

;~ ===============================================================================
;~ Filter ListView by priority:
;~ UpdateList(,FilterImportanceSelected,FilterSkillSelected)
;~ return
;~ ===============================================================================
; Filter main projects ListView by available skills:
Search:
FilterUpdate:
ImportanceUpdate:
FilterSkillUpdate:
Critical
GuiControlGet, FilterImportanceSelected, 1:, ImportanceChoose
GuiControlGet, FilterSkillSelected, 1:, FilterSkill
GuiControlGet, FilterShowDone, 1:, FilterShowDone
UpdateList(Selection,FilterImportanceSelected,FilterSkillSelected, SideListGet())
return
;~ ===============================================================================
;~ Clear the search bar and reset the ListView:
ClearSearch:
Critical
;GuiControl, , ImportanceChoose, |All||
;GuiControl, , ImportanceChoose, % ListImportance()
SLResetAll()
GuiControl, Choose, ImportanceChoose, 1
GuiControl, , FilterSkill, |All||None| ; Put | at start to reset out the DDL
GuiControl, , FilterSkill, % ListSkills()
GuiControl, , FilterShowDone, 0
GuiControl, , SearchQuery
GuiControl, Focus, SearchQuery
return
;~ ===============================================================================
;~ Search subroutine:
/*
Search:
Critical
GuiControlGet, SearchString, , SearchQuery
GuiControlGet, FilterDifficultySelected, , DifficultyChoose
GuiControlGet, FilterSkillSelected, , FilterSkill
GuiControlGet, FilterShowDone,
;SLResetAll()
UpdateList(Selection, FilterDifficultySelected, FilterSkillSelected)
return
*/
;===================================================================================
SideListUpdate:
Critical
if ((A_GuiEvent = "K" && (A_EventInfo = 33 || A_EventInfo = 34 || A_EventInfo = 35 || A_EventInfo = 36 || A_EventInfo = 38 || A_EventInfo = 40)) OR (A_GuiEvent = "Normal") || A_GuiEvent = "RightClick")
{
GuiControl, , SearchQuery ; Blank search box. By changing control, gLabel appears to trigger
GuiControl, Choose, ImportanceChoose, 1 ; Reset importance selector
RefreshSkillsList() ; Reset skill selector
GuiControlGet, ListSelected, 1:FocusV
GuiControl, Disable, ButtonSubproject
}
else
return
return
MainListSelect:
if (A_GuiEvent = "K" && (A_EventInfo = 33 || A_EventInfo = 34 || A_EventInfo = 35 || A_EventInfo = 36 || A_EventInfo = 38 || A_EventInfo = 40)) OR (A_GuiEvent = "Normal" && A_GuiControl <> "MainListSelector")
{
;Notification("MainList Selected")
GuiControlGet, ListSelected, 1:FocusV
GuiControl, Enable, ButtonSubproject
Gui, ListView, % ListSelected
LV_GetText(SBParent, LV_GetNext(), ParentCol)
if (SBParent <> "Parent")
SB_SetText(SBParent)
}
else if (A_GuiEvent = "DoubleClick" || (A_GuiControl = "MainListSelector" && A_GuiEvent = "Normal" && ListSelected = "MainList")) ; on DoubleClick or Enter of the main list, get the Subproject count of the selected project
{
;Notification("A_GuiControl: " . A_GuiControl, "A_GuiEvent: " . A_GuiEvent ", ListSelected: " . ListSelected)
Gui, ListView, MainList
if (A_GuiEvent = "DoubleClick")
MainListRowSel := A_EventInfo
else if (A_GuiEvent = "Normal")
MainListRowSel := LV_GetNext()
LV_GetText(SideListOpenProjID, MainListRowSel, IDCol)
Gui, ListView, SideList
Loop % LV_GetCount()
{
SLOLine := A_Index
LV_GetText(SideListOpenMatch, A_Index, SLParentIDCol)
if (SideListOpenProjID = SideListOpenMatch)
{
;GuiControl, Focus, SideList
LV_Modify(SLOLine, "Focus Select Vis")
gosub FilterUpdate
}
}
}
else if (A_GuiEvent = "K" && A_EventInfo = "8" && SideListGet() <> 0)
{
;Notification("BACKSPACE!")
Gui, ListView, SideList
LV_Modify(1, "Focus Select Vis")
gosub FilterUpdate
}
return