; ; ------------------------------------------------------------ ; ; SpiderBasic - Complex dialog example file ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; Enumeration #Dialog #Dialog2 EndEnumeration #Xml = 0 ; Declare this enumeration as 'Runtime' so we can use the constants directly in the XML ; Runtime Enumeration Gadget #ListView #GeneralContainer #EditorContainer #BackupContainer EndEnumeration Procedure ShowPanels() HideGadget(#GeneralContainer, #True) HideGadget(#EditorContainer, #True) HideGadget(#BackupContainer, #True) Select GetGadgetState(#ListView) Case 0 HideGadget(#GeneralContainer, #False) Case 1 HideGadget(#EditorContainer, #False) Case 2 HideGadget(#BackupContainer, #False) EndSelect EndProcedure ; Declare this procedure as 'Runtime' so we can use it as an event handler directly in the XML ; Runtime Procedure OnListViewEvent() ShowPanels() EndProcedure Procedure CreateDialogGeneric(Dialog, XML$, x, y) If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success If CreateDialog(Dialog) And OpenXMLDialog(Dialog, #Xml, "test", x, y) = #False Debug "Dialog error: " + DialogError(Dialog) EndIf Else Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")" EndIf EndProcedure XML$ = "<window id='#PB_Any' name='test' text='Preferences' minwidth='auto' minheight='auto' flags='#PB_Window_SystemMenu | #PB_Window_SizeGadget'>" + " <hbox expand='item:2'>" + " <listview id='#ListView' width='100' onevent='OnListViewEvent()'/>" + " <multibox>" + "" + " <container id='#GeneralContainer'>" + " <frame text='General'>" + " <vbox expand='no'>" + " <checkbox text='Enable red light'/>" + " <checkbox text='Enable green light'/>" + " </vbox>" + " </frame>" + " </container>" + "" + " <container id='#EditorContainer'>" + " <frame text='Editor'>" + " <vbox expand='no'>" + " <checkbox text='Set read only mode'/>" + " <checkbox text='Duplicate line automatically'/>" + " <checkbox text='Enable monospace font'/>" + " </vbox>" + " </frame>" + " </container>" + "" + " <container id='#BackupContainer'>" + " <frame text='Backup'>" + " <vbox expand='no'>" + " <checkbox text='Activate backup'/>" + " </vbox>" + " </frame>" + " </container>" + "" + " </multibox>" + " </hbox>" + "</window>" CreateDialogGeneric(#Dialog, XML$, 10, 10) AddGadgetItem(#ListView, -1, "General") AddGadgetItem(#ListView, -1, "Editor") AddGadgetItem(#ListView, -1, "Backup") SetGadgetState(#ListView, 0) ShowPanels() XML$ = "<window id='#PB_Any' name='test' text='All Gadgets' minwidth='400' minheight='auto' flags='#PB_Window_SystemMenu | #PB_Window_SizeGadget'>" + " <panel>" + " <tab text='First tab'>" + " <vbox>" + " <hbox>" + " <button text='button'/>" + " <editor text='editor'/>" + " <hyperlink text='hyperlink'/>" + " </hbox>" + " <hbox>" + " <date />" + " <checkbox text='checkbox'/>" + " <option text='option'/>" + " <trackbar/>" + " </hbox>" + " <hbox>" + " <canvas text='date' flags='#PB_Canvas_Border'/>" + " <calendar text='checkbox'/>" + " <listview text='combo'/>" + " <web text='http://www.purebasic.com'/>" + " </hbox>" + " <hbox>" + " <image text='date' flags='#PB_Image_Border'/>" + " <progressbar/>" + " <combobox text='combo'/>" + " <text text='Text'/>" + " </hbox>" + " <hbox>" + " <scrollarea flags='#PB_ScrollArea_Border'/>" + " <listicon height='80' text='ListIcon'/>" + " <frame text='Frame'/>" + " <tree/>" + " </hbox>" + " <hbox>" + " <container flags='#PB_Container_Flat'/>" + " <string text='StringGadget'/>" + " <spin/>" + " </hbox>" + " <hbox>" + " <splitter flags='#PB_Splitter_Vertical'>" + " <button text='Left'/>" + " <button text='Right'/>" + " </splitter>" + " <buttonimage/>" + " <panel width='100'>" + " <tab text='1'/>" + " <tab text='2'/>" + " <tab text='3'/>" + " </panel>" + " </hbox>" + " </vbox>" + " </tab>" + " </panel>" + "</window>" CreateDialogGeneric(#Dialog2, XML$, 370, 10)