def EVT_NAVIGATION_KEY(win, func):
win.Connect(-1, -1, wxEVT_NAVIGATION_KEY, func)
+def EVT_PALETTE_CHANGED(win, func):
+ win.Connect(-1, -1, wxEVT_PALETTE_CHANGED, func)
+
+def EVT_QUERY_NEW_PALETTE(win, func):
+ win.Connect(-1, -1, wxEVT_QUERY_NEW_PALETTE, func)
+
+def EVT_WINDOW_CREATE(win, func):
+ win.Connect(-1, -1, wxEVT_CREATE, func)
+
+def EVT_WINDOW_DESTROY(win, func):
+ win.Connect(-1, -1, wxEVT_DESTROY, func)
+
+
+
def EVT_IDLE(win, func):
win.Connect(-1, -1, wxEVT_IDLE, func)
def EVT_UPDATE_UI(win, id, func):
win.Connect(id, -1, wxEVT_UPDATE_UI, func)
+def EVT_UPDATE_UI_RANGE(win, id, id2, func):
+ win.Connect(id, id2, wxEVT_UPDATE_UI, func)
+
# Mouse Events
def EVT_LEFT_DOWN(win, func):
def EVT_TOOL(win, id, func):
win.Connect(id, -1, wxEVT_COMMAND_TOOL_CLICKED, func)
+def EVT_TOOL_RANGE(win, id, id2, func):
+ win.Connect(id, id2, wxEVT_COMMAND_TOOL_CLICKED, func)
+
def EVT_TOOL_RCLICKED(win, id, func):
win.Connect(id, -1, wxEVT_COMMAND_TOOL_RCLICKED, func)
+def EVT_TOOL_RCLICKED_RANGE(win, id, id2, func):
+ win.Connect(id, id2, wxEVT_COMMAND_TOOL_RCLICKED, func)
+
def EVT_TOOL_ENTER(win, id, func):
win.Connect(id, -1, wxEVT_COMMAND_TOOL_ENTER, func)
def EVT_CHECKLISTBOX(win, id, func):
win.Connect(id, -1, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, func)
+def EVT_SPINCTRL(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_SPINCTRL_UPDATED, func)
+
+
# Generic command events
wxDefaultPosition = wxPyDefaultPosition
wxDefaultSize = wxPyDefaultSize
+# backwards compatibility
+wxNoRefBitmap = wxBitmap
#----------------------------------------------------------------------
# This helper function will take a wxPython object and convert it to
newPtr = ptrcast(obj, typeStr+"_p")
theClass = globals()[typeStr+"Ptr"]
theObj = theClass(newPtr)
- theObj.thisown = obj.thisown
+ if hasattr(obj, "this"):
+ theObj.thisown = obj.thisown
return theObj
self.frame = None
self.title = title
+
def SetParent(self, parent):
self.parent = parent
+
def OnCloseWindow(self, event):
if self.frame != None:
self.frame.Destroy()
self.frame = None
self.text = None
+
# this provides the file-like behaviour
def write(self, str):
if not self.frame:
EVT_CLOSE(self.frame, self.OnCloseWindow)
self.text.AppendText(str)
+
def close(self):
+ if self.frame != None:
+ self.frame.Destroy()
self.frame = None
self.text = None
def SetTopWindow(self, frame):
if self.stdioWin:
self.stdioWin.SetParent(frame)
- sys.stdout = self.stdioWin #sys.stderr =
+ sys.stderr = sys.stdout = self.stdioWin
wxPyApp.SetTopWindow(self, frame)
+
def MainLoop(self):
wxPyApp.MainLoop(self)
self.RestoreStdio()
+
def RedirectStdio(self, filename):
if filename:
sys.stdout = sys.stderr = open(filename, 'a')
else:
self.stdioWin = self.outputWindowClass() # wxPyOnDemandOutputWindow
+
def RestoreStdio(self):
sys.stdout, sys.stderr = self.saveStdio
if self.stdioWin != None:
self.stdioWin.close()
+#----------------------------------------------------------------------------
+
+class wxPySimpleApp(wxApp):
+ def __init__(self):
+ wxApp.__init__(self, 0)
+ def OnInit(self):
+ return true
#----------------------------------------------------------------------------
# DO NOT hold any other references to this object. This is how we know when
-# to cleanup system resources that wxWin is holding...
+# to cleanup system resources that wxWin is holding. When this module is
+# unloaded, the refcount on __cleanMeUp goes to zero and it calls the
+# wxApp_CleanUp function.
+
+class __wxPyCleanup:
+ def __init__(self):
+ self.cleanup = wxc.wxApp_CleanUp
+ def __del__(self):
+ self.cleanup()
+
__cleanMeUp = __wxPyCleanup()
#----------------------------------------------------------------------------