from fabmetheus_utilities.fabmetheus_tools import fabmetheus_interpret\r
from fabmetheus_utilities.vector3 import Vector3\r
\r
-class myGLCanvas(GLCanvas):\r
+class previewPanel(wx.Panel):\r
def __init__(self, parent):\r
- GLCanvas.__init__(self, parent,-1)\r
- wx.EVT_PAINT(self, self.OnPaint)\r
- wx.EVT_SIZE(self, self.OnSize)\r
- wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)\r
- wx.EVT_MOTION(self, self.OnMouseMotion)\r
+ wx.Panel.__init__(self, parent,-1)\r
+ \r
+ self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DDKSHADOW))\r
+\r
+ self.glCanvas = GLCanvas(self, -1)\r
+ wx.EVT_PAINT(self.glCanvas, self.OnPaint)\r
+ wx.EVT_SIZE(self.glCanvas, self.OnSize)\r
+ wx.EVT_ERASE_BACKGROUND(self.glCanvas, self.OnEraseBackground)\r
+ wx.EVT_MOTION(self.glCanvas, self.OnMouseMotion)\r
self.init = 0\r
self.triangleMesh = None\r
self.modelDisplayList = None\r
self.renderTransparent = False\r
self.machineSize = Vector3(210, 210, 200)\r
self.machineCenter = Vector3(105, 105, 0)\r
- configButton = wx.Button(self, -1, '', (3,3), (10,10))\r
- self.Bind(wx.EVT_BUTTON, self.OnConfigClick, configButton)\r
+ \r
+ tb = wx.ToolBar( self, -1 )\r
+ self.ToolBar = tb\r
+ tb.SetToolBitmapSize( ( 21, 21 ) )\r
+ transparentButton = wx.Button(tb, -1, "T", size=(21,21))\r
+ tb.AddControl(transparentButton)\r
+ self.Bind(wx.EVT_BUTTON, self.OnConfigClick, transparentButton)\r
+ tb.Realize()\r
+\r
+ sizer = wx.BoxSizer(wx.VERTICAL)\r
+ sizer.Add(tb, 0, flag=wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT, border=1)\r
+ sizer.Add(self.glCanvas, 1, flag=wx.EXPAND)\r
+ self.SetSizer(sizer)\r
+\r
\r
def loadModelFile(self, filename):\r
self.modelFilename = filename\r
#Do the STL file loading in a background thread so we don't block the UI.\r
thread = threading.Thread(target=self.DoModelLoad)\r
- thread.setDaemon(True)\r
thread.start()\r
\r
def loadGCodeFile(self, filename):\r
self.gcodeFilename = filename\r
#Do the STL file loading in a background thread so we don't block the UI.\r
thread = threading.Thread(target=self.DoGCodeLoad)\r
- thread.setDaemon(True)\r
thread.start()\r
\r
def DoModelLoad(self):\r
dc.Clear()\r
dc.DrawText("No PyOpenGL installation found.\nNo preview window available.", 10, 10)\r
return\r
- self.SetCurrent()\r
+ self.glCanvas.SetCurrent()\r
self.InitGL()\r
self.OnDraw()\r
return\r
glEnable(GL_LIGHTING)\r
glCallList(self.modelDisplayList)\r
\r
- self.SwapBuffers()\r
+ self.glCanvas.SwapBuffers()\r
return\r
\r
def InitGL(self):\r
# set viewing projection\r
glMatrixMode(GL_MODELVIEW)\r
glLoadIdentity()\r
- glViewport(0,0, self.GetSize().GetWidth(), self.GetSize().GetHeight())\r
+ size = self.glCanvas.GetSize()\r
+ glViewport(0,0, size.GetWidth(), size.GetHeight())\r
\r
if self.renderTransparent:\r
glLightfv(GL_LIGHT0, GL_DIFFUSE, [0.5, 0.4, 0.3, 1.0])\r