X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b62f00d8e3ec5437ab780cb3d73d299cc61e20c..1af9e5c56dedf2ecd79d4f9186f6a8edb5c72448:/wxPython/src/msw/wx.py?ds=sidebyside diff --git a/wxPython/src/msw/wx.py b/wxPython/src/msw/wx.py index 323099d434..b94a92458c 100644 --- a/wxPython/src/msw/wx.py +++ b/wxPython/src/msw/wx.py @@ -400,6 +400,10 @@ wxID_YES = wxc.wxID_YES wxID_NO = wxc.wxID_NO wxID_STATIC = wxc.wxID_STATIC wxID_SEPARATOR = wxc.wxID_SEPARATOR +wxID_FORWARD = wxc.wxID_FORWARD +wxID_BACKWARD = wxc.wxID_BACKWARD +wxID_SETUP = wxc.wxID_SETUP +wxID_MORE = wxc.wxID_MORE wxBITMAP_TYPE_BMP = wxc.wxBITMAP_TYPE_BMP wxBITMAP_TYPE_BMP_RESOURCE = wxc.wxBITMAP_TYPE_BMP_RESOURCE wxBITMAP_TYPE_ICO = wxc.wxBITMAP_TYPE_ICO @@ -810,6 +814,7 @@ 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 +wxWS_EX_VALIDATE_RECURSIVELY = wxc.wxWS_EX_VALIDATE_RECURSIVELY __version__ = wxc.__version__ cvar = wxc.cvar wxDefaultPosition = wxPointPtr(wxc.cvar.wxDefaultPosition) @@ -849,38 +854,6 @@ def _checkForCallback(obj, name, event, theID=-1): except: pass else: obj.Connect(theID, -1, event, cb) -## def _StdWindowCallbacks(win): -## _checkForCallback(win, "OnChar", wxEVT_CHAR) -## _checkForCallback(win, "OnSize", wxEVT_SIZE) -## _checkForCallback(win, "OnEraseBackground", wxEVT_ERASE_BACKGROUND) -## _checkForCallback(win, "OnSysColourChanged", wxEVT_SYS_COLOUR_CHANGED) -## _checkForCallback(win, "OnInitDialog", wxEVT_INIT_DIALOG) -## _checkForCallback(win, "OnPaint", wxEVT_PAINT) -## _checkForCallback(win, "OnIdle", wxEVT_IDLE) - - -## def _StdFrameCallbacks(win): -## _StdWindowCallbacks(win) -## _checkForCallback(win, "OnActivate", wxEVT_ACTIVATE) -## _checkForCallback(win, "OnMenuHighlight", wxEVT_MENU_HIGHLIGHT) -## _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - - -## def _StdDialogCallbacks(win): -## _StdWindowCallbacks(win) -## _checkForCallback(win, "OnOk", wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK) -## _checkForCallback(win, "OnApply", wxEVT_COMMAND_BUTTON_CLICKED, wxID_APPLY) -## _checkForCallback(win, "OnCancel", wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL) -## _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) -## _checkForCallback(win, "OnCharHook", wxEVT_CHAR_HOOK) - - -## def _StdOnScrollCallbacks(win): -## try: cb = getattr(win, "OnScroll") -## except: pass -## else: EVT_SCROLL(win, cb) - - #---------------------------------------------------------------------- #---------------------------------------------------------------------- @@ -1377,35 +1350,6 @@ def EVT_TASKBAR_RIGHT_DCLICK(win, func): win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DCLICK, func) -## # wxGrid *** THE OLD ONE *** -## def EVT_GRID_SELECT_CELL(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_SELECT_CELL, fn) - -## def EVT_GRID_CREATE_CELL(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_CREATE_CELL, fn) - -## def EVT_GRID_CHANGE_LABELS(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_CHANGE_LABELS, fn) - -## def EVT_GRID_CHANGE_SEL_LABEL(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_CHANGE_SEL_LABEL, fn) - -## def EVT_GRID_CELL_CHANGE(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_CELL_CHANGE, fn) - -## def EVT_GRID_CELL_LCLICK(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_CELL_LCLICK, fn) - -## def EVT_GRID_CELL_RCLICK(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_CELL_RCLICK, fn) - -## def EVT_GRID_LABEL_LCLICK(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_LABEL_LCLICK, fn) - -## def EVT_GRID_LABEL_RCLICK(win, fn): -## win.Connect(-1, -1, wxEVT_GRID_LABEL_RCLICK, fn) - - # wxSashWindow def EVT_SASH_DRAGGED(win, id, func): win.Connect(id, -1, wxEVT_SASH_DRAGGED, func) @@ -1545,10 +1489,6 @@ NULL = _NullObj() wxColor = wxColour wxNamedColor = wxNamedColour -# aliases so that C++ documentation applies: -#wxDefaultPosition = wxPyDefaultPosition -#wxDefaultSize = wxPyDefaultSize - # backwards compatibility wxNoRefBitmap = wxBitmap @@ -1577,6 +1517,8 @@ wxPyDefaultSize = wxDefaultSize # def wxPyTypeCast(obj, typeStr): + if obj is None: + return None if hasattr(obj, "this"): newPtr = ptrcast(obj.this, typeStr+"_p") else: @@ -1588,27 +1530,31 @@ def wxPyTypeCast(obj, typeStr): return theObj +#---------------------------------------------------------------------- #---------------------------------------------------------------------- class wxPyOnDemandOutputWindow: def __init__(self, title = "wxPython: stdout/stderr"): self.frame = None self.title = title - + self.parent = None 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 + # These methods provide the file-like output behaviour. def write(self, str): + if not wxThread_IsMain(): + # Aquire the GUI mutex before making GUI calls. Mutex is released + # when locker is deleted a the end of this function. + locker = wxMutexGuiLocker() + if not self.frame: self.frame = wxFrame(self.parent, -1, self.title) self.text = wxTextCtrl(self.frame, -1, "", @@ -1618,13 +1564,11 @@ class wxPyOnDemandOutputWindow: 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 - + if not wxThread_IsMain(): + locker = wxMutexGuiLocker() + self.frame.Close() _defRedirect = (wxPlatform == '__WXMSW__') @@ -1657,7 +1601,6 @@ class wxApp(wxPyApp): def SetTopWindow(self, frame): if self.stdioWin: self.stdioWin.SetParent(frame) - sys.stderr = sys.stdout = self.stdioWin wxPyApp.SetTopWindow(self, frame) @@ -1671,18 +1614,18 @@ class wxApp(wxPyApp): sys.stdout = sys.stderr = open(filename, 'a') else: self.stdioWin = self.outputWindowClass() # wxPyOnDemandOutputWindow + sys.stdout = sys.stderr = self.stdioWin 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 __init__(self, flag=0): + wxApp.__init__(self, flag) def OnInit(self): return true @@ -1715,6 +1658,3 @@ class __wxPyCleanup: __cleanMeUp = __wxPyCleanup() #---------------------------------------------------------------------------- - - -