@@ -17,12 +17,7 @@ static Constant moduleCtrlTop = 10
1717static Constant procCtrlTop = 40
1818static Constant SortCtrlTop = 70
1919
20- static StrConstant panel = "CodeBrowser"
21- static StrConstant moduleCtrl = "popupNamespace"
22- static StrConstant procCtrl = "popupProcedure"
23- static StrConstant listCtrl = "list1"
24- static StrConstant sortCtrl = "checkboxSort"
25- static StrConstant searchCtrl = "setSearch"
20+ static StrConstant panel = "CodeBrowser"
2621static StrConstant userDataRawList = "rawList"
2722static StrConstant userDataNiceList = "niceList"
2823
@@ -46,81 +41,86 @@ Function createPanel()
4641 // define position
4742 NewPanel / FLT=1/ N=$ panel / K=1/ W= ( panelLeft, panelTop, panelLeft+ panelWidth, panelTop+ panelHeight) // left,top,right,bottom
4843 ModifyPanel / W=$ panel fixedSize=0
49- String module = GetIndependentModuleName ()
50-
51- PopupMenu $ moduleCtrl, win=$ panel, pos= { 0, moduleCtrlTop} , size= { panelWidth-2* panelBorder,20 } , bodywidth=200
52- PopupMenu $ moduleCtrl, win=$ panel, title= "Namespace"
53- PopupMenu $ moduleCtrl, win=$ panel, proc=$ ( module + "#popupModules" ) , value=# module + "#generateModuleList()"
54- PopupMenu $ moduleCtrl, win=$ panel, mode= prefs. panelNameSpace
55-
56- PopupMenu $ moduleCtrl, userdata ( ResizeControlsInfo) = A"!!,Cd!!#;-!!#B>J,hm&z!!#`-A7TLfzzzzzzzzzzzzzz!!#`-A7TLfzz"
57- PopupMenu $ moduleCtrl, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:Du]k<zzzzzzzzzzz"
58- PopupMenu $ moduleCtrl, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
59-
60- PopupMenu $ procCtrl, win=$ panel, pos= { 0, procCtrlTop} , size= { panelWidth-2* panelBorder,20 } , bodywidth=200
61- PopupMenu $ procCtrl, win=$ panel, title= "Procedure"
62- PopupMenu $ procCtrl, win=$ panel, proc=$ ( module + "#popupProcedures" ) , value=# module + "#generateProcedureList()"
63- PopupMenu $ procCtrl, win=$ panel, mode= prefs. panelProcedure
64-
65- PopupMenu $ procCtrl, userdata ( ResizeControlsInfo) = A"!!,D/!!#>.!!#B:J,hm&z!!#`-A7TLfzzzzzzzzzzzzzz!!#`-A7TLfzz"
66- PopupMenu $ procCtrl, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:Du]k<zzzzzzzzzzz"
67- PopupMenu $ procCtrl, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
6844
6945 DefineGuide / W=$ panel UGH0= { FT, panelTopHeight}
7046 DefineGuide / W=$ panel UGH1= { FB, panelBorder}
7147 DefineGuide / W=$ panel UGHL= { FL, panelBorder}
7248 DefineGuide / W=$ panel UGHR= { FR, panelBorder}
7349
74- ListBox $ listCtrl , win =$ panel , pos = { panelBorder , panelTopHeight + panelBorder } , size = { panelWidth -2* panelBorder , panelHeight - panelTopHeight -2* panelBorder }
75- ListBox $ listCtrl , win =$ panel , proc =$ ( module + "#ListBoxProc" )
76- ListBox $ listCtrl , win =$ panel , mode =5, selCol =1, widths = { 4,40 } , keySelectCol =1
77- ListBox $ listCtrl , win= $ panel, listWave= getDeclWave ()
50+ setGlobalStr ( "procFilter" , getGlobalStr ( "procFilter" ))
51+ setGlobalStr ( "search" , getGlobalStr ( "search" ) )
52+ CodeBrowserPanel ()
53+ ListBox list 1 , win = $ panel, listWave= getDeclWave ()
7854#if ( IgorVersion () >= 8.00 )
79- ListBox $ listCtrl , win= $ panel, helpWave= getHelpWave ()
55+ ListBox list 1 , win = $ panel, helpWave= getHelpWave ()
8056#endif
81- ListBox $ listCtrl, win=$ panel, selRow= prefs. panelElement, row= prefs. panelTopElement
82-
83- ListBox $ listCtrl, userdata ( ResizeControlsInfo) = A"!!,?X!!#@\" !!#BNJ,hopz!!#](Aon\" Qzzzzzzzzzzzzzz!!#o2B4uAezz"
84- ListBox $ listCtrl, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#N3Bk1ct<C]S6zzzzzzzzzz"
85- ListBox $ listCtrl, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S7zzzzzzzzzzzzz!!!"
86-
87- CheckBox $ sortCtrl, win=$ panel, pos= { panelBorder+70, SortCtrlTop} , size= { 40,20 } , value= ( prefs. panelCheckboxSort)
88- CheckBox $ sortCtrl, win=$ panel, title= "sort"
89- CheckBox $ sortCtrl, win=$ panel, proc=$ ( module + "#checkboxSort" )
90-
91- CheckBox $ sortCtrl, userdata ( ResizeControlsInfo) = A"!!,EP!!#?E!!#=o!!#<(z!!#](Aon#azzzzzzzzzzzzzz!!#`-A7TLfzz"
92- CheckBox $ sortCtrl, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:DuaGl<C]S6zzzzzzzzzz"
93- CheckBox $ sortCtrl, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
94-
95- setGlobalStr ( "search" , getGlobalStr ( "search" ))
96-
97- SetVariable $ searchCtrl, pos= { panelBorder + 118, SortCtrlTop - 2 } , size= { 175.00, 18.00 } , proc=$ ( module + "#searchSet" ) , title = "search"
98- SetVariable $ searchCtrl, limits= { - inf , inf ,0 } , value=$ ( pkgFolder + ":search" ) , live = 1
99-
100- SetVariable $ searchCtrl, userdata ( ResizeControlsInfo) = A"!!,F[!!#?A!!#A>!!#<Hz!!#](Aon#azzzzzzzzzzzzzz!!#o2B4uAezz"
101- SetVariable $ searchCtrl, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:DuaGl<C]S6zzzzzzzzzz"
102- SetVariable $ searchCtrl, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
103-
104- SetWindow $ panel, hook ( mainHook) =$ ( module + "#panelHook" )
105-
106- SetWindow $ panel , userdata ( ResizeControlsInfo) = A"!!*'\" z!!#BSJ,hqdzzzzzzzzzzzzzzzzzzzzz"
107- SetWindow $ panel , userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzzzzzzzzzzzzzzz"
108- SetWindow $ panel , userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzzzzzzzzz!!!"
109- SetWindow $ panel , userdata ( ResizeControlsGuides) = "UGH0;UGH1;UGHL;UGHR;"
110- SetWindow $ panel , userdata ( ResizeControlsInfoUGH0 ) = A":-hTC3`S[@0KW?-:-(a\\ A7\\ )JDg-86E][6':dmEFF(KAR85E,T>#.mm5tj<o4&A^O8Q88W:-(Bh/het@7o`,K756hm<'*TM8OQ!&3]g5.9MeM`8Q88W:-(Bh3r"
111- SetWindow $ panel , userdata ( ResizeControlsInfoUGH1 ) = A":-hTC3`S[@0frH.:-(a\\ A7\\ )JDg-86E][6':dmEFF(KAR85E,T>#.mm5tj<o4&A^O8Q88W:-(*g0J5%54%E:B6q&gk7RB1,<CoSI1-.Kp78-NR;b9q[:JNr.3r"
11257
113- SetWindow $ panel , userdata ( oneTimeInit) = "1"
114- SetWindow $ panel , userdata ( ResizeControlsInfoUGHL) = A":-hTC3`S[@9KQ<I:-(a\\ A7\\ )JDg-86E][6':dmEFF(KAR85E,T>#.mm5tj<n4&A^O8Q88W:-(6b0JGRY<CoSI0fhct4%E:B6q&jl4&SL@:et\" ]<(Tk\\ 3]/u"
115- SetWindow $ panel , userdata ( ResizeControlsInfoUGHR) = A":-hTC3`S[@;EIrO:-(a\\ A7\\ )JDg-86E][6':dmEFF(KAR85E,T>#.mm5tj<n4&A^O8Q88W:-(0b2_Hd<4%E:B6q&gk7T)<<<CoSI1-.Kp78-NR;b9q[:JNr.3r"
116-
117- SetActiveSubwindow _endfloat_
58+ PopupMenu popupNamespace, win=$ panel, mode= prefs. panelNameSpace
59+ PopupMenu popupProcedure, win=$ panel, mode= prefs. panelProcedure
60+ ListBox list1, win=$ panel, selRow= prefs. panelElement, row= prefs. panelTopElement
11861
11962 resizeToPackagePrefs ()
12063 DoUpdate / W=$ panel
12164 initializePanel ()
12265End
12366
67+ /// @brief static panel preferences that can be updated by ResizeControls
68+ ///
69+ /// Note that all functions act on the current top panel
70+ Function CodeBrowserPanel ()
71+ SetVariable setProcedureFilter, pos= { 72,33 } , size= { 229,18 } , proc= CodeBrowserModule# SetVarProcedureFilter, title= "filter"
72+ SetVariable setProcedureFilter, limits= { - inf , inf ,0 } , value= root: Packages: CodeBrowser: procFilter, live= 1
73+ SetVariable setProcedureFilter, userdata ( ResizeControlsInfo) = A"!!,EJ!!#=g!!#At!!#<Hz!!#`-A7TLfzzzzzzzzzzzzzz!!#`-A7TLfzz"
74+ SetVariable setProcedureFilter, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:DuaGl<C]S6zzzzzzzzzz"
75+ SetVariable setProcedureFilter, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
76+
77+ SetVariable setSearch, pos= { 125,81 } , size= { 175.00,18.00 } , proc= CodeBrowserModule# searchSet, title= "search"
78+ SetVariable setSearch, limits= { - inf , inf ,0 } , value= root: Packages: CodeBrowser: search, live= 1
79+ SetVariable setSearch, userdata ( ResizeControlsInfo) = A"!!,F_!!#?[!!#A>!!#<Hz!!#](Aon#azzzzzzzzzzzzzz!!#o2B4uAezz"
80+ SetVariable setSearch, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:DuaGl<C]S6zzzzzzzzzz"
81+ SetVariable setSearch, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
82+
83+ CheckBox checkboxSort, pos= { 77,83 } , size= { 36.00,15.00 } , proc= CodeBrowserModule# checkboxSort, title= "sort"
84+ CheckBox checkboxSort, value= 1
85+ CheckBox checkboxSort, userdata ( ResizeControlsInfo) = A"!!,ET!!#?_!!#=s!!#<(z!!#](Aon#azzzzzzzzzzzzzz!!#`-A7TLfzz"
86+ CheckBox checkboxSort, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:DuaGl<C]S6zzzzzzzzzz"
87+ CheckBox checkboxSort, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
88+
89+ ListBox list1, pos= { 0.00,105.00 } , size= { 300,62 } , proc= CodeBrowserModule# ListBoxProc
90+ ListBox list1, listWave= root: Packages: CodeBrowser: declarations
91+ ListBox list1, selCol= 1, widths= { 4,40 } , keySelectCol= 1
92+ ListBox list1, mode= 5, selRow= 0
93+ ListBox list1, userdata ( ResizeControlsInfo) = A"!!*'\" !!#@6!!#BP!!#?1z!!#](Aon\" Qzzzzzzzzzzzzzz!!#o2B4uAezz"
94+ ListBox list1, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#N3Bk1ct<C]S6zzzzzzzzzz"
95+ ListBox list1, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S7zzzzzzzzzzzzz!!!"
96+
97+ PopupMenu popupProcedure, pos= { 44,53 } , size= { 257.00,19.00 } , bodyWidth=200, proc= CodeBrowserModule# popupProcedures, title= "Procedure"
98+ PopupMenu popupProcedure, mode=1, popvalue= "<ALL>" , value= # "CodeBrowserModule#generateProcedureList()"
99+ PopupMenu popupProcedure, userdata ( ResizeControlsInfo) = A"!!,D?!!#>b!!#B:J,hm&z!!#`-A7TLfzzzzzzzzzzzzzz!!#`-A7TLfzz"
100+ PopupMenu popupProcedure, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:Du]k<zzzzzzzzzzz"
101+ PopupMenu popupProcedure, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
102+
103+ PopupMenu popupNamespace, pos= { 36,10 } , size= { 265.00,19.00 } , bodyWidth=200, proc= CodeBrowserModule# popupModules, title= "Namespace"
104+ PopupMenu popupNamespace, userdata ( niceList) = "<ALL>;ProcGlobal;COMPILE;CodeBrowserModule;"
105+ PopupMenu popupNamespace, mode=1, popvalue= "<ALL>" , value= # "CodeBrowserModule#generateModuleList()"
106+ PopupMenu popupNamespace, userdata ( ResizeControlsInfo) = A"!!,Ct!!#;-!!#B>J,hm&z!!#`-A7TLfzzzzzzzzzzzzzz!!#`-A7TLfzz"
107+ PopupMenu popupNamespace, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzz!!#u:Du]k<zzzzzzzzzzz"
108+ PopupMenu popupNamespace, userdata ( ResizeControlsInfo) += A"zzz!!#N3Bk1ct<C]S6zzzzzzzzzzzzz!!!"
109+
110+ SetWindow kwTopWin, userdata ( ResizeControlsInfo) = A"!!*'\" z!!#BSJ,hqczzzzzzzzzzzzzzzzzzzzz"
111+ SetWindow kwTopWin, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzzzzzzzzzzzzzzz"
112+ SetWindow kwTopWin, userdata ( ResizeControlsInfo) += A"zzzzzzzzzzzzzzzzzzz!!!"
113+ SetWindow kwTopWin, userdata ( ResizeControlsGuides) = "UGH0;UGH1;UGHL;UGHR;"
114+ SetWindow kwTopWin, userdata ( ResizeControlsInfoUGH0 ) = "NAME:UGH0;WIN:CodeBrowser;TYPE:User;HORIZONTAL:1;POSITION:90.00;GUIDE1:FT;GUIDE2:;RELPOSITION:90;"
115+ SetWindow kwTopWin, userdata ( ResizeControlsInfoUGH1 ) = "NAME:UGH1;WIN:CodeBrowser;TYPE:User;HORIZONTAL:1;POSITION:169.00;GUIDE1:FB;GUIDE2:;RELPOSITION:5;"
116+ SetWindow kwTopWin, userdata ( oneTimeInit) = "1"
117+ SetWindow kwTopWin, userdata ( ResizeControlsInfoUGHL) = "NAME:UGHL;WIN:CodeBrowser;TYPE:User;HORIZONTAL:0;POSITION:5.00;GUIDE1:FL;GUIDE2:;RELPOSITION:5;"
118+ SetWindow kwTopWin, userdata ( ResizeControlsInfoUGHR) = "NAME:UGHR;WIN:CodeBrowser;TYPE:User;HORIZONTAL:0;POSITION:307.00;GUIDE1:FR;GUIDE2:;RELPOSITION:5;"
119+
120+ SetWindow kwTopWin, hook ( mainHook) = CodeBrowserModule# panelHook
121+ SetActiveSubwindow _endfloat_
122+ End
123+
124124Function resizeToPackagePrefs ()
125125 STRUCT CodeBrowserPrefs prefs
126126 LoadPackagePrefsFromDisk ( prefs)
@@ -144,7 +144,7 @@ Function/S generateModuleList()
144144 string niceList = getModuleList ()
145145 niceList = AddListItem ( CB_selectAll, niceList)
146146
147- PopupMenu $ moduleCtrl , win=$ panel, userData ( $ userDataNiceList) = niceList
147+ PopupMenu popupNamespace , win=$ panel, userData ( $ userDataNiceList) = niceList
148148
149149 return niceList
150150End
@@ -158,7 +158,7 @@ Function/S generateProcedureList()
158158 niceList = AddListItem ( CB_selectAll, "" )
159159
160160 getProcedureList ( procList, niceList)
161- PopupMenu $ procCtrl , win=$ panel, userData ( $ userDataRawList) = procList, userData ( $ userDataNiceList) = niceList
161+ PopupMenu popupProcedure , win=$ panel, userData ( $ userDataRawList) = procList, userData ( $ userDataNiceList) = niceList
162162
163163 return niceList
164164End
@@ -273,22 +273,22 @@ Function/S getCurrentItem([module, procedure, index])
273273 endif
274274
275275 if ( module)
276- ControlInfo / W=$ panel $ moduleCtrl
276+ ControlInfo / W=$ panel popupNamespace
277277
278278 if ( V_Value > 0 )
279279 return S_Value
280280 endif
281281 elseif ( index)
282- ControlInfo / W=$ panel $ listCtrl
282+ ControlInfo / W=$ panel list 1
283283
284284 if ( V_Value >= 0 )
285285 return num2str ( V_Value)
286286 endif
287287 elseif ( procedure)
288- ControlInfo / W=$ panel $ procCtrl
288+ ControlInfo / W=$ panel popupProcedure
289289 V_Value -= 1 // 1-based index
290290
291- rawList = GetUserData ( panel, procCtrl , userDataRawList)
291+ rawList = GetUserData ( panel, "popupProcedure" , userDataRawList)
292292 if ( V_Value < 0 || V_Value >= ItemsInList ( rawList))
293293 if ( ItemsInList ( rawList) > 0 )
294294 // fall back to first item
@@ -356,11 +356,11 @@ Function getCurrentItemAsNumeric([module, procedure, index, indexTop])
356356 endif
357357
358358 if ( module)
359- ControlInfo / W=$ panel $ moduleCtrl
359+ ControlInfo / W=$ panel popupNamespace
360360 elseif ( procedure)
361- ControlInfo / W=$ panel $ procCtrl
361+ ControlInfo / W=$ panel popupProcedure
362362 elseif ( index || indexTop)
363- ControlInfo / W=$ panel $ listCtrl
363+ ControlInfo / W=$ panel list 1
364364 endif
365365
366366 if ( V_Value >= 0 )
@@ -389,7 +389,7 @@ Function updatePopup(ctrlName)
389389
390390 ControlUpdate / W=$ panel $ ctrlName
391391
392- list = GetUserData ( panel, procCtrl , userDataNiceList)
392+ list = GetUserData ( panel, "popupProcedure" , userDataNiceList)
393393
394394 if ( ItemsInList ( list) == 1 )
395395 PopupMenu $ ctrlName win=$ panel, disable=2
@@ -424,7 +424,7 @@ Function popupModules(pa) : PopupMenuControl
424424 break
425425 endif
426426
427- updatePopup ( procCtrl )
427+ updatePopup ( "popupProcedure" )
428428
429429 if ( updateListBoxHook () == 0 )
430430 procedure = getCurrentItem ( procedure = 1 )
478478
479479// returns 0 if checkbox is deselected or 1 if it is selected.
480480Function returnCheckBoxSort ()
481- ControlInfo / W=$ panel $ sortCtrl
481+ ControlInfo / W=$ panel checkboxSort
482482 if ( V_flag == 2 ) // Checkbox found?
483483 return V_Value
484484 else
@@ -505,6 +505,25 @@ Function searchSet(sva) : SetVariableControl
505505 return 0
506506End
507507
508+ /// @brief Action procedure for the SetVariable @c setProcedureFilter
509+ Function SetVarProcedureFilter ( sva) : SetVariableControl
510+ STRUCT WMSetVariableAction & sva
511+
512+ switch ( sva. eventCode )
513+ case 1: // mouse up
514+ case 2: // Enter key
515+ case 3: // Live update
516+ Variable dval = sva. dval
517+ String sval = sva. sval
518+ updatePopup ( "popupProcedure" )
519+ updateListBoxHook ()
520+ break
521+ case -1: // control being killed
522+ break
523+ endswitch
524+
525+ return 0
526+ End
508527
509528Function listBoxProc ( lba) : ListBoxControl
510529 STRUCT WMListboxAction & lba
@@ -530,10 +549,10 @@ Function listBoxProc(lba) : ListBoxControl
530549 break
531550 case 4: // cell selection
532551 case 5: // cell selection plus shift key
533- ControlInfo / W=$ panel $ listCtrl
552+ ControlInfo / W=$ panel list 1
534553 if ( V_selCol == 0 )
535554 // forcefully deselect column zero if it is selected
536- ListBox $ listCtrl , win=$ panel, selCol=1
555+ ListBox list 1 , win=$ panel, selCol=1
537556 endif
538557 break
539558 case 12: // keystroke
0 commit comments