I'm having problems integrating a property grid into my form. I use splitters and maybe thats the problem. Has someone experience with splitters and property grids? I really want to use this great widget.
here is the form project file:
here is my code:
I marked my own added code with: added manually. Note that you have to add the wxAdditions to wxformbuilder manually as well.
The CodeGen utility doesn't convert the propertygrid code (oh nooooooo), so i added that in manually. The grid should appear on the right side of the form, as seen in the form in wxformbuilder, instead it gets drawn over the treeview on the left side of the form. How to fix this?
here is the form project file:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <wxFormBuilder_Project> <FileVersion major="1" minor="9" /> <object class="Project" expanded="1"> <property name="class_decoration"></property> <property name="code_generation">C++</property> <property name="disconnect_events">1</property> <property name="encoding">UTF-8</property> <property name="event_generation">connect</property> <property name="file"></property> <property name="first_id">1000</property> <property name="help_provider">none</property> <property name="internationalize">0</property> <property name="name">MyProject2</property> <property name="namespace"></property> <property name="path">.</property> <property name="precompiled_header"></property> <property name="relative_path">1</property> <property name="use_enum">0</property> <property name="use_microsoft_bom">0</property> <object class="Frame" expanded="1"> <property name="bg"></property> <property name="center">wxBOTH</property> <property name="context_help"></property> <property name="enabled">1</property> <property name="extra_style"></property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="minimum_size"></property> <property name="name">MAIN_FRAME</property> <property name="pos"></property> <property name="size">800,500</property> <property name="style">wxDEFAULT_FRAME_STYLE</property> <property name="subclass"></property> <property name="title">Particle Editor</property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style">wxTAB_TRAVERSAL</property> <property name="xrc_skip_sizer">1</property> <event name="OnActivate"></event> <event name="OnActivateApp"></event> <event name="OnChar"></event> <event name="OnClose"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnHibernate"></event> <event name="OnIconize"></event> <event name="OnIdle"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">bSizer4</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxSplitterWindow" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size">-1,-1</property> <property name="min_pane_size">200</property> <property name="minimum_size"></property> <property name="name">left_splitter</property> <property name="permission">protected</property> <property name="pos"></property> <property name="sashgravity">0.0</property> <property name="sashpos">200</property> <property name="sashsize">-1</property> <property name="size">-1,-1</property> <property name="splitmode">wxSPLIT_VERTICAL</property> <property name="style">wxSP_NOBORDER</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnSplitterDClick"></event> <event name="OnSplitterSashPosChanged"></event> <event name="OnSplitterSashPosChanging"></event> <event name="OnSplitterUnsplit"></event> <event name="OnUpdateUI"></event> <object class="splitteritem" expanded="1"> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size">-1,-1</property> <property name="minimum_size">-1,-1</property> <property name="name">library_panel</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size">-1,-1</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style">wxTAB_TRAVERSAL</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">library_sizer</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxTreeCtrl" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="minimum_size">-1,-1</property> <property name="name">LIBRARY_TREE</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size">-1,-1</property> <property name="style">wxTR_DEFAULT_STYLE</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnTreeBeginDrag"></event> <event name="OnTreeBeginLabelEdit"></event> <event name="OnTreeBeginRDrag"></event> <event name="OnTreeDeleteItem"></event> <event name="OnTreeEndDrag"></event> <event name="OnTreeEndLabelEdit"></event> <event name="OnTreeGetInfo"></event> <event name="OnTreeItemActivated"></event> <event name="OnTreeItemCollapsed"></event> <event name="OnTreeItemCollapsing"></event> <event name="OnTreeItemExpanded"></event> <event name="OnTreeItemExpanding"></event> <event name="OnTreeItemGetTooltip"></event> <event name="OnTreeItemMenu"></event> <event name="OnTreeItemMiddleClick"></event> <event name="OnTreeItemRightClick"></event> <event name="OnTreeKeyDown"></event> <event name="OnTreeSelChanged"></event> <event name="OnTreeSelChanging"></event> <event name="OnTreeSetInfo"></event> <event name="OnTreeStateImageClick"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> </object> <object class="splitteritem" expanded="1"> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="minimum_size"></property> <property name="name">m_panel_right</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style">wxTAB_TRAVERSAL</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">bSizer17</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxSplitterWindow" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="min_pane_size">200</property> <property name="minimum_size"></property> <property name="name">right_splitter</property> <property name="permission">protected</property> <property name="pos"></property> <property name="sashgravity">0.0</property> <property name="sashpos">261</property> <property name="sashsize">-1</property> <property name="size"></property> <property name="splitmode">wxSPLIT_VERTICAL</property> <property name="style">wxSP_NOBORDER</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnSplitterDClick"></event> <event name="OnSplitterSashPosChanged"></event> <event name="OnSplitterSashPosChanging"></event> <event name="OnSplitterUnsplit"></event> <event name="OnUpdateUI"></event> <object class="splitteritem" expanded="1"> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="minimum_size"></property> <property name="name">m_panel_render</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style">wxTAB_TRAVERSAL</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">render_sizer</property> <property name="orient">wxVERTICAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="minimum_size">-1,-1</property> <property name="name">RENDER_PANEL</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size">-1,-1</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style">wxTAB_TRAVERSAL</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> </object> <object class="splitteritem" expanded="1"> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> <property name="minimum_size"></property> <property name="name">m_panel_propgrid</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style">wxTAB_TRAVERSAL</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> <object class="wxBoxSizer" expanded="1"> <property name="minimum_size"></property> <property name="name">propgrid_sizer</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxPropertyGrid" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="extra_style"></property> <property name="fg"></property> <property name="font"></property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="include_advanced">1</property> <property name="maximum_size"></property> <property name="minimum_size">-1,-1</property> <property name="name">m_propertyGrid2</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size">-1,-1</property> <property name="style">wxPG_DEFAULT_STYLE|wxTAB_TRAVERSAL</property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> </object> </object> </object> </object> </object> </object> </object> </object> </object> </object> </object> </wxFormBuilder_Project>
here is my code:
SuperStrict Framework WX.wxApp Import WX.wxFrame Import WX.wxMenu Import WX.wxMenuBar Import WX.wxMouseEvent Import WX.wxPanel Import WX.wxStatusBar Import WX.wxTreeCtrl Import WX.wxWindow Import WX.wxSystemSettings Import WX.wxArtProvider Import WX.wxSplitterWindow ' 'added manually Import WX.wxPropGrid New MyApp.run() Type MyApp Extends wxApp Field frame:MAIN_FRAMEBase Method OnInit:Int() frame = MAIN_FRAMEBase(New MAIN_FRAMEBase.Create()) SetTopWindow(frame) frame.show() Return True End Method End Type Type MAIN_FRAMEBase Extends wxFrame Field left_splitter:wxSplitterWindow Field library_panel:wxPanel Field LIBRARY_TREE:wxTreeCtrl Field m_panel_right:wxPanel Field right_splitter:wxSplitterWindow Field m_panel_render:wxPanel Field RENDER_PANEL:wxPanel Field m_panel_propgrid:wxPanel ' 'added manually Const PGID:Int = 1 Field PROPERTY_GRID:wxPropertyGrid Method Create:MAIN_FRAMEBase(parent:wxWindow = Null,id:Int = wxID_ANY, title:String = "Particle Editor", x:Int = -1, y:Int = -1, w:Int = 800, h:Int = 500, style:Int = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL) Return MAIN_FRAMEBase(Super.Create(parent, id, title, x, y, w, h, style)) End Method Method OnInit() Local bSizer4:wxBoxSizer bSizer4 = New wxBoxSizer.Create(wxHORIZONTAL) left_splitter = New wxSplitterWindow.Create(Self, wxID_ANY,,, -1,-1, wxSP_NOBORDER) library_panel = New wxPanel.Create(left_splitter, wxID_ANY,,, -1,-1, wxTAB_TRAVERSAL) Local library_sizer:wxBoxSizer library_sizer = New wxBoxSizer.Create(wxHORIZONTAL) LIBRARY_TREE = New wxTreeCtrl.Create(library_panel, wxID_ANY,,, -1,-1, wxTR_DEFAULT_STYLE) library_sizer.Add(LIBRARY_TREE, 1, wxEXPAND, 5) ' 'added manually SetupTree() library_panel.SetSizer(library_sizer) library_panel.Layout() library_sizer.Fit(library_panel) m_panel_right = New wxPanel.Create(left_splitter, wxID_ANY,,,,, wxTAB_TRAVERSAL) Local bSizer17:wxBoxSizer bSizer17 = New wxBoxSizer.Create(wxHORIZONTAL) right_splitter = New wxSplitterWindow.Create(m_panel_right, wxID_ANY,,,,, wxSP_NOBORDER) m_panel_render = New wxPanel.Create(right_splitter, wxID_ANY,,,,, wxTAB_TRAVERSAL) Local render_sizer:wxBoxSizer render_sizer = New wxBoxSizer.Create(wxVERTICAL) RENDER_PANEL = New wxPanel.Create(m_panel_render, wxID_ANY,,, -1,-1, wxTAB_TRAVERSAL) render_sizer.Add(RENDER_PANEL, 1, wxEXPAND, 5) m_panel_render.SetSizer(render_sizer) m_panel_render.Layout() render_sizer.Fit(m_panel_render) m_panel_propgrid = New wxPanel.Create(right_splitter, wxID_ANY,,,,, wxTAB_TRAVERSAL) Local propgrid_sizer:wxBoxSizer propgrid_sizer = New wxBoxSizer.Create(wxHORIZONTAL) m_panel_propgrid.SetSizer(propgrid_sizer) m_panel_propgrid.Layout() propgrid_sizer.Fit(m_panel_propgrid) right_splitter.SplitVertically(m_panel_render, m_panel_propgrid, 200) right_splitter.SetMinimumPaneSize(200) bSizer17.Add(right_splitter, 1, wxEXPAND, 5) m_panel_right.SetSizer(bSizer17) m_panel_right.Layout() bSizer17.Fit(m_panel_right) left_splitter.SplitVertically(library_panel, m_panel_right, 200) left_splitter.SetMinimumPaneSize(200) bSizer4.Add(left_splitter, 1, wxEXPAND, 5) SetSizer(bSizer4) ' 'added manually SetupPropertyGrid(propgrid_sizer) Layout() Center(wxBOTH) End Method ' 'added manually Method SetupTree() Local root:wxTreeItemId = LIBRARY_TREE.Addroot("Editor") Local libRoot:wxTreeItemId = LIBRARY_TREE.AppendItem(root, "Library") Local projectsRoot:wxTreeItemId = LIBRARY_TREE.AppendItem(root, "Projects") Local imagesRoot:wxTreeItemId = LIBRARY_TREE.AppendItem(libRoot, "Images") Local particlesRoot:wxTreeItemId = LIBRARY_TREE.AppendItem(libRoot, "Particles") Local spawnersRoot:wxTreeItemId = LIBRARY_TREE.AppendItem(libRoot, "Spawners") Local emittersRoot:wxTreeItemId = LIBRARY_TREE.AppendItem(libRoot, "Emitters") LIBRARY_TREE.expandall() ' 'set up events! End Method ' 'added manually Method SetupPropertyGrid(sizer:wxBoxSizer) Local pg:wxPropertyGrid = New wxPropertyGrid.Create(Self,wxID_ANY, -1,-1,200,-1,wxTR_DEFAULT_STYLE) PROPERTY_GRID = pg sizer.Add(pg, 1, wxEXPAND, 5) ' PROPERTY_GRID..SetminsSize(200,-1) ' PROPERTY_GRID.SetmaxSize(200,-1) pg.Append( New wxPropertyCategory.Create("Image", wxPG_LABEL)) pg.Append( New wxStringProperty.Create("ID", wxPG_LABEL, "1")) pg.SetPropertyReadOnlyByName("ID") pg.Append( New wxStringProperty.Create("Name", wxPG_LABEL, "test")) pg.Append( New wxImageFileProperty.Create( "ImageFile", wxPG_LABEL ) ) pg.Append( New wxIntProperty.Create("Frames", wxPG_LABEL, 4)) pg.Append( New wxIntProperty.Create("Frame dimension", wxPG_LABEL, 32)) pg.Append( New wxPropertyCategory.Create("Particle", wxPG_LABEL) ) ' 'create test choices Local soc:wxPGChoices = New wxPGChoices.Create() soc.Add( "1", 200 ) soc.Add( "2", 240 ) soc.Add( "3", 280 ) soc.Add( "4", 320 ) pg.Append( New wxEnumProperty.CreateWithChoices("Use Image ID", wxPG_LABEL, soc, 200) ) 'way to select choice, last is default pg.Append( New wxColourProperty.Create("Start Color", wxPG_LABEL)) pg.SetPropertyAttributeByName("Start Color", 255,255,0) pg.Append( New wxColourProperty.Create("End Color", wxPG_LABEL )) pg.Append( New wxIntProperty.Create("Color Transition speed", wxPG_LABEL, 480)) pg.Append( New wxPropertyCategory.Create("Spawner", wxPG_LABEL)) pg.Append( New wxStringProperty.Create("ID", wxPG_LABEL, "1")) pg.SetPropertyReadOnlyByName("ID") pg.Append( New wxPropertyCategory.Create("Emitter", wxPG_LABEL)) pg.Append( New wxStringProperty.Create("ID", wxPG_LABEL, "1")) pg.SetPropertyReadOnlyByName("ID") 'pg.DisablePropertyByName( "Image") ' pg.HidePropertyByName("Particle") ' 'set defaults ' 'set up events! End Method End Type
I marked my own added code with: added manually. Note that you have to add the wxAdditions to wxformbuilder manually as well.
The CodeGen utility doesn't convert the propertygrid code (oh nooooooo), so i added that in manually. The grid should appear on the right side of the form, as seen in the form in wxformbuilder, instead it gets drawn over the treeview on the left side of the form. How to fix this?