@@ -175,7 +175,7 @@ VOID PhShowOptionsDialog(
175
175
DialogBox (
176
176
PhInstanceHandle ,
177
177
MAKEINTRESOURCE (IDD_OPTIONS ),
178
- ParentWindowHandle ,
178
+ NULL ,
179
179
PhOptionsDialogProc
180
180
);
181
181
@@ -211,18 +211,18 @@ VOID PhShowOptionsDialog(
211
211
}
212
212
}
213
213
214
- static HTREEITEM PhpOptionsTreeViewAddItem (
214
+ static HTREEITEM PhpTreeViewInsertItem (
215
+ _In_opt_ HTREEITEM HandleInsertAfter ,
215
216
_In_ PWSTR Text ,
216
- _In_ PVOID Context ,
217
- _In_ HTREEITEM InsertAfter
217
+ _In_ PVOID Context
218
218
)
219
219
{
220
220
TV_INSERTSTRUCT insert ;
221
221
222
222
memset (& insert , 0 , sizeof (TV_INSERTSTRUCT ));
223
223
224
224
insert .hParent = TVI_ROOT ;
225
- insert .hInsertAfter = InsertAfter ;
225
+ insert .hInsertAfter = HandleInsertAfter ;
226
226
insert .item .mask = TVIF_TEXT | TVIF_PARAM ;
227
227
insert .item .pszText = Text ;
228
228
insert .item .lParam = (LPARAM )Context ;
@@ -234,52 +234,36 @@ static VOID PhpOptionsShowHideTreeViewItem(
234
234
_In_ BOOLEAN Hide
235
235
)
236
236
{
237
- HTREEITEM tvItemGeneral = NULL ;
238
- HTREEITEM tvItemAdvanced = NULL ;
239
- HTREEITEM tvItemCurrent ;
240
-
241
- tvItemCurrent = TreeView_GetRoot (OptionsTreeControl );
237
+ static PH_STRINGREF generalName = PH_STRINGREF_INIT (L"General" );
238
+ static PH_STRINGREF advancedName = PH_STRINGREF_INIT (L"Advanced" );
242
239
243
- while ( tvItemCurrent )
240
+ if ( Hide )
244
241
{
245
- TVITEM tvItem ;
246
- WCHAR buffer [MAX_PATH ];
247
-
248
- tvItem .mask = TVIF_TEXT | TVIF_HANDLE ;
249
- tvItem .hItem = tvItemCurrent ;
250
- tvItem .cchTextMax = ARRAYSIZE (buffer );
251
- tvItem .pszText = buffer ;
242
+ PPH_OPTIONS_SECTION advancedSection ;
252
243
253
- if (TreeView_GetItem ( OptionsTreeControl , & tvItem ))
244
+ if (advancedSection = PhOptionsFindSection ( & advancedName ))
254
245
{
255
- if (PhEqualStringZ ( buffer , L"Advanced" , TRUE) )
246
+ if (advancedSection -> TreeItemHandle )
256
247
{
257
- tvItemAdvanced = tvItemCurrent ;
258
- }
259
- else if (PhEqualStringZ (buffer , L"General" , TRUE))
260
- {
261
- tvItemGeneral = tvItemCurrent ;
248
+ TreeView_DeleteItem (OptionsTreeControl , advancedSection -> TreeItemHandle );
249
+ advancedSection -> TreeItemHandle = NULL ;
262
250
}
263
251
}
264
-
265
- tvItemCurrent = TreeView_GetNextSibling (OptionsTreeControl , tvItemCurrent );
266
- }
267
-
268
- if (Hide )
269
- {
270
- if (tvItemAdvanced )
271
- TreeView_DeleteItem (OptionsTreeControl , tvItemAdvanced );
272
252
}
273
253
else
274
254
{
275
- static PH_STRINGREF sectionName = PH_STRINGREF_INIT (L"Advanced" );
255
+ PPH_OPTIONS_SECTION generalSection ;
256
+ PPH_OPTIONS_SECTION advancedSection ;
257
+
258
+ generalSection = PhOptionsFindSection (& generalName );
259
+ advancedSection = PhOptionsFindSection (& advancedName );
276
260
277
- if (tvItemGeneral )
261
+ if (generalSection && advancedSection )
278
262
{
279
- PhpOptionsTreeViewAddItem (
280
- sectionName . Buffer ,
281
- PhOptionsFindSection ( & sectionName ),
282
- tvItemGeneral
263
+ advancedSection -> TreeItemHandle = PhpTreeViewInsertItem (
264
+ generalSection -> TreeItemHandle ,
265
+ advancedName . Buffer ,
266
+ advancedSection
283
267
);
284
268
}
285
269
}
@@ -547,11 +531,10 @@ PPH_OPTIONS_SECTION PhOptionsCreateSection(
547
531
section -> Template = Template ;
548
532
section -> DialogProc = DialogProc ;
549
533
section -> Parameter = Parameter ;
534
+ section -> TreeItemHandle = PhpTreeViewInsertItem (TVI_LAST , Name , section );
550
535
551
536
PhAddItemList (SectionList , section );
552
537
553
- PhpOptionsTreeViewAddItem (Name , section , TVI_LAST );
554
-
555
538
return section ;
556
539
}
557
540
0 commit comments