build fixes and reSWIGs for wxMSW

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-07-25 02:32:46 +00:00
parent d84a9306f0
commit 5a2a9da2c2
56 changed files with 15127 additions and 7374 deletions

View File

@@ -53,88 +53,82 @@ class wxPyAppPtr(wxEvtHandlerPtr):
except:
pass
def _setCallbackInfo(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp__setCallbackInfo,(self,) + _args, _kwargs)
val = wxc.wxPyApp__setCallbackInfo(self, *_args, **_kwargs)
return val
def GetAppName(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetAppName,(self,) + _args, _kwargs)
return val
def GetAuto3D(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetAuto3D,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetAppName(self, *_args, **_kwargs)
return val
def GetClassName(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetClassName,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetClassName(self, *_args, **_kwargs)
return val
def GetExitOnFrameDelete(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetExitOnFrameDelete,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetExitOnFrameDelete(self, *_args, **_kwargs)
return val
def GetPrintMode(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetPrintMode,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetPrintMode(self, *_args, **_kwargs)
return val
def GetTopWindow(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetTopWindow,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetTopWindow(self, *_args, **_kwargs)
return val
def GetVendorName(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetVendorName,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetVendorName(self, *_args, **_kwargs)
return val
def GetUseBestVisual(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetUseBestVisual,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetUseBestVisual(self, *_args, **_kwargs)
return val
def Dispatch(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_Dispatch,(self,) + _args, _kwargs)
val = wxc.wxPyApp_Dispatch(self, *_args, **_kwargs)
return val
def ExitMainLoop(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_ExitMainLoop,(self,) + _args, _kwargs)
val = wxc.wxPyApp_ExitMainLoop(self, *_args, **_kwargs)
return val
def Initialized(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_Initialized,(self,) + _args, _kwargs)
val = wxc.wxPyApp_Initialized(self, *_args, **_kwargs)
return val
def MainLoop(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_MainLoop,(self,) + _args, _kwargs)
val = wxc.wxPyApp_MainLoop(self, *_args, **_kwargs)
return val
def Pending(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_Pending,(self,) + _args, _kwargs)
val = wxc.wxPyApp_Pending(self, *_args, **_kwargs)
return val
def ProcessIdle(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_ProcessIdle,(self,) + _args, _kwargs)
val = wxc.wxPyApp_ProcessIdle(self, *_args, **_kwargs)
return val
def Yield(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_Yield,(self,) + _args, _kwargs)
val = wxc.wxPyApp_Yield(self, *_args, **_kwargs)
return val
def SetAppName(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetAppName,(self,) + _args, _kwargs)
return val
def SetAuto3D(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetAuto3D,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetAppName(self, *_args, **_kwargs)
return val
def SetClassName(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetClassName,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetClassName(self, *_args, **_kwargs)
return val
def SetExitOnFrameDelete(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetExitOnFrameDelete,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetExitOnFrameDelete(self, *_args, **_kwargs)
return val
def SetPrintMode(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetPrintMode,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetPrintMode(self, *_args, **_kwargs)
return val
def SetTopWindow(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetTopWindow,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetTopWindow(self, *_args, **_kwargs)
return val
def SetVendorName(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetVendorName,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetVendorName(self, *_args, **_kwargs)
return val
def SetUseBestVisual(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetUseBestVisual,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetUseBestVisual(self, *_args, **_kwargs)
return val
def GetAssertMode(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_GetAssertMode,(self,) + _args, _kwargs)
val = wxc.wxPyApp_GetAssertMode(self, *_args, **_kwargs)
return val
def SetAssertMode(self, *_args, **_kwargs):
val = apply(wxc.wxPyApp_SetAssertMode,(self,) + _args, _kwargs)
val = wxc.wxPyApp_SetAssertMode(self, *_args, **_kwargs)
return val
def __repr__(self):
return "<C wxPyApp instance at %s>" % (self.this,)
return "<%s.%s instance; proxy of C++ wxPyApp instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this)
class wxPyApp(wxPyAppPtr):
def __init__(self,*_args,**_kwargs):
self.this = apply(wxc.new_wxPyApp,_args,_kwargs)
self.this = wxc.new_wxPyApp(*_args,**_kwargs)
self.thisown = 1
self._setCallbackInfo(self, wxPyApp)
self._setOORInfo(self)
@@ -165,7 +159,7 @@ _wxStart = wxc._wxStart
_wxSetDictionary = wxc._wxSetDictionary
def wxGetApp(*_args, **_kwargs):
val = apply(wxc.wxGetApp,_args,_kwargs)
val = wxc.wxGetApp(*_args,**_kwargs)
return val
wxApp_CleanUp = wxc.wxApp_CleanUp
@@ -246,6 +240,7 @@ wxFRAME_TOOL_WINDOW = wxc.wxFRAME_TOOL_WINDOW
wxFRAME_FLOAT_ON_PARENT = wxc.wxFRAME_FLOAT_ON_PARENT
wxFRAME_NO_WINDOW_MENU = wxc.wxFRAME_NO_WINDOW_MENU
wxFRAME_NO_TASKBAR = wxc.wxFRAME_NO_TASKBAR
wxFRAME_SHAPED = wxc.wxFRAME_SHAPED
wxED_CLIENT_MARGIN = wxc.wxED_CLIENT_MARGIN
wxED_BUTTONS_BOTTOM = wxc.wxED_BUTTONS_BOTTOM
wxED_BUTTONS_RIGHT = wxc.wxED_BUTTONS_RIGHT
@@ -255,15 +250,6 @@ wxCLIP_CHILDREN = wxc.wxCLIP_CHILDREN
wxCLIP_SIBLINGS = wxc.wxCLIP_SIBLINGS
wxRETAINED = wxc.wxRETAINED
wxBACKINGSTORE = wxc.wxBACKINGSTORE
wxTB_HORIZONTAL = wxc.wxTB_HORIZONTAL
wxTB_VERTICAL = wxc.wxTB_VERTICAL
wxTB_3DBUTTONS = wxc.wxTB_3DBUTTONS
wxTB_FLAT = wxc.wxTB_FLAT
wxTB_DOCKABLE = wxc.wxTB_DOCKABLE
wxTB_NOICONS = wxc.wxTB_NOICONS
wxTB_TEXT = wxc.wxTB_TEXT
wxTB_NODIVIDER = wxc.wxTB_NODIVIDER
wxTB_NOALIGN = wxc.wxTB_NOALIGN
wxCOLOURED = wxc.wxCOLOURED
wxFIXED_LENGTH = wxc.wxFIXED_LENGTH
wxALIGN_LEFT = wxc.wxALIGN_LEFT
@@ -288,24 +274,6 @@ wxLB_OWNERDRAW = wxc.wxLB_OWNERDRAW
wxLB_HSCROLL = wxc.wxLB_HSCROLL
wxPROCESS_ENTER = wxc.wxPROCESS_ENTER
wxPASSWORD = wxc.wxPASSWORD
wxTE_READONLY = wxc.wxTE_READONLY
wxTE_MULTILINE = wxc.wxTE_MULTILINE
wxTE_PROCESS_TAB = wxc.wxTE_PROCESS_TAB
wxTE_RICH = wxc.wxTE_RICH
wxTE_RICH2 = wxc.wxTE_RICH2
wxTE_NO_VSCROLL = wxc.wxTE_NO_VSCROLL
wxTE_AUTO_SCROLL = wxc.wxTE_AUTO_SCROLL
wxTE_PROCESS_ENTER = wxc.wxTE_PROCESS_ENTER
wxTE_PASSWORD = wxc.wxTE_PASSWORD
wxTE_AUTO_URL = wxc.wxTE_AUTO_URL
wxTE_NOHIDESEL = wxc.wxTE_NOHIDESEL
wxTE_DONTWRAP = wxc.wxTE_DONTWRAP
wxTE_LINEWRAP = wxc.wxTE_LINEWRAP
wxTE_WORDWRAP = wxc.wxTE_WORDWRAP
wxTE_LEFT = wxc.wxTE_LEFT
wxTE_RIGHT = wxc.wxTE_RIGHT
wxTE_CENTER = wxc.wxTE_CENTER
wxTE_CENTRE = wxc.wxTE_CENTRE
wxCB_SIMPLE = wxc.wxCB_SIMPLE
wxCB_DROPDOWN = wxc.wxCB_DROPDOWN
wxCB_SORT = wxc.wxCB_SORT
@@ -341,18 +309,6 @@ wxBU_TOP = wxc.wxBU_TOP
wxBU_RIGHT = wxc.wxBU_RIGHT
wxBU_BOTTOM = wxc.wxBU_BOTTOM
wxBU_EXACTFIT = wxc.wxBU_EXACTFIT
wxSP_VERTICAL = wxc.wxSP_VERTICAL
wxSP_HORIZONTAL = wxc.wxSP_HORIZONTAL
wxSP_ARROW_KEYS = wxc.wxSP_ARROW_KEYS
wxSP_WRAP = wxc.wxSP_WRAP
wxSP_NOBORDER = wxc.wxSP_NOBORDER
wxSP_3D = wxc.wxSP_3D
wxSP_3DSASH = wxc.wxSP_3DSASH
wxSP_3DBORDER = wxc.wxSP_3DBORDER
wxSP_FULLSASH = wxc.wxSP_FULLSASH
wxSP_BORDER = wxc.wxSP_BORDER
wxSP_LIVE_UPDATE = wxc.wxSP_LIVE_UPDATE
wxSP_PERMIT_UNSPLIT = wxc.wxSP_PERMIT_UNSPLIT
wxFLOOD_SURFACE = wxc.wxFLOOD_SURFACE
wxFLOOD_BORDER = wxc.wxFLOOD_BORDER
wxODDEVEN_RULE = wxc.wxODDEVEN_RULE
@@ -424,6 +380,18 @@ wxID_CLEAR = wxc.wxID_CLEAR
wxID_FIND = wxc.wxID_FIND
wxID_DUPLICATE = wxc.wxID_DUPLICATE
wxID_SELECTALL = wxc.wxID_SELECTALL
wxID_DELETE = wxc.wxID_DELETE
wxID_REPLACE = wxc.wxID_REPLACE
wxID_REPLACE_ALL = wxc.wxID_REPLACE_ALL
wxID_PROPERTIES = wxc.wxID_PROPERTIES
wxID_VIEW_DETAILS = wxc.wxID_VIEW_DETAILS
wxID_VIEW_LARGEICONS = wxc.wxID_VIEW_LARGEICONS
wxID_VIEW_SMALLICONS = wxc.wxID_VIEW_SMALLICONS
wxID_VIEW_LIST = wxc.wxID_VIEW_LIST
wxID_VIEW_SORTDATE = wxc.wxID_VIEW_SORTDATE
wxID_VIEW_SORTNAME = wxc.wxID_VIEW_SORTNAME
wxID_VIEW_SORTSIZE = wxc.wxID_VIEW_SORTSIZE
wxID_VIEW_SORTTYPE = wxc.wxID_VIEW_SORTTYPE
wxID_FILE1 = wxc.wxID_FILE1
wxID_FILE2 = wxc.wxID_FILE2
wxID_FILE3 = wxc.wxID_FILE3
@@ -488,11 +456,6 @@ wxSTRETCH_NOT = wxc.wxSTRETCH_NOT
wxSHRINK = wxc.wxSHRINK
wxGROW = wxc.wxGROW
wxEXPAND = wxc.wxEXPAND
wxNB_FIXEDWIDTH = wxc.wxNB_FIXEDWIDTH
wxNB_LEFT = wxc.wxNB_LEFT
wxNB_RIGHT = wxc.wxNB_RIGHT
wxNB_BOTTOM = wxc.wxNB_BOTTOM
wxNB_MULTILINE = wxc.wxNB_MULTILINE
wxLI_HORIZONTAL = wxc.wxLI_HORIZONTAL
wxLI_VERTICAL = wxc.wxLI_VERTICAL
wxJOYSTICK1 = wxc.wxJOYSTICK1
@@ -505,6 +468,9 @@ wxJOY_BUTTON_ANY = wxc.wxJOY_BUTTON_ANY
wxWS_EX_VALIDATE_RECURSIVELY = wxc.wxWS_EX_VALIDATE_RECURSIVELY
wxWS_EX_BLOCK_EVENTS = wxc.wxWS_EX_BLOCK_EVENTS
wxWS_EX_TRANSIENT = wxc.wxWS_EX_TRANSIENT
wxWS_EX_THEMED_BACKGROUND = wxc.wxWS_EX_THEMED_BACKGROUND
wxWS_EX_PROCESS_IDLE = wxc.wxWS_EX_PROCESS_IDLE
wxWS_EX_PROCESS_UI_UPDATES = wxc.wxWS_EX_PROCESS_UI_UPDATES
wxMM_TEXT = wxc.wxMM_TEXT
wxMM_LOMETRIC = wxc.wxMM_LOMETRIC
wxMM_HIMETRIC = wxc.wxMM_HIMETRIC
@@ -840,6 +806,14 @@ wxHT_WINDOW_VERT_SCROLLBAR = wxc.wxHT_WINDOW_VERT_SCROLLBAR
wxHT_WINDOW_HORZ_SCROLLBAR = wxc.wxHT_WINDOW_HORZ_SCROLLBAR
wxHT_WINDOW_CORNER = wxc.wxHT_WINDOW_CORNER
wxHT_MAX = wxc.wxHT_MAX
wxMOD_NONE = wxc.wxMOD_NONE
wxMOD_ALT = wxc.wxMOD_ALT
wxMOD_CONTROL = wxc.wxMOD_CONTROL
wxMOD_SHIFT = wxc.wxMOD_SHIFT
wxMOD_WIN = wxc.wxMOD_WIN
wxUPDATE_UI_NONE = wxc.wxUPDATE_UI_NONE
wxUPDATE_UI_RECURSE = wxc.wxUPDATE_UI_RECURSE
wxUPDATE_UI_FROMIDLE = wxc.wxUPDATE_UI_FROMIDLE
wxEVT_NULL = wxc.wxEVT_NULL
wxEVT_FIRST = wxc.wxEVT_FIRST
wxEVT_COMMAND_BUTTON_CLICKED = wxc.wxEVT_COMMAND_BUTTON_CLICKED
@@ -897,6 +871,7 @@ wxEVT_CHAR = wxc.wxEVT_CHAR
wxEVT_KEY_DOWN = wxc.wxEVT_KEY_DOWN
wxEVT_KEY_UP = wxc.wxEVT_KEY_UP
wxEVT_CHAR_HOOK = wxc.wxEVT_CHAR_HOOK
wxEVT_HOTKEY = wxc.wxEVT_HOTKEY
wxEVT_SCROLL_TOP = wxc.wxEVT_SCROLL_TOP
wxEVT_SCROLL_BOTTOM = wxc.wxEVT_SCROLL_BOTTOM
wxEVT_SCROLL_LINEUP = wxc.wxEVT_SCROLL_LINEUP
@@ -916,6 +891,8 @@ wxEVT_SCROLLWIN_THUMBTRACK = wxc.wxEVT_SCROLLWIN_THUMBTRACK
wxEVT_SCROLLWIN_THUMBRELEASE = wxc.wxEVT_SCROLLWIN_THUMBRELEASE
wxEVT_SIZE = wxc.wxEVT_SIZE
wxEVT_MOVE = wxc.wxEVT_MOVE
wxEVT_SIZING = wxc.wxEVT_SIZING
wxEVT_MOVING = wxc.wxEVT_MOVING
wxEVT_CLOSE_WINDOW = wxc.wxEVT_CLOSE_WINDOW
wxEVT_END_SESSION = wxc.wxEVT_END_SESSION
wxEVT_QUERY_END_SESSION = wxc.wxEVT_QUERY_END_SESSION
@@ -960,7 +937,6 @@ wxEVT_COMMAND_KILL_FOCUS = wxc.wxEVT_COMMAND_KILL_FOCUS
wxEVT_COMMAND_ENTER = wxc.wxEVT_COMMAND_ENTER
wxEVT_NAVIGATION_KEY = wxc.wxEVT_NAVIGATION_KEY
wxEVT_TIMER = wxc.wxEVT_TIMER
__version__ = wxc.__version__
cvar = wxc.cvar
wxDefaultPosition = wxPointPtr(wxc.cvar.wxDefaultPosition)
wxDefaultSize = wxSizePtr(wxc.cvar.wxDefaultSize)
@@ -1015,6 +991,12 @@ def EVT_SIZE(win, func):
def EVT_MOVE(win, func):
win.Connect(-1, -1, wxEVT_MOVE, func)
def EVT_SIZING(win, func):
win.Connect(-1, -1, wxEVT_SIZING, func)
def EVT_MOVING(win, func):
win.Connect(-1, -1, wxEVT_MOVING, func)
def EVT_CLOSE(win, func):
win.Connect(-1, -1, wxEVT_CLOSE_WINDOW, func)
@@ -1036,6 +1018,9 @@ def EVT_KEY_DOWN(win, func):
def EVT_KEY_UP(win, func):
win.Connect(-1, -1, wxEVT_KEY_UP, func)
def EVT_HOTKEY(win, func):
win.Connect(-1, -1, wxEVT_HOTKEY, func)
def EVT_MENU_OPEN(win, func):
win.Connect(-1, -1, wxEVT_MENU_OPEN, func)
@@ -1460,29 +1445,6 @@ def EVT_SPIN(win, id, func):
win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func)
# wxTaskBarIcon
def EVT_TASKBAR_MOVE(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_MOVE, func)
def EVT_TASKBAR_LEFT_DOWN(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DOWN, func)
def EVT_TASKBAR_LEFT_UP(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_UP, func)
def EVT_TASKBAR_RIGHT_DOWN(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DOWN, func)
def EVT_TASKBAR_RIGHT_UP(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_UP, func)
def EVT_TASKBAR_LEFT_DCLICK(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DCLICK, func)
def EVT_TASKBAR_RIGHT_DCLICK(win, func):
win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DCLICK, func)
# wxSashWindow
def EVT_SASH_DRAGGED(win, id, func):
win.Connect(id, -1, wxEVT_SASH_DRAGGED, func)
@@ -1491,10 +1453,10 @@ def EVT_SASH_DRAGGED_RANGE(win, id1, id2, func):
win.Connect(id1, id2, wxEVT_SASH_DRAGGED, func)
def EVT_QUERY_LAYOUT_INFO(win, func):
win.Connect(-1, -1, wxEVT_EVT_QUERY_LAYOUT_INFO, func)
win.Connect(-1, -1, wxEVT_QUERY_LAYOUT_INFO, func)
def EVT_CALCULATE_LAYOUT(win, func):
win.Connect(-1, -1, wxEVT_EVT_CALCULATE_LAYOUT, func)
win.Connect(-1, -1, wxEVT_CALCULATE_LAYOUT, func)
#wxSplitterWindow
@@ -1584,6 +1546,8 @@ wxSystemSettings_GetSystemMetric = wxSystemSettings_GetMetric
# workarounds for bad wxRTTI names
__wxPyPtrTypeMap['wxGauge95'] = 'wxGauge'
__wxPyPtrTypeMap['wxSlider95'] = 'wxSlider'
__wxPyPtrTypeMap['wxStatusBar95'] = 'wxStatusBar'
@@ -1621,6 +1585,8 @@ if wxPlatform == "__WXGTK__":
except:
pass
# On MSW add the directory where the wxWindows catalogs were installed
# to the default catalog path.
if wxPlatform == "__WXMSW__":
import os
localedir = os.path.join(os.path.split(__file__)[0], "locale")
@@ -1628,15 +1594,17 @@ if wxPlatform == "__WXMSW__":
del os
#----------------------------------------------------------------------
# wxWindows version numbers. wxPython version is in __version__.
# Load version numbers from __version__... Ensure that major and minor
# versions are the same for both wxPython and wxWindows.
wxMAJOR_VERSION = wxc.wxMAJOR_VERSION
wxMINOR_VERSION = wxc.wxMINOR_VERSION
wxRELEASE_NUMBER = wxc.wxRELEASE_NUMBER
wxVERSION_STRING = wxc.wxVERSION_STRING
wxVERSION_NUMBER = wxc.wxVERSION_NUMBER
from wxPython.__version__ import *
__version__ = wxVERSION_STRING
wxVERSION = (wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER)
assert wxMAJOR_VERSION == wxc.wxMAJOR_VERSION, "wxPython/wxWindows version mismatch"
assert wxMINOR_VERSION == wxc.wxMINOR_VERSION, "wxPython/wxWindows version mismatch"
if wxRELEASE_VERSION != wxc.wxRELEASE_VERSION:
import warnings
warnings.warn("wxPython/wxWindows release number mismatch")
#----------------------------------------------------------------------
@@ -1704,9 +1672,9 @@ def wxCallAfter(callable, *args, **kw):
global _wxCallAfterId
if _wxCallAfterId is None:
_wxCallAfterId = wxNewId()
_wxCallAfterId = wxNewEventType()
app.Connect(-1, -1, _wxCallAfterId,
lambda event: apply(event.callable, event.args, event.kw) )
lambda event: event.callable(*event.args, **event.kw) )
evt = wxPyEvent()
evt.SetEventType(_wxCallAfterId)
evt.callable = callable
@@ -1714,8 +1682,97 @@ def wxCallAfter(callable, *args, **kw):
evt.kw = kw
wxPostEvent(app, evt)
# an alias
wxRunLater = wxCallAfter
#----------------------------------------------------------------------
class wxFutureCall:
"""
A convenience class for wxTimer, that calls the given callable
object once after the given amount of milliseconds, passing any
positional or keyword args. The return value of the callable is
availbale after it has been run with the GetResult method.
If you don't need to get the return value or restart the timer
then there is no need to hold a reference to this object. It will
hold a reference to itself while the timer is running (the timer
has a reference to self.Notify) but the cycle will be broken when
the timer completes, automatically cleaning up the wxFutureCall
object.
"""
def __init__(self, millis, callable, *args, **kwargs):
self.millis = millis
self.callable = callable
self.SetArgs(*args, **kwargs)
self.runCount = 0
self.hasRun = False
self.result = None
self.timer = None
self.Start()
def __del__(self):
self.Stop()
def Start(self, millis=None):
"""
(Re)start the timer
"""
self.hasRun = False
if millis is not None:
self.millis = millis
self.Stop()
self.timer = wxPyTimer(self.Notify)
self.timer.Start(self.millis, wxTIMER_ONE_SHOT)
Restart = Start
def Stop(self):
"""
Stop and destroy the timer.
"""
if self.timer is not None:
self.timer.Stop()
self.timer = None
def GetInterval(self):
if self.timer is not None:
return self.timer.GetInterval()
else:
return 0
def IsRunning(self):
return self.timer is not None and self.timer.IsRunning()
def SetArgs(self, *args, **kwargs):
"""
(Re)set the args passed to the callable object. This is
useful in conjunction with Restart if you want to schedule a
new call to the same callable object but with different
parameters.
"""
self.args = args
self.kwargs = kwargs
def HasRun(self):
return self.hasRun
def GetResult(self):
return self.result
def Notify(self):
"""
The timer has expired so call the callable.
"""
if self.callable and getattr(self.callable, 'im_self', True):
self.runCount += 1
self.result = self.callable(*self.args, **self.kwargs)
self.hasRun = True
wxCallAfter(self.Stop)
#----------------------------------------------------------------------
@@ -1745,6 +1802,35 @@ class _wxPyDeadObject:
return 0
#----------------------------------------------------------------------
class wxNotebookPage(wxPanel):
"""
There is an old (and apparently unsolvable) bug when placing a
window with a nonstandard background colour in a wxNotebook on
wxGTK, as the notbooks's background colour would always be used
when the window is refreshed. The solution is to place a panel in
the notbook and the coloured window on the panel, sized to cover
the panel. This simple class does that for you, just put an
instance of this in the notebook and make your regular window a
child of this one and it will handle the resize for you.
"""
def __init__(self, parent, id=-1,
pos=wxDefaultPosition, size=wxDefaultSize,
style=wxTAB_TRAVERSAL, name="panel"):
wxPanel.__init__(self, parent, id, pos, size, style, name)
self.child = None
EVT_SIZE(self, self.OnSize)
def OnSize(self, evt):
if self.child is None:
children = self.GetChildren()
if len(children):
self.child = children[0]
if self.child:
self.child.SetPosition((0,0))
self.child.SetSize(self.GetSize())
#----------------------------------------------------------------------
#----------------------------------------------------------------------
@@ -1799,6 +1885,18 @@ class wxApp(wxPyApp):
def __init__(self, redirect=_defRedirect, filename=None, useBestVisual=False):
wxPyApp.__init__(self)
if wx.wxPlatform == "__WXMAC__":
try:
import MacOS
if not MacOS.WMAvailable():
print """This program needs access to the screen. Please run with
'pythonw', not 'python', and only when you are logged in on the main display
of your Mac."""
sys.exit(1)
except:
pass
self.stdioWin = None
self.saveStdio = (sys.stdout, sys.stderr)
@@ -1808,6 +1906,15 @@ class wxApp(wxPyApp):
if redirect:
self.RedirectStdio(filename)
# Set the default handler for SIGINT. This fixes a problem
# where if Ctrl-C is pressed in the console that started this
# app then it will not appear to do anything, (not even send
# KeyboardInterrupt???) but will later segfault on exit. By
# setting the default handler then the app will exit, as
# expected (depending on platform.)
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
# this initializes wxWindows and then calls our OnInit
_wxStart(self.OnInit)
@@ -1878,7 +1985,7 @@ class wxPyWidgetTester(wxApp):
return True
def SetWidget(self, widgetClass, *args):
w = apply(widgetClass, (self.frame,) + args)
w = widgetClass(self.frame, *args)
self.frame.Show(True)
#----------------------------------------------------------------------------