X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e4a197e4c60e461b8068b0619692ea083e30b8b..0c8392cac2d36d0d211432e71d3b24d3d93c22db:/wxPython/src/controls2.i?ds=inline diff --git a/wxPython/src/controls2.i b/wxPython/src/controls2.i index 323166e3a8..f88d140f45 100644 --- a/wxPython/src/controls2.i +++ b/wxPython/src/controls2.i @@ -21,6 +21,8 @@ #include #include #include + +#include "pytree.h" %} //---------------------------------------------------------------------- @@ -454,7 +456,7 @@ public: } // The OOR typemaps don't know what to do with the %new, so fix it up. %pragma(python) addtoclass = " def GetColumn(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetColumn,(self,) + _args, _kwargs) + val = controls2c.wxListCtrl_GetColumn(self, *_args, **_kwargs) if val is not None: val.thisown = 1 return val " @@ -493,7 +495,7 @@ public: } // The OOR typemaps don't know what to do with the %new, so fix it up. %pragma(python) addtoclass = " def GetItem(self, *_args, **_kwargs): - val = apply(controls2c.wxListCtrl_GetItem,(self,) + _args, _kwargs) + val = controls2c.wxListCtrl_GetItem(self, *_args, **_kwargs) if val is not None: val.thisown = 1 return val " @@ -838,31 +840,34 @@ public: }; -//---------------------------------------------------------------------- +//-------------------------------------------------------------------------------- +//-------------------------------------------------------------------------------- // wxTreeCtrl flags enum { wxTR_NO_BUTTONS, wxTR_HAS_BUTTONS, - wxTR_TWIST_BUTTONS, wxTR_NO_LINES, - wxTR_MAC_BUTTONS, - wxTR_AQUA_BUTTONS, + wxTR_LINES_AT_ROOT, wxTR_SINGLE, wxTR_MULTIPLE, wxTR_EXTENDED, - wxTR_FULL_ROW_HIGHLIGHT, + wxTR_HAS_VARIABLE_ROW_HEIGHT, wxTR_EDIT_LABELS, - wxTR_LINES_AT_ROOT, wxTR_HIDE_ROOT, wxTR_ROW_LINES, - wxTR_HAS_VARIABLE_ROW_HEIGHT, + wxTR_FULL_ROW_HIGHLIGHT, wxTR_DEFAULT_STYLE, + + wxTR_TWIST_BUTTONS, + wxTR_MAC_BUTTONS, + wxTR_AQUA_BUTTONS, }; + enum wxTreeItemIcon { wxTreeItemIcon_Normal, // not selected, not expanded @@ -912,6 +917,7 @@ enum { wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, wxEVT_COMMAND_TREE_END_DRAG, + wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, }; @@ -923,9 +929,6 @@ 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) @@ -970,9 +973,19 @@ def EVT_TREE_ITEM_RIGHT_CLICK(win, id, func): def EVT_TREE_ITEM_MIDDLE_CLICK(win, id, func): win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, func) + +def EVT_TREE_END_DRAG(win, id, func): + win.Connect(id, -1, wxEVT_COMMAND_TREE_END_DRAG, func) + +def EVT_TREE_STATE_IMAGE_CLICK(win, id, func): + win.Connect(id, -1, wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, func) + " +typedef void *wxTreeItemIdValue; + + class wxTreeItemAttr { public: @@ -1003,7 +1016,11 @@ public: wxTreeItemId(); ~wxTreeItemId(); bool IsOk(); - %pragma(python) addtoclass = "Ok = IsOk" + %pragma(python) addtoclass = " + Ok = IsOk + def __nonzero__(self): + return self.IsOk() +" %addmethods { int __cmp__(wxTreeItemId* other) { @@ -1015,42 +1032,8 @@ public: -%{ -class wxPyTreeItemData : public wxTreeItemData { -public: - wxPyTreeItemData(PyObject* obj = NULL) { - if (obj == NULL) - obj = Py_None; - Py_INCREF(obj); - m_obj = obj; - } - - ~wxPyTreeItemData() { - wxPyBeginBlockThreads(); - Py_DECREF(m_obj); - wxPyEndBlockThreads(); - } - PyObject* GetData() { - Py_INCREF(m_obj); - return m_obj; - } - - void SetData(PyObject* obj) { - wxPyBeginBlockThreads(); - Py_DECREF(m_obj); - wxPyEndBlockThreads(); - m_obj = obj; - Py_INCREF(obj); - } - - PyObject* m_obj; -}; -%} - - - -%name(wxTreeItemData) class wxPyTreeItemData : public wxObject { +%name(wxTreeItemData) class wxPyTreeItemData { public: wxPyTreeItemData(PyObject* obj = NULL); @@ -1067,14 +1050,34 @@ class wxTreeEvent : public wxNotifyEvent { public: wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - wxTreeItemId GetItem(); - wxTreeItemId GetOldItem(); - wxPoint GetPoint(); - const wxKeyEvent& GetKeyEvent(); - int GetKeyCode(); - %pragma(python) addtoclass = "GetCode = GetKeyCode" - const wxString& GetLabel(); + // get the item on which the operation was performed or the newly + // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events + wxTreeItemId GetItem() const; + void SetItem(const wxTreeItemId& item); + + // for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events, get the previously + // selected item + wxTreeItemId GetOldItem() const; + void SetOldItem(const wxTreeItemId& item); + + // the point where the mouse was when the drag operation started (for + // wxEVT_COMMAND_TREE_BEGIN_(R)DRAG events only) or click position + wxPoint GetPoint() const; + void SetPoint(const wxPoint& pt); + + // keyboard data (for wxEVT_COMMAND_TREE_KEY_DOWN only) + const wxKeyEvent& GetKeyEvent() const; + int GetKeyCode() const; + void SetKeyEvent(const wxKeyEvent& evt); + + // label (for EVT_TREE_{BEGIN|END}_LABEL_EDIT only) + const wxString& GetLabel() const; + void SetLabel(const wxString& label); + + // edit cancel flag (for EVT_TREE_{BEGIN|END}_LABEL_EDIT only) bool IsEditCancelled() const; + void SetEditCanceled(bool editCancelled); + }; @@ -1134,19 +1137,19 @@ IMPLEMENT_ABSTRACT_CLASS(wxPyTreeCtrl, wxTreeCtrl); %name(wxTreeCtrl)class wxPyTreeCtrl : public wxControl { public: wxPyTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxPy_TreeCtrlNameStr); + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTR_DEFAULT_STYLE, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxPy_TreeCtrlNameStr); %name(wxPreTreeCtrl)wxPyTreeCtrl(); bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxPy_TreeCtrlNameStr); + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTR_DEFAULT_STYLE, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxPy_TreeCtrlNameStr); void _setCallbackInfo(PyObject* self, PyObject* _class); %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxTreeCtrl)" @@ -1340,7 +1343,7 @@ public: if (self->GetBoundingRect(item, rect, textOnly)) { wxPyBeginBlockThreads(); wxRect* r = new wxRect(rect); - PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect")); + PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect"), 1); wxPyEndBlockThreads(); return val; } @@ -1355,17 +1358,17 @@ public: %pragma(python) addtoclass = " # Redefine some methods that SWIG gets a bit confused on... def GetFirstChild(self, *_args, **_kwargs): - val1,val2 = apply(controls2c.wxTreeCtrl_GetFirstChild,(self,) + _args, _kwargs) + val1,val2 = controls2c.wxTreeCtrl_GetFirstChild(self, *_args, **_kwargs) val1 = wxTreeItemIdPtr(val1) val1.thisown = 1 return (val1,val2) def GetNextChild(self, *_args, **_kwargs): - val1,val2 = apply(controls2c.wxTreeCtrl_GetNextChild,(self,) + _args, _kwargs) + val1,val2 = controls2c.wxTreeCtrl_GetNextChild(self, *_args, **_kwargs) val1 = wxTreeItemIdPtr(val1) val1.thisown = 1 return (val1,val2) def HitTest(self, *_args, **_kwargs): - val1, val2 = apply(controls2c.wxTreeCtrl_HitTest,(self,) + _args, _kwargs) + val1, val2 = controls2c.wxTreeCtrl_HitTest(self, *_args, **_kwargs) val1 = wxTreeItemIdPtr(val1) val1.thisown = 1 return (val1,val2) @@ -1458,6 +1461,9 @@ public: wxTreeCtrl* GetTreeCtrl() const; wxDirFilterListCtrl* GetFilterListCtrl() const; + // Collapse & expand the tree, thus re-creating it from scratch: + void ReCreateTree(); + // //// Helpers // void SetupSections(); // // Parse the filter into an array of filters and an array of descriptions @@ -1492,6 +1498,30 @@ public: }; +class wxFileIconsTable +{ +public: + wxFileIconsTable(); + ~wxFileIconsTable(); + + enum iconId_Type + { + folder, + folder_open, + computer, + drive, + cdrom, + floppy, + removeable, + file, + executable + }; + + int GetIconID(const wxString& extension, const wxString& mime = wxEmptyString); + wxImageList *GetSmallImageList(); +}; + + //---------------------------------------------------------------------- //----------------------------------------------------------------------