]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/_extras.py
Removed minor differences between wxMSW and wxGTK
[wxWidgets.git] / utils / wxPython / src / _extras.py
index 21bde533fb0b4dc106e4f8f5bd5093389987b00f..2e8d7d96a82a3468bdf46312f476729ccf198a3e 100644 (file)
@@ -45,6 +45,15 @@ def _StdFrameCallbacks(win):
     _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 _StdOnScrollCallback(win):
     try:    cb = getattr(win, "OnScroll")
     except: pass
@@ -330,7 +339,7 @@ def EVT_COMMAND_ENTER(win, id, func):
     win.Connect(id, -1, wxEVT_COMMAND_ENTER, func)
 
 
-
+# wxNotebook events
 def EVT_NOTEBOOK_PAGE_CHANGED(win, id, func):
     win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, func)
 
@@ -338,335 +347,124 @@ def EVT_NOTEBOOK_PAGE_CHANGING(win, id, func):
     win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, func)
 
 
+# wxTreeCtrl events
+def EVT_TREE_BEGIN_DRAG(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_DRAG, func)
 
-#----------------------------------------------------------------------
-#----------------------------------------------------------------------
-# We need to add to the shadow classes a bit to facilitate callbacks via
-# virtual functions.  These classes replace the shadows generated by SWIG.
-
-class wxWindow(wxWindowPtr):
-    def __init__(self,arg0,arg1,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(windowsc.new_wxWindow,(arg0.this,arg1,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-
-class wxFrame(wxFramePtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(windowsc.new_wxFrame,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdFrameCallbacks(self)
-
-
-class wxMiniFrame(wxMiniFramePtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(windowsc.new_wxMiniFrame,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdFrameCallbacks(self)
-
-
-class wxPanel(wxPanelPtr):
-    def __init__(self,arg0,arg1,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(windowsc.new_wxPanel,(arg0.this,arg1,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-
-class wxDialog(wxDialogPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(windowsc.new_wxDialog,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-        _checkForCallback(self, "OnOk",     wxEVT_COMMAND_BUTTON_CLICKED,   wxID_OK)
-        _checkForCallback(self, "OnApply",  wxEVT_COMMAND_BUTTON_CLICKED,   wxID_APPLY)
-        _checkForCallback(self, "OnCancel", wxEVT_COMMAND_BUTTON_CLICKED,   wxID_CANCEL)
-        _checkForCallback(self, "OnCloseWindow", wxEVT_CLOSE_WINDOW)
-        _checkForCallback(self, "OnCharHook",    wxEVT_CHAR_HOOK)
-
-
-class wxScrolledWindow(wxScrolledWindowPtr):
-    def __init__(self,arg0,*args) :
-        argl = map(None,args)
-        try: argl[1] = argl[1].this
-        except: pass
-        try: argl[2] = argl[2].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(windowsc.new_wxScrolledWindow,(arg0.this,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-        _StdOnScrollCallback(self)
-
-
-
-class wxMDIParentFrame(wxMDIParentFramePtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(mdic.new_wxMDIParentFrame,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdFrameCallbacks(self)
-
-
-class wxMDIChildFrame(wxMDIChildFramePtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(mdic.new_wxMDIChildFrame,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdFrameCallbacks(self)
-
-
-class wxMDIClientWindow(wxMDIClientWindowPtr):
-    def __init__(self,arg0,*args) :
-        self.this = apply(mdic.new_wxMDIClientWindow,(arg0.this,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-        _StdOnScrollCallback(self)
-
-
-
-class wxControl(wxControlPtr):
-    def __init__(self,this):
-        self.this = this
-        _StdWindowCallbacks(self)
-
-class wxButton(wxButtonPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxButton,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxBitmapButton(wxBitmapButtonPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxBitmapButton,(arg0.this,arg1,arg2.this,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxCheckBox(wxCheckBoxPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxCheckBox,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-
-
-class wxChoice(wxChoicePtr):
-    def __init__(self,arg0,arg1,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxChoice,(arg0.this,arg1,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxComboBox(wxComboBoxPtr):
-    def __init__(self,arg0,arg1,*args) :
-        argl = map(None,args)
-        try: argl[1] = argl[1].this
-        except: pass
-        try: argl[2] = argl[2].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxComboBox,(arg0.this,arg1,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxGauge(wxGaugePtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxGauge,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxStaticBox(wxStaticBoxPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxStaticBox,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxStaticText(wxStaticTextPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxStaticText,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxListBox(wxListBoxPtr):
-    def __init__(self,arg0,arg1,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxListBox,(arg0.this,arg1,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxTextCtrl(wxTextCtrlPtr):
-    def __init__(self,arg0,arg1,*args) :
-        argl = map(None,args)
-        try: argl[1] = argl[1].this
-        except: pass
-        try: argl[2] = argl[2].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxTextCtrl,(arg0.this,arg1,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxScrollBar(wxScrollBarPtr):
-    def __init__(self,arg0,*args) :
-        argl = map(None,args)
-        try: argl[1] = argl[1].this
-        except: pass
-        try: argl[2] = argl[2].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxScrollBar,(arg0.this,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxSpinButton(wxSpinButtonPtr):
-    def __init__(self,arg0,*args) :
-        argl = map(None,args)
-        try: argl[1] = argl[1].this
-        except: pass
-        try: argl[2] = argl[2].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxSpinButton,(arg0.this,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxStaticBitmap(wxStaticBitmapPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxStaticBitmap,(arg0.this,arg1,arg2.this,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxRadioBox(wxRadioBoxPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxRadioBox,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxRadioButton(wxRadioButtonPtr):
-    def __init__(self,arg0,arg1,arg2,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxRadioButton,(arg0.this,arg1,arg2,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
-
-class wxSlider(wxSliderPtr):
-    def __init__(self,arg0,arg1,arg2,arg3,arg4,*args) :
-        argl = map(None,args)
-        try: argl[0] = argl[0].this
-        except: pass
-        try: argl[1] = argl[1].this
-        except: pass
-        args = tuple(argl)
-        self.this = apply(controlsc.new_wxSlider,(arg0.this,arg1,arg2,arg3,arg4,)+args)
-        self.thisown = 1
-        _StdWindowCallbacks(self)
+def EVT_TREE_BEGIN_RDRAG(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func)
+
+def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func)
+
+def EVT_TREE_END_LABEL_EDIT(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_END_LABEL_EDIT, func)
+
+def EVT_TREE_GET_INFO(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_GET_INFO, func)
+
+def EVT_TREE_SET_INFO(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_SET_INFO, func)
+
+def EVT_TREE_ITEM_EXPANDED(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDED, func)
+
+def EVT_TREE_ITEM_EXPANDING(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDING, func)
+
+def EVT_TREE_ITEM_COLLAPSED(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSED, func)
+
+def EVT_TREE_ITEM_COLLAPSING(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSING, func)
+
+def EVT_TREE_SEL_CHANGED(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGED, func)
+
+def EVT_TREE_SEL_CHANGING(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGING, func)
+
+def EVT_TREE_KEY_DOWN(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_KEY_DOWN, func)
+
+def EVT_TREE_DELETE_ITEM(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_TREE_DELETE_ITEM, func)
+
+
+# wxSpinButton
+def EVT_SPIN_UP(win, id, func):
+    win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func)
+
+def EVT_SPIN_DOWN(win, id, func):
+    win.Connect(id, -1,wxEVT_SCROLL_LINEDOWN, func)
+
+def EVT_SPIN(win, id, func):
+    win.Connect(id, -1, wxEVT_SCROLL_TOP,       func)
+    win.Connect(id, -1, wxEVT_SCROLL_BOTTOM,    func)
+    win.Connect(id, -1, wxEVT_SCROLL_LINEUP,    func)
+    win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN,  func)
+    win.Connect(id, -1, wxEVT_SCROLL_PAGEUP,    func)
+    win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN,  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)
+
+
+# wxGrid
+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)
+
+
+
+
+#----------------------------------------------------------------------
 
 class wxTimer(wxPyTimer):
     def __init__(self):
@@ -687,7 +485,7 @@ NULL = NullObj()
 #----------------------------------------------------------------------
 # aliases
 
-wxColor = wxColour
+wxColor      = wxColour
 wxNamedColor = wxNamedColour
 
 wxPyDefaultPosition.Set(-1,-1)
@@ -716,7 +514,7 @@ wxPyDefaultSize.Set(-1,-1)
 ##         self.isShown = false
 
 
-_defRedirect = (wxPlatform == '__WIN32__')
+_defRedirect = (wxPlatform == '__WXMSW__')
 
 #----------------------------------------------------------------------
 # The main application class.  Derive from this and implement an OnInit
@@ -760,6 +558,31 @@ class wxApp(wxPyApp):
 #----------------------------------------------------------------------------
 #
 # $Log$
+# Revision 1.7  1998/11/25 08:45:21  RD
+# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon
+# Added events for wxGrid
+# Other various fixes and additions
+#
+# Revision 1.6  1998/11/16 00:00:52  RD
+# Generic treectrl for wxPython/GTK compiles...
+#
+# Revision 1.5  1998/10/20 07:38:02  RD
+# bug fix
+#
+# Revision 1.4  1998/10/20 06:43:54  RD
+# New wxTreeCtrl wrappers (untested)
+# some changes in helpers
+# etc.
+#
+# Revision 1.3  1998/10/02 06:40:33  RD
+#
+# Version 0.4 of wxPython for MSW.
+#
+# Revision 1.2  1998/08/18 19:48:12  RD
+# more wxGTK compatibility things.
+#
+# It builds now but there are serious runtime problems...
+#
 # Revision 1.1  1998/08/09 08:25:49  RD
 # Initial version
 #