bool IsOk() const;
%extend {
- bool operator==(const wxTreeItemId* other) {
- if (!other) return False;
- return *self == *other;
- }
-
- bool operator!=(const wxTreeItemId* other) {
- if (!other) return True;
- return *self != *other;
- }
+ bool __eq__(const wxTreeItemId* other) { return other ? (*self == *other) : False; }
+ bool __ne__(const wxTreeItemId* other) { return other ? (*self != *other) : True; }
}
void* m_pItem;
const wxTreeItemId& item2) {
int rval = 0;
bool found;
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "OnCompareItems"))) {
PyObject *o1 = wxPyConstructObject((void*)&item1, wxT("wxTreeItemId"), False);
PyObject *o2 = wxPyConstructObject((void*)&item2, wxT("wxTreeItemId"), False);
Py_DECREF(o1);
Py_DECREF(o2);
}
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
if (! found)
rval = wxTreeCtrl::OnCompareItems(item1, item2);
return rval;
%name(TreeCtrl)class wxPyTreeCtrl : public wxControl {
public:
- %addtofunc wxPyTreeCtrl "self._setOORInfo(self);self._setCallbackInfo(self, TreeCtrl)"
- %addtofunc wxPyTreeCtrl() ""
+ %pythonAppend wxPyTreeCtrl "self._setOORInfo(self);self._setCallbackInfo(self, TreeCtrl)"
+ %pythonAppend wxPyTreeCtrl() ""
wxPyTreeCtrl(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
// NB: this operation is expensive and can take a long time for a
// control with a lot of items (~ O(number of items)).
PyObject* GetSelections() {
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
PyObject* rval = PyList_New(0);
wxArrayTreeItemIds array;
size_t num, x;
PyObject* item = wxPyConstructObject((void*)tii, wxT("wxTreeItemId"), True);
PyList_Append(rval, item);
}
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return rval;
}
}
PyObject* GetFirstChild(const wxTreeItemId& item) {
void* cookie = 0;
wxTreeItemId* ritem = new wxTreeItemId(self->GetFirstChild(item, cookie));
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), True));
PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void")));
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return tup;
}
// passed to GetNextChild in order to continue the search.
PyObject* GetNextChild(const wxTreeItemId& item, void* cookie) {
wxTreeItemId* ritem = new wxTreeItemId(self->GetNextChild(item, cookie));
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), True));
PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void")));
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return tup;
}
}
// remove the selection from currently selected item (if any)
void Unselect();
+ // remove the selection from the given one (multiselect mode only)
+ void UnselectItem(const wxTreeItemId& item);
+
// unselect all items (only makes sense for multiple selection control)
void UnselectAll();
// select this item
- void SelectItem(const wxTreeItemId& item);
+ void SelectItem(const wxTreeItemId& item, bool select = True);
+
+ // toggle the item selection
+ void ToggleItemSelection(const wxTreeItemId& item);
+
// make sure this item is visible (expanding the parent item and/or
// scrolling to this item if necessary)
void EnsureVisible(const wxTreeItemId& item);
DocDeclAStr(
wxTreeItemId, HitTest(const wxPoint& point, int& OUTPUT),
"HitTest(Point point) -> (item, where)",
- "Determine which item (if any) belongs the given point. The\n"
- "coordinates specified are relative to the client area of tree ctrl\n"
- "and the where return value is set to a bitmask of wxTREE_HITTEST_xxx\n"
- "constants.\n");
+ "Determine which item (if any) belongs the given point. The coordinates
+specified are relative to the client area of tree ctrl and the where return
+value is set to a bitmask of wxTREE_HITTEST_xxx constants.
+", "");
%extend {
PyObject* GetBoundingRect(const wxTreeItemId& item, bool textOnly = False) {
wxRect rect;
if (self->GetBoundingRect(item, rect, textOnly)) {
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
wxRect* r = new wxRect(rect);
PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect"), True);
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return val;
}
else
}
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
};