wxTR_DEFAULT_STYLE,
wxTR_TWIST_BUTTONS,
- wxTR_MAC_BUTTONS,
- wxTR_AQUA_BUTTONS,
};
+%pythoncode {
+ %# obsolete
+ TR_MAC_BUTTONS = 0
+ wxTR_AQUA_BUTTONS = 0
+}
enum wxTreeItemIcon
{
class wxPyTreeItemData {
public:
wxPyTreeItemData(PyObject* obj = NULL);
-
+ ~wxPyTreeItemData();
+
PyObject* GetData();
void SetData(PyObject* obj);
const wxTreeItemId& GetId();
void SetId(const wxTreeItemId& id);
+ %pythonPrepend Destroy "args[0].this.own(False)"
%extend { void Destroy() { delete self; } }
+
+ %property(Data, GetData, SetData, doc="See `GetData` and `SetData`");
+ %property(Id, GetId, SetId, doc="See `GetId` and `SetId`");
};
wxTreeItemAttr(const wxColour& colText = wxNullColour,
const wxColour& colBack = wxNullColour,
const wxFont& font = wxNullFont);
-
+ ~wxTreeItemAttr();
+
// setters
void SetTextColour(const wxColour& colText);
void SetBackgroundColour(const wxColour& colBack);
wxColour GetBackgroundColour();
wxFont GetFont();
+ %pythonAppend Destroy "args[0].thisown = 0"
%extend { void Destroy() { delete self; } }
};
%constant wxEventType wxEVT_COMMAND_TREE_ITEM_MENU;
%pythoncode {
-
EVT_TREE_BEGIN_DRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_DRAG , 1)
EVT_TREE_BEGIN_RDRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_RDRAG , 1)
EVT_TREE_BEGIN_LABEL_EDIT = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT , 1)
EVT_TREE_END_DRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_END_DRAG , 1)
EVT_TREE_STATE_IMAGE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 1)
EVT_TREE_ITEM_GETTOOLTIP = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 1)
-EVT_COMMAND_TREE_ITEM_MENU = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MENU, 1)
+EVT_TREE_ITEM_MENU = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MENU, 1)
}
+%{
+ static wxTreeItemId wxNullTreeItemId;
+%}
+wxTreeItemId wxNullTreeItemId;
+
// wxTreeEvent is a special class for all events associated with tree controls
//
// descriptions below
class wxTreeEvent : public wxNotifyEvent {
public:
+ %nokwargs wxTreeEvent;
wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+ wxTreeEvent(wxEventType commandType,
+ wxPyTreeCtrl* tree,
+ wxTreeItemId& item = wxNullTreeItemId);
// get the item on which the operation was performed or the newly
// selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events
// Set the tooltip for the item (for EVT_TREE_ITEM_GETTOOLTIP events)
void SetToolTip(const wxString& toolTip);
+ wxString GetToolTip();
+
+ %property(Item, GetItem, SetItem, doc="See `GetItem` and `SetItem`");
+ %property(KeyCode, GetKeyCode, doc="See `GetKeyCode`");
+ %property(KeyEvent, GetKeyEvent, SetKeyEvent, doc="See `GetKeyEvent` and `SetKeyEvent`");
+ %property(Label, GetLabel, SetLabel, doc="See `GetLabel` and `SetLabel`");
+ %property(OldItem, GetOldItem, SetOldItem, doc="See `GetOldItem` and `SetOldItem`");
+ %property(Point, GetPoint, SetPoint, doc="See `GetPoint` and `SetPoint`");
+ %property(ToolTip, GetToolTip, SetToolTip, doc="See `GetToolTip` and `SetToolTip`");
+ %property(EditCancelled, IsEditCancelled, SetEditCanceled, doc="See `IsEditCancelled` and `SetEditCanceled`");
};
//---------------------------------------------------------------------------
%{ // C++ version of Python aware wxTreeCtrl
class wxPyTreeCtrl : public wxTreeCtrl {
- DECLARE_ABSTRACT_CLASS(wxPyTreeCtrl);
+ DECLARE_ABSTRACT_CLASS(wxPyTreeCtrl)
public:
wxPyTreeCtrl() : wxTreeCtrl() {}
wxPyTreeCtrl(wxWindow *parent, wxWindowID id,
const wxTreeItemId& item2) {
int rval = 0;
bool found;
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t 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);
%rename(TreeCtrl) wxPyTreeCtrl;
class wxPyTreeCtrl : public wxControl {
public:
- %pythonAppend wxPyTreeCtrl "self._setOORInfo(self);self._setCallbackInfo(self, TreeCtrl)"
+ %pythonAppend wxPyTreeCtrl "self._setOORInfo(self);" setCallbackInfo(TreeCtrl)
%pythonAppend wxPyTreeCtrl() ""
%typemap(out) wxPyTreeCtrl*; // turn off this typemap
// get the total number of items in the control
- size_t GetCount() const;
+ unsigned int GetCount() const;
// indent is the number of pixels the children are indented relative to
// the parents position. SetIndent() also redraws the control
void SetImageList(wxImageList *imageList);
void SetStateImageList(wxImageList *imageList);
- %apply SWIGTYPE *DISOWN { wxImageList *imageList };
+ %disownarg( wxImageList *imageList );
void AssignImageList(wxImageList *imageList);
void AssignStateImageList(wxImageList *imageList);
- %clear wxImageList *imageList;
+ %cleardisown( wxImageList *imageList );
// retrieve items label
%extend {
// associate a wxPyTreeItemData with the tree item
+ %disownarg( wxPyTreeItemData* data );
void SetItemData(const wxTreeItemId& item, wxPyTreeItemData* data) {
data->SetId(item); // set the id
self->SetItemData(item, data);
}
+ %cleardisown( wxPyTreeItemData* data );
// associate a Python object with the tree item
void SetItemPyData(const wxTreeItemId& item, PyObject* obj) {
// the item will be shown in bold
void SetItemBold(const wxTreeItemId& item, bool bold = true);
-#ifdef __WXMSW__
// the item will be shown with a drop highlight
void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = true);
-#endif
// set the items text colour
void SetItemTextColour(const wxTreeItemId& item, const wxColour& col);
// is item text in bold font?
bool IsBold(const wxTreeItemId& item) const;
+ // is the control empty?
+ bool IsEmpty() const;
+
// if 'recursively' is False, only immediate children count, otherwise
// the returned number is the number of all items in this branch
// 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() {
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
PyObject* rval = PyList_New(0);
wxArrayTreeItemIds array;
size_t num, x;
PyObject* GetFirstChild(const wxTreeItemId& item) {
void* cookie = 0;
wxTreeItemId* ritem = new wxTreeItemId(self->GetFirstChild(item, cookie));
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t 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")));
// passed to GetNextChild in order to continue the search.
PyObject* GetNextChild(const wxTreeItemId& item, void* cookie) {
wxTreeItemId* ritem = new wxTreeItemId(self->GetNextChild(item, cookie));
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t 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")));
wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const;
+ %disownarg( wxPyTreeItemData* data );
// add the root node to the tree
wxTreeItemId AddRoot(const wxString& text,
wxPyTreeItemData *data = NULL);
-
+ %cleardisown( wxPyTreeItemData* data );
+
// delete this item and associated data if any
void Delete(const wxTreeItemId& item);
// expand this item
void Expand(const wxTreeItemId& item);
+ // expand the item and all its childs and thats childs
+ void ExpandAllChildren(const wxTreeItemId& item);
+
+ // expand all items
+ void ExpandAll();
+
// collapse the item without removing its children
void Collapse(const wxTreeItemId& item);
+ // collapse the item and all its childs and thats childs
+ void CollapseAllChildren(const wxTreeItemId& item);
+
+ // collapse all items
+ void CollapseAll();
+
// collapse the item and remove all children
void CollapseAndReset(const wxTreeItemId& item);
PyObject* GetBoundingRect(const wxTreeItemId& item, bool textOnly = false) {
wxRect rect;
if (self->GetBoundingRect(item, rect, textOnly)) {
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
wxRect* r = new wxRect(rect);
PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect"), true);
wxPyEndBlockThreads(blocked);
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+ void SetQuickBestSize(bool q);
+ bool GetQuickBestSize() const;
+
+ %property(Count, GetCount, doc="See `GetCount`");
+ %property(EditControl, GetEditControl, doc="See `GetEditControl`");
+ %property(FirstVisibleItem, GetFirstVisibleItem, doc="See `GetFirstVisibleItem`");
+ %property(ImageList, GetImageList, SetImageList, doc="See `GetImageList` and `SetImageList`");
+ %property(Indent, GetIndent, SetIndent, doc="See `GetIndent` and `SetIndent`");
+ %property(QuickBestSize, GetQuickBestSize, SetQuickBestSize, doc="See `GetQuickBestSize` and `SetQuickBestSize`");
+ %property(RootItem, GetRootItem, doc="See `GetRootItem`");
+ %property(Selection, GetSelection, doc="See `GetSelection`");
+ %property(Selections, GetSelections, doc="See `GetSelections`");
+ %property(Spacing, GetSpacing, SetSpacing, doc="See `GetSpacing` and `SetSpacing`");
+ %property(StateImageList, GetStateImageList, SetStateImageList, doc="See `GetStateImageList` and `SetStateImageList`");
};