self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DDKSHADOW))\r
self.SetMinSize((440,320))\r
\r
+ # Create popup window\r
+ self.popup = wx.PopupWindow(self, flags=wx.BORDER_SIMPLE)\r
+ self.popup.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK))\r
+ self.popup.text = wx.StaticText(self.popup, -1, '')\r
+ self.popup.sizer = wx.BoxSizer()\r
+ self.popup.sizer.Add(self.popup.text, flag=wx.EXPAND|wx.ALL, border=1)\r
+ self.popup.SetSizer(self.popup.sizer)\r
+ \r
self.glCanvas = PreviewGLCanvas(self)\r
self.init = 0\r
self.triangleMesh = None\r
self.flipX.SetBezelWidth(1)\r
self.flipX.SetUseFocusIndicator(False)\r
self.flipX.SetToolTip(wx.ToolTip('Flip X'))\r
+ self.flipX.Bind(wx.EVT_ENTER_WINDOW, self.OnPopupDisplay)\r
+ self.flipX.Bind(wx.EVT_LEAVE_WINDOW, self.OnPopupHide)\r
self.flipX.SetValue(profile.getProfileSetting('flip_x') == 'True')\r
self.toolbar2.AddControl(self.flipX)\r
self.Bind(wx.EVT_BUTTON, self.OnFlipXClick, self.flipX)\r
self.flipY.SetBezelWidth(1)\r
self.flipY.SetUseFocusIndicator(False)\r
self.flipY.SetToolTip(wx.ToolTip('Flip Y'))\r
+ self.flipY.Bind(wx.EVT_ENTER_WINDOW, self.OnPopupDisplay)\r
+ self.flipY.Bind(wx.EVT_LEAVE_WINDOW, self.OnPopupHide)\r
self.flipY.SetValue(profile.getProfileSetting('flip_y') == 'True')\r
self.toolbar2.AddControl(self.flipY)\r
self.Bind(wx.EVT_BUTTON, self.OnFlipYClick, self.flipY)\r
self.flipZ.SetBezelWidth(1)\r
self.flipZ.SetUseFocusIndicator(False)\r
self.flipZ.SetToolTip(wx.ToolTip('Flip Z'))\r
+ self.flipZ.Bind(wx.EVT_ENTER_WINDOW, self.OnPopupDisplay)\r
+ self.flipZ.Bind(wx.EVT_LEAVE_WINDOW, self.OnPopupHide)\r
self.flipZ.SetValue(profile.getProfileSetting('flip_z') == 'True')\r
self.toolbar2.AddControl(self.flipZ)\r
self.Bind(wx.EVT_BUTTON, self.OnFlipZClick, self.flipZ)\r
self.swapXZ.SetBezelWidth(1)\r
self.swapXZ.SetUseFocusIndicator(False)\r
self.swapXZ.SetToolTip(wx.ToolTip('Swap XZ'))\r
+ self.swapXZ.Bind(wx.EVT_ENTER_WINDOW, self.OnPopupDisplay)\r
+ self.swapXZ.Bind(wx.EVT_LEAVE_WINDOW, self.OnPopupHide)\r
self.swapXZ.SetValue(profile.getProfileSetting('swap_xz') == 'True')\r
self.toolbar2.AddControl(self.swapXZ)\r
self.Bind(wx.EVT_BUTTON, self.OnSwapXZClick, self.swapXZ)\r
self.swapYZ.SetBezelWidth(1)\r
self.swapYZ.SetUseFocusIndicator(False)\r
self.swapYZ.SetToolTip(wx.ToolTip('Swap YZ'))\r
+ self.swapYZ.Bind(wx.EVT_ENTER_WINDOW, self.OnPopupDisplay)\r
+ self.swapYZ.Bind(wx.EVT_LEAVE_WINDOW, self.OnPopupHide)\r
self.swapYZ.SetValue(profile.getProfileSetting('swap_yz') == 'True')\r
self.toolbar2.AddControl(self.swapYZ)\r
self.Bind(wx.EVT_BUTTON, self.OnSwapYZClick, self.swapYZ)\r
sizer.Add(self.toolbar2, 0, flag=wx.EXPAND|wx.BOTTOM|wx.LEFT|wx.RIGHT, border=1)\r
self.SetSizer(sizer)\r
\r
+ def OnPopupDisplay(self, e):\r
+ self.UpdatePopup(e.GetEventObject())\r
+ self.popup.Show(True)\r
+ \r
+ def OnPopupHide(self, e):\r
+ self.popup.Show(False)\r
+ \r
+ def UpdatePopup(self, control):\r
+ self.popup.text.SetLabel(control.GetToolTip().GetTip())\r
+ self.popup.text.Wrap(350)\r
+ self.popup.Fit();\r
+ if os.name == 'darwin':\r
+ x, y = self.ClientToScreenXY(0, 0)\r
+ sx, sy = self.GetClientSizeTuple()\r
+ else:\r
+ x, y = control.ClientToScreenXY(0, 0)\r
+ sx, sy = control.GetSizeTuple()\r
+ self.popup.SetPosition((x, y+sy))\r
+ \r
def OnFlipXClick(self, e):\r
profile.putProfileSetting('flip_x', str(self.flipX.GetValue()))\r
self.updateModelTransform()\r