X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bb0054cda81e7a6a6e1f33f4b47e46f529110f14..6999b0d8e9740918ed66bff0ee6fe147b6367a97:/utils/wxPython/src/controls2.i?ds=inline diff --git a/utils/wxPython/src/controls2.i b/utils/wxPython/src/controls2.i index 3b4527f54c..8bae5da0dd 100644 --- a/utils/wxPython/src/controls2.i +++ b/utils/wxPython/src/controls2.i @@ -14,6 +14,9 @@ %{ #include "helpers.h" +#ifdef __WXMSW__ +#include +#endif #include #include %} @@ -143,6 +146,8 @@ public: wxTextCtrl* EditLabel(long item); bool EndEditLabel(bool cancel); wxTextCtrl* GetEditControl(); +#else + void EditLabel(long item); #endif bool EnsureVisible(long item); long FindItem(long start, const wxString& str, bool partial = FALSE); @@ -156,9 +161,10 @@ public: long GetItemData(long item); %addmethods { - %new wxListItem* GetItem(long itemId) { + %new wxListItem* GetItem(long itemId, int col=0) { wxListItem* info = new wxListItem; info->m_itemId = itemId; + info->m_col = col; self->GetItem(*info); return info; } @@ -223,6 +229,15 @@ public: //---------------------------------------------------------------------- +enum wxTreeItemIcon +{ + wxTreeItemIcon_Normal, // not selected, not expanded + wxTreeItemIcon_Selected, // selected, not expanded + wxTreeItemIcon_Expanded, // not selected, expanded + wxTreeItemIcon_SelectedExpanded, // selected, expanded + wxTreeItemIcon_Max +}; + class wxTreeItemId { public: @@ -245,13 +260,9 @@ public: } ~wxPyTreeItemData() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(wxPyEventThreadState); -#endif + bool doSave = wxPyRestoreThread(); Py_DECREF(m_obj); -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif + wxPySaveThread(doSave); } PyObject* GetData() { @@ -284,13 +295,13 @@ public: -class wxTreeEvent : public wxCommandEvent { +class wxTreeEvent : public wxNotifyEvent { public: wxTreeItemId GetItem(); wxTreeItemId GetOldItem(); wxPoint GetPoint(); int GetCode(); - void Veto(); + const wxString& GetLabel(); }; @@ -315,15 +326,20 @@ public: void SetIndent(unsigned int indent); wxImageList *GetImageList(); wxImageList *GetStateImageList(); - void SetImageList(wxImageList *imageList); + void SetImageList(wxImageList *imageList/*, int which = wxIMAGE_LIST_NORMAL*/); void SetStateImageList(wxImageList *imageList); + unsigned int GetSpacing(); + void SetSpacing(unsigned int spacing); + wxString GetItemText(const wxTreeItemId& item); - int GetItemImage(const wxTreeItemId& item); + int GetItemImage(const wxTreeItemId& item, + wxTreeItemIcon which = wxTreeItemIcon_Normal); int GetItemSelectedImage(const wxTreeItemId& item); void SetItemText(const wxTreeItemId& item, const wxString& text); - void SetItemImage(const wxTreeItemId& item, int image); + void SetItemImage(const wxTreeItemId& item, int image, + wxTreeItemIcon which = wxTreeItemIcon_Normal); void SetItemSelectedImage(const wxTreeItemId& item, int image); void SetItemHasChildren(const wxTreeItemId& item, bool hasChildren = TRUE); @@ -372,7 +388,24 @@ public: wxTreeItemId GetRootItem(); wxTreeItemId GetSelection(); - wxTreeItemId GetParent(const wxTreeItemId& item); + %name(GetItemParent) wxTreeItemId GetParent(const wxTreeItemId& item); + //size_t GetSelections(wxArrayTreeItemIds& selection); + %addmethods { + PyObject* GetSelections() { + PyObject* rval = PyList_New(0); + wxArrayTreeItemIds array; + size_t num, x; + num = self->GetSelections(array); + for (x=0; x < num; x++) { + PyObject* item = wxPyConstructObject((void*)&array.Item(x), + "wxTreeItemId"); + PyList_Append(rval, item); + } + return rval; + } + } + + size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); @@ -383,6 +416,8 @@ public: wxTreeItemId GetFirstVisibleItem(); wxTreeItemId GetNextVisible(const wxTreeItemId& item); wxTreeItemId GetPrevVisible(const wxTreeItemId& item); + wxTreeItemId GetLastChild(const wxTreeItemId& item); + wxTreeItemId AddRoot(const wxString& text, @@ -412,24 +447,41 @@ public: void Toggle(const wxTreeItemId& item); void Unselect(); + void UnselectAll(); void SelectItem(const wxTreeItemId& item); void EnsureVisible(const wxTreeItemId& item); void ScrollTo(const wxTreeItemId& item); - +#ifdef __WXMSW__ wxTextCtrl* EditLabel(const wxTreeItemId& item); - // **** figure out how to do this - // wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); wxTextCtrl* GetEditControl(); - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); + void EndEditLabel(const wxTreeItemId& item, int discardChanges = FALSE); +#else + void EditLabel(const wxTreeItemId& item); +#endif -// void SortChildren(const wxTreeItemId& item); - // **** And this too - // wxTreeItemCmpFunc *cmpFunction = NULL); + void SortChildren(const wxTreeItemId& item); - void SetItemBold(const wxTreeItemId& item, bool bold = TRUE); + void SetItemBold(const wxTreeItemId& item, int bold = TRUE); bool IsBold(const wxTreeItemId& item) const; wxTreeItemId HitTest(const wxPoint& point); +#ifdef __WXMSW__ + void SetItemDropHighlight(const wxTreeItemId& item, int highlight = TRUE); + + //bool GetBoundingRect(const wxTreeItemId& item, wxRect& rect, int textOnly = FALSE) + %addmethods { + PyObject* GetBoundingRect(const wxTreeItemId& item, int textOnly = FALSE) { + wxRect rect; + if (self->GetBoundingRect(item, rect, textOnly)) + return wxPyConstructObject((void*)&rect, "wxRect"); + else { + Py_INCREF(Py_None); + return Py_None; + } + } + } +#endif + %pragma(python) addtoclass = " # Redefine a couple methods that SWIG gets a bit confused on... def GetFirstChild(self,arg0,arg1):