+++ /dev/null
-#!/usr/bin/env python
-#----------------------------------------------------------------------
-#
-# A little app I use on my system to help me remember which version of
-# wx I am corrently working on. I don't expect this to work for anybody
-# else as it uses things that are specific to my setup.
-#
-#----------------------------------------------------------------------
-
-import wx
-import wx.lib.stattext as st
-import os
-import sys
-
-class MyFrame(wx.Frame):
- def __init__(self, style=0):
- wx.Frame.__init__(self, None, title="wx Active Project",
- style=wx.FRAME_NO_TASKBAR | style
- ,name="wxprojview"
- )
- p = wx.Panel(self)
-
- p.SetBackgroundColour("sky blue")
- self.label = st.GenStaticText(p, -1, "wx XXX")
- self.label.SetBackgroundColour("sky blue")
- self.label.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
- sizer = wx.BoxSizer(wx.VERTICAL)
- sizer.Add(self.label, 1, wx.ALIGN_CENTER|wx.ALL, 2)
- p.SetSizerAndFit(sizer)
- self.SetClientSize(p.GetSize())
-
- for obj in [p, self.label]:
- obj.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
- obj.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
- obj.Bind(wx.EVT_MOTION, self.OnMouseMove)
- obj.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
-
- cfg = wx.Config.Get()
- cfg.SetPath("/")
- if cfg.Exists("Pos"):
- pos = eval(cfg.Read("Pos"))
- # TODO: ensure this position is on-screen
- self.SetPosition(pos)
-
- self.Bind(wx.EVT_CLOSE, self.OnClose)
- self.Bind(wx.EVT_TIMER, self.OnUpdateVersion)
- self.timer = wx.Timer(self)
- self.timer.Start(5000)
- self.OnUpdateVersion(None)
-
-
- def OnUpdateVersion(self, evt):
- ver = '?.?'
- if 'wxMSW' in wx.PlatformInfo:
- info = open("c:/wxcurenv").read()
- p1 = info.find("WXCUR=") + 6
- p2 = info.find("\n", p1)
- ver = info[p1:p2]
- else:
- link = '/opt/wx/current'
- if os.path.islink(link):
- rp = os.path.realpath(link)
- ver = os.path.split(rp)[1]
- label = 'wx %s' % ver
- if label != self.label.GetLabel():
- self.label.SetLabel(label)
- self.label.GetContainingSizer().Layout()
-
-
- def OnClose(self, evt):
- cfg = wx.Config.Get()
- cfg.SetPath("/")
- cfg.Write("Pos", str(self.GetPosition().Get()))
- self.timer.Stop()
- evt.Skip()
-
-
-
- def OnLeftDown(self, evt):
- win = evt.GetEventObject()
- win.CaptureMouse()
- self.capture = win
- pos = win.ClientToScreen(evt.GetPosition())
- origin = self.GetPosition()
- dx = pos.x - origin.x
- dy = pos.y - origin.y
- self.delta = wx.Point(dx, dy)
-
- def OnLeftUp(self, evt):
- if self.capture.HasCapture():
- self.capture.ReleaseMouse()
-
- def OnMouseMove(self, evt):
- if evt.Dragging() and evt.LeftIsDown():
- win = evt.GetEventObject()
- pos = win.ClientToScreen(evt.GetPosition())
- fp = (pos.x - self.delta.x, pos.y - self.delta.y)
- self.Move(fp)
-
- def OnRightUp(self, evt):
- self.Close()
-
-
-
-app = wx.PySimpleApp()
-app.SetAppName("wxprojview")
-app.SetVendorName("Robin Dunn")
-style = wx.STAY_ON_TOP
-if len(sys.argv) > 1 and sys.argv[1] == 'nostayontop':
- style=0
-frm = MyFrame(style)
-frm.Show()
-app.MainLoop()