X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c4165adfa02a1255219948fb4e5b78d4cbb2dae..d56cebe7a497773d8753ea2ab874c4445bac18dc:/wxPython/src/gtk/wx.py?ds=sidebyside diff --git a/wxPython/src/gtk/wx.py b/wxPython/src/gtk/wx.py index be608e29cf..d0cfbd24f2 100644 --- a/wxPython/src/gtk/wx.py +++ b/wxPython/src/gtk/wx.py @@ -61,7 +61,6 @@ class wxPyAppPtr(wxEvtHandlerPtr): return val def GetTopWindow(self, *_args, **_kwargs): val = apply(wxc.wxPyApp_GetTopWindow,(self,) + _args, _kwargs) - if val: val = wxWindowPtr(val) return val def GetVendorName(self, *_args, **_kwargs): val = apply(wxc.wxPyApp_GetVendorName,(self,) + _args, _kwargs) @@ -394,26 +393,10 @@ wxID_YES = wxc.wxID_YES wxID_NO = wxc.wxID_NO wxID_STATIC = wxc.wxID_STATIC wxID_SEPARATOR = wxc.wxID_SEPARATOR -wxBITMAP_TYPE_BMP = wxc.wxBITMAP_TYPE_BMP -wxBITMAP_TYPE_BMP_RESOURCE = wxc.wxBITMAP_TYPE_BMP_RESOURCE -wxBITMAP_TYPE_ICO = wxc.wxBITMAP_TYPE_ICO -wxBITMAP_TYPE_ICO_RESOURCE = wxc.wxBITMAP_TYPE_ICO_RESOURCE -wxBITMAP_TYPE_CUR = wxc.wxBITMAP_TYPE_CUR -wxBITMAP_TYPE_CUR_RESOURCE = wxc.wxBITMAP_TYPE_CUR_RESOURCE -wxBITMAP_TYPE_XBM = wxc.wxBITMAP_TYPE_XBM -wxBITMAP_TYPE_XBM_DATA = wxc.wxBITMAP_TYPE_XBM_DATA -wxBITMAP_TYPE_XPM = wxc.wxBITMAP_TYPE_XPM -wxBITMAP_TYPE_XPM_DATA = wxc.wxBITMAP_TYPE_XPM_DATA -wxBITMAP_TYPE_TIF = wxc.wxBITMAP_TYPE_TIF -wxBITMAP_TYPE_TIF_RESOURCE = wxc.wxBITMAP_TYPE_TIF_RESOURCE -wxBITMAP_TYPE_GIF = wxc.wxBITMAP_TYPE_GIF -wxBITMAP_TYPE_GIF_RESOURCE = wxc.wxBITMAP_TYPE_GIF_RESOURCE -wxBITMAP_TYPE_PNG = wxc.wxBITMAP_TYPE_PNG -wxBITMAP_TYPE_PNG_RESOURCE = wxc.wxBITMAP_TYPE_PNG_RESOURCE -wxBITMAP_TYPE_ANY = wxc.wxBITMAP_TYPE_ANY -wxBITMAP_TYPE_RESOURCE = wxc.wxBITMAP_TYPE_RESOURCE -wxBITMAP_TYPE_JPEG = wxc.wxBITMAP_TYPE_JPEG -wxBITMAP_TYPE_PCX = wxc.wxBITMAP_TYPE_PCX +wxID_FORWARD = wxc.wxID_FORWARD +wxID_BACKWARD = wxc.wxID_BACKWARD +wxID_SETUP = wxc.wxID_SETUP +wxID_MORE = wxc.wxID_MORE wxOPEN = wxc.wxOPEN wxSAVE = wxc.wxSAVE wxHIDE_READONLY = wxc.wxHIDE_READONLY @@ -464,6 +447,7 @@ wxJOY_BUTTON2 = wxc.wxJOY_BUTTON2 wxJOY_BUTTON3 = wxc.wxJOY_BUTTON3 wxJOY_BUTTON4 = wxc.wxJOY_BUTTON4 wxJOY_BUTTON_ANY = wxc.wxJOY_BUTTON_ANY +wxWS_EX_VALIDATE_RECURSIVELY = wxc.wxWS_EX_VALIDATE_RECURSIVELY wxDEFAULT = wxc.wxDEFAULT wxDECORATIVE = wxc.wxDECORATIVE wxROMAN = wxc.wxROMAN @@ -589,6 +573,37 @@ WXK_NUMLOCK = wxc.WXK_NUMLOCK WXK_SCROLL = wxc.WXK_SCROLL WXK_PAGEUP = wxc.WXK_PAGEUP WXK_PAGEDOWN = wxc.WXK_PAGEDOWN +wxBITMAP_TYPE_INVALID = wxc.wxBITMAP_TYPE_INVALID +wxBITMAP_TYPE_BMP = wxc.wxBITMAP_TYPE_BMP +wxBITMAP_TYPE_BMP_RESOURCE = wxc.wxBITMAP_TYPE_BMP_RESOURCE +wxBITMAP_TYPE_RESOURCE = wxc.wxBITMAP_TYPE_RESOURCE +wxBITMAP_TYPE_ICO = wxc.wxBITMAP_TYPE_ICO +wxBITMAP_TYPE_ICO_RESOURCE = wxc.wxBITMAP_TYPE_ICO_RESOURCE +wxBITMAP_TYPE_CUR = wxc.wxBITMAP_TYPE_CUR +wxBITMAP_TYPE_CUR_RESOURCE = wxc.wxBITMAP_TYPE_CUR_RESOURCE +wxBITMAP_TYPE_XBM = wxc.wxBITMAP_TYPE_XBM +wxBITMAP_TYPE_XBM_DATA = wxc.wxBITMAP_TYPE_XBM_DATA +wxBITMAP_TYPE_XPM = wxc.wxBITMAP_TYPE_XPM +wxBITMAP_TYPE_XPM_DATA = wxc.wxBITMAP_TYPE_XPM_DATA +wxBITMAP_TYPE_TIF = wxc.wxBITMAP_TYPE_TIF +wxBITMAP_TYPE_TIF_RESOURCE = wxc.wxBITMAP_TYPE_TIF_RESOURCE +wxBITMAP_TYPE_GIF = wxc.wxBITMAP_TYPE_GIF +wxBITMAP_TYPE_GIF_RESOURCE = wxc.wxBITMAP_TYPE_GIF_RESOURCE +wxBITMAP_TYPE_PNG = wxc.wxBITMAP_TYPE_PNG +wxBITMAP_TYPE_PNG_RESOURCE = wxc.wxBITMAP_TYPE_PNG_RESOURCE +wxBITMAP_TYPE_JPEG = wxc.wxBITMAP_TYPE_JPEG +wxBITMAP_TYPE_JPEG_RESOURCE = wxc.wxBITMAP_TYPE_JPEG_RESOURCE +wxBITMAP_TYPE_PNM = wxc.wxBITMAP_TYPE_PNM +wxBITMAP_TYPE_PNM_RESOURCE = wxc.wxBITMAP_TYPE_PNM_RESOURCE +wxBITMAP_TYPE_PCX = wxc.wxBITMAP_TYPE_PCX +wxBITMAP_TYPE_PCX_RESOURCE = wxc.wxBITMAP_TYPE_PCX_RESOURCE +wxBITMAP_TYPE_PICT = wxc.wxBITMAP_TYPE_PICT +wxBITMAP_TYPE_PICT_RESOURCE = wxc.wxBITMAP_TYPE_PICT_RESOURCE +wxBITMAP_TYPE_ICON = wxc.wxBITMAP_TYPE_ICON +wxBITMAP_TYPE_ICON_RESOURCE = wxc.wxBITMAP_TYPE_ICON_RESOURCE +wxBITMAP_TYPE_MACCURSOR = wxc.wxBITMAP_TYPE_MACCURSOR +wxBITMAP_TYPE_MACCURSOR_RESOURCE = wxc.wxBITMAP_TYPE_MACCURSOR_RESOURCE +wxBITMAP_TYPE_ANY = wxc.wxBITMAP_TYPE_ANY wxCURSOR_NONE = wxc.wxCURSOR_NONE wxCURSOR_ARROW = wxc.wxCURSOR_ARROW wxCURSOR_BULLSEYE = wxc.wxCURSOR_BULLSEYE @@ -615,6 +630,9 @@ wxCURSOR_SPRAYCAN = wxc.wxCURSOR_SPRAYCAN wxCURSOR_WAIT = wxc.wxCURSOR_WAIT wxCURSOR_WATCH = wxc.wxCURSOR_WATCH wxCURSOR_BLANK = wxc.wxCURSOR_BLANK +wxCURSOR_DEFAULT = wxc.wxCURSOR_DEFAULT +wxCURSOR_ARROWWAIT = wxc.wxCURSOR_ARROWWAIT +wxCURSOR_MAX = wxc.wxCURSOR_MAX wxPAPER_NONE = wxc.wxPAPER_NONE wxPAPER_LETTER = wxc.wxPAPER_LETTER wxPAPER_LEGAL = wxc.wxPAPER_LEGAL @@ -713,6 +731,7 @@ wxEVT_COMMAND_TOOL_RCLICKED = wxc.wxEVT_COMMAND_TOOL_RCLICKED wxEVT_COMMAND_TOOL_ENTER = wxc.wxEVT_COMMAND_TOOL_ENTER wxEVT_SET_FOCUS = wxc.wxEVT_SET_FOCUS wxEVT_KILL_FOCUS = wxc.wxEVT_KILL_FOCUS +wxEVT_MOUSEWHEEL = wxc.wxEVT_MOUSEWHEEL wxEVT_LEFT_DOWN = wxc.wxEVT_LEFT_DOWN wxEVT_LEFT_UP = wxc.wxEVT_LEFT_UP wxEVT_MIDDLE_DOWN = wxc.wxEVT_MIDDLE_DOWN @@ -793,6 +812,8 @@ wxEVT_DRAW_ITEM = wxc.wxEVT_DRAW_ITEM wxEVT_MEASURE_ITEM = wxc.wxEVT_MEASURE_ITEM wxEVT_COMPARE_ITEM = wxc.wxEVT_COMPARE_ITEM wxEVT_INIT_DIALOG = wxc.wxEVT_INIT_DIALOG +wxEVT_HELP = wxc.wxEVT_HELP +wxEVT_DETAILED_HELP = wxc.wxEVT_DETAILED_HELP wxEVT_IDLE = wxc.wxEVT_IDLE wxEVT_UPDATE_UI = wxc.wxEVT_UPDATE_UI wxEVT_COMMAND_LEFT_CLICK = wxc.wxEVT_COMMAND_LEFT_CLICK @@ -843,38 +864,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) - - #---------------------------------------------------------------------- #---------------------------------------------------------------------- @@ -1015,6 +1004,8 @@ def EVT_LEAVE_WINDOW(win, func): def EVT_ENTER_WINDOW(win, func): win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) +def EVT_MOUSEWHEEL(win, func): + win.Connect(-1, -1, wxEVT_MOUSEWHEEL, func) # all mouse events def EVT_MOUSE_EVENTS(win, func): @@ -1289,6 +1280,9 @@ def EVT_TREE_BEGIN_DRAG(win, id, func): def EVT_TREE_BEGIN_RDRAG(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func) +def EVT_TREE_END_DRAG(win, id, func): + win.Connect(id, -1, wxEVT_COMMAND_TREE_END_DRAG, func) + def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func) @@ -1371,35 +1365,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) @@ -1491,10 +1456,10 @@ def EVT_END_PROCESS(eh, id, func): # wxJoyStick def EVT_JOY_DOWN(win, func): - win.Connect(-1, -1, wxEVT_JOY_DOWN, func) + win.Connect(-1, -1, wxEVT_JOY_BUTTON_DOWN, func) def EVT_JOY_UP(win, func): - win.Connect(-1, -1, wxEVT_JOY_UP, func) + win.Connect(-1, -1, wxEVT_JOY_BUTTON_UP, func) def EVT_JOY_MOVE(win, func): win.Connect(-1, -1, wxEVT_JOY_MOVE, func) @@ -1503,11 +1468,16 @@ def EVT_JOY_ZMOVE(win, func): win.Connect(-1, -1, wxEVT_JOY_ZMOVE, func) def EVT_JOYSTICK_EVENTS(win, func): - win.Connect(-1, -1, wxEVT_JOY_DOWN, func) - win.Connect(-1, -1, wxEVT_JOY_UP, func) + win.Connect(-1, -1, wxEVT_JOY_BUTTON_DOWN, func) + win.Connect(-1, -1, wxEVT_JOY_BUTTON_UP, func) win.Connect(-1, -1, wxEVT_JOY_MOVE, func) win.Connect(-1, -1, wxEVT_JOY_ZMOVE, func) + +def EVT_TOGGLEBUTTON(win, id, func): + win.Connect(id, -1, wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, func) + + #---------------------------------------------------------------------- class wxTimer(wxPyTimer): @@ -1520,17 +1490,9 @@ class wxTimer(wxPyTimer): self.SetOwner(evtHandler, id) #---------------------------------------------------------------------- -# Some wxWin methods can take "NULL" as parameters, but the shadow classes -# expect an object with the SWIG pointer as a 'this' member. This class -# and instance fools the shadow into passing the NULL pointer. - -## NOTE: This is not needed anymore as None can be passed instead and -# will be interpreted as NULL. - -class _NullObj: - this = 'NULL' # SWIG converts this to (void*)0 -NULL = _NullObj() +NULL = None # For backwards compatibility only. You should really be + # using None now. #---------------------------------------------------------------------- @@ -1539,10 +1501,6 @@ NULL = _NullObj() wxColor = wxColour wxNamedColor = wxNamedColour -# aliases so that C++ documentation applies: -#wxDefaultPosition = wxPyDefaultPosition -#wxDefaultSize = wxPyDefaultSize - # backwards compatibility wxNoRefBitmap = wxBitmap @@ -1571,40 +1529,50 @@ wxPyDefaultSize = wxDefaultSize # def wxPyTypeCast(obj, typeStr): + if obj is None: + return None + theClass = globals()[typeStr+"Ptr"] + typeStr = __wxPyPtrTypeMap.get(typeStr, typeStr) if hasattr(obj, "this"): + if obj.__class__ is theClass: # if already the right type then just return it + return obj newPtr = ptrcast(obj.this, typeStr+"_p") else: newPtr = ptrcast(obj, typeStr+"_p") - theClass = globals()[typeStr+"Ptr"] theObj = theClass(newPtr) if hasattr(obj, "this"): theObj.thisown = obj.thisown 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 at the end of this function. + locker = wxMutexGuiLocker() + if not self.frame: - self.frame = wxFrame(self.parent, -1, self.title) + self.frame = wxFrame(self.parent, -1, self.title, + style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE) self.text = wxTextCtrl(self.frame, -1, "", style = wxTE_MULTILINE|wxTE_READONLY) self.frame.SetSize(wxSize(450, 300)) @@ -1612,13 +1580,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__') @@ -1651,7 +1617,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) @@ -1665,18 +1630,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 @@ -1708,7 +1673,6 @@ class __wxPyCleanup: self.cleanup() __cleanMeUp = __wxPyCleanup() -#---------------------------------------------------------------------------- - - +#---------------------------------------------------------------------------- +#----------------------------------------------------------------------------