Hello world, I've been playing around with the interface in an attempt to match HeeksCAD. But one of the problems that I've been running into is that I can't entirely predict hwo many toolpanes are allowed at any one time to be visible. I've defined up to six, but then overall a few are dropped each time, sometimes it's the "Geometry" pane, and sometimes it's the "Solids" pane, etc.
Here are the lines of interest in the AppFrame initialization method: --------------------------- m_geometryBar = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT) m_geometryBar.AddTool(ID_LINES, ToolImage("lines")) # Draw a sketch m_geometryBar.AddTool(ID_CIRCLES, ToolImage("circles")) # Start circle drawing m_geometryBar.AddTool(ID_ILINE, ToolImage("iline")) # Start drawing infinite lines m_geometryBar.AddTool(ID_POINTS, ToolImage("point")) # Start drawing points m_geometryBar.AddTool(ID_REGSHAPES, ToolImage("regshapes")) # Draw regular shapes; rectangles, polygons, obrounds m_geometryBar.AddTool(ID_TEXT, ToolImage("text")) # Add a text object m_geometryBar.AddTool(ID_COORDINATE_SYSTEM, ToolImage("coordsys")) # Create a coordinate system m_geometryBar.AddTool(ID_DIMENSIONING, ToolImage("dimension")) # Add a dimension m_solidBar = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT) m_solidBar.AddTool(ID_SPHERE, ToolImage("sphere")) # Add a sphere m_solidBar.AddTool(ID_CUBE, ToolImage("cube")) # Add a cube m_solidBar.AddTool(ID_CYL, ToolImage("cyl")) # Add a cylinder m_solidBar.AddTool(ID_CONE, ToolImage("cone")) # Add a cone m_solidBar.AddTool(ID_RULED_SURFACE, ToolImage("ruled")) # Create a lofted face m_solidBar.AddTool(ID_EXTRUDE, ToolImage("extrude")) # Extrude a wire or face. m_solidBar.AddTool(ID_SUBTRACT, ToolImage("subtract")) # Cut one solid from another. m_solidBar.AddTool(ID_FUSE, ToolImage("fuse")) # Fuse one solid to another m_solidBar.AddTool(ID_COMMON, ToolImage("common")) # Find common solid between two solids. m_solidBar.AddTool(ID_FILLET, ToolImage("fillet")) # Make a fillet on selected edges. m_solidBar.AddTool(ID_CHAMFER, ToolImage("chamfer")) # Make a chamfer on selected edges. m_viewingBar = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT) m_viewingBar.AddTool(ID_MAG_PREVIOUS, ToolImage("magprev")) # Go back to previous view m_viewingBar.AddTool(ID_MAG, ToolImage("mag")) # Zoom in to a dragged window m_viewingBar.AddTool(ID_MAG_EXTENTS, ToolImage("magextents")) # Zoom in to fit the extents of the drawing into the graphics window m_viewingBar.AddTool(ID_MAG_NO_ROT, ToolImage("magnorot")) # Zoom in to fit the extents of the drawing into the graphics window, but without rotating the view m_viewingBar.AddTool(ID_VIEW_ROT, ToolImage("viewrot")) # Enter view rotating mode m_viewingBar.AddTool(ID_VIEW_ZOOM, ToolImage("zoom")) # Drag to zoom in and out m_viewingBar.AddTool(ID_FULL_SCREEN, ToolImage("fullscreen")) # Switch to full screen view (press escape to return) m_viewingBar.AddTool(ID_REDRAW, ToolImage("redraw")) # Redraw m_transformBar = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT) m_transformBar.AddTool(ID_MOVE_TRANSLATE, ToolImage("movet")) # Translate selected items m_transformBar.AddTool(ID_COPY_TRANSLATE, ToolImage("copyt")) # Copy and translate selected items m_transformBar.AddTool(ID_MOVE_ROTATE, ToolImage("mover")) # Rotate selected items m_transformBar.AddTool(ID_COPY_ROTATE, ToolImage("copyr")) # Copy and rotate selected items m_transformBar.AddTool(ID_MOVE_MIRROR, ToolImage("movem")) # Mirror selected items m_transformBar.AddTool(ID_COPY_MIRROR, ToolImage("copym")) # Copy and mirror selected items m_transformBar.AddTool(ID_MOVE_SCALE, ToolImage("moves")) # Scale selected items m_toolBar2.SetMinSize(wx.Size(24,24)) m_toolBar2.Realize() m_geometryBar.SetMinSize(wx.Size(24,24)) m_geometryBar.Realize() m_solidBar.SetMinSize(wx.Size(24,24)) m_solidBar.Realize() m_viewingBar.SetMinSize(wx.Size(24,24)) m_viewingBar.Realize() m_transformBar.SetMinSize(wx.Size(24,24)) m_transformBar.Realize() #self._mgr.AddPane(m_toolBar2, wx.aui.AuiPaneInfo().Name("toolBar").Caption("Tools").ToolbarPane().Top().TopDockable(True).BottomDockable(True)) self._mgr.AddPane(m_geometryBar, wx.aui.AuiPaneInfo().Name("geometryBar").Caption("Geometry").ToolbarPane().Top().TopDockable(True).BottomDockable(True)) self._mgr.AddPane(m_solidBar, wx.aui.AuiPaneInfo().Name("solidBar").Caption("Solids").ToolbarPane().Top().TopDockable(True).BottomDockable(True)) self._mgr.Update() #self._mgr.AddPane(m_viewingBar, wx.aui.AuiPaneInfo().Name("viewingBar").Caption("Viewing").ToolbarPane().Top().TopDockable(True).BottomDockable(True)) self._mgr.AddPane(m_transformBar, wx.aui.AuiPaneInfo().Name("transformBar").Caption("Transforms").ToolbarPane().Top().TopDockable(True).BottomDockable(True)) #self._mgr.Update() self.tb = self.CreateRightToolbar() self._mgr.AddPane(self.tb, wx.aui.AuiPaneInfo().Name("View").Caption("View").ToolbarPane().Top().TopDockable(True).BottomDockable(True)) self._mgr.Update() self._mgr.GetPane("Help").MinSize((-1,-1)) # now make it so that the help pane can be resized --------------------------- An earlier version of this code, where I put those modifications into CreateRightToolBar(), can be found here: http://heybryan.org/books/Manufacturing/pythonocc/iviewer.py The latest version with the modifications listed above can be found here: http://heybryan.org/books/Manufacturing/pythonocc/iviewer2.py Some code that I've been testing with is self._mgr.AllPanes and then assigning self._mgr.AllPanes[0..6] to separate variables and printing their 'name' attribute. In most cases, I'm not finding all of the panes that I had added. How strange. Any hints? Also, be sure to check out 'HeeksFrame.cpp' for some reference code: http://heekscad.googlecode.com/svn-history/r26/trunk/src/HeeksFrame.cpp - Bryan http://heybryan.org/ 1 512 203 0507 _______________________________________________ Pythonocc-users mailing list Pythonocc-users@gna.org https://mail.gna.org/listinfo/pythonocc-users