I'd like to create a dialog, which have two sets of panel. For each panel, it will have 2 tabs. Let's assume the tab names of the first panel is Info and Tools. The tab names of the second panel is Settings and Tools. Inside the tab of Tools, there is a button to switch between two sets of panel.
But it seems that panel and tab are at the same level. Is that possible to achieve my requirements?
The key thing to realize is that UI elements in dialogs can be nested. In other words, groups, boxes, panels, and tabs, can contain items that also include any of these types. Specifically for your case, the panels of a top-level panel list may contain tab lists. The panels associated with the nested tabs may contain UI elements that reference the top-level panels.
I find that the easiest and conceptually clearest way to do this is via a subclass of UIFrame that specifies the UI layout and creates and displays the dialog in an override of the Init method. The subclass then adds further methods to handle the action and change events of the specified UI elements. The example below illustrates one way to do this. Note the use of the member variable
topLevelPanelListSpecto enable top-level panel selection in the action methods of the tab panel buttons.