]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/controls2.i
make wxArtProvider pure virtual (I was not so on
[wxWidgets.git] / wxPython / src / controls2.i
index ebbb299a32c89a295ac7195c54a8b815f042fee0..6b8b0c031dafbb498bba906c8efa197019e323da 100644 (file)
 
 
 //----------------------------------------------------------------------
 
 
 //----------------------------------------------------------------------
+%{
+    // Put some wx default wxChar* values into wxStrings.
+    const wxChar* wxListCtrlNameStr = _T("wxListCtrl");
+    DECLARE_DEF_STRING(ListCtrlNameStr);
+
+    const wxChar* wx_TreeCtrlNameStr = _T("wxTreeCtrl");
+    DECLARE_DEF_STRING(_TreeCtrlNameStr);
+    DECLARE_DEF_STRING(DirDialogDefaultFolderStr);
+
+    static const wxString wxPyEmptyString(wxT(""));
+%}
+
 //----------------------------------------------------------------------
 
 enum {
 //----------------------------------------------------------------------
 
 enum {
@@ -365,7 +377,7 @@ public:
                  const wxSize& size,
                  long style,
                  const wxValidator& validator,
                  const wxSize& size,
                  long style,
                  const wxValidator& validator,
-                 char* name) :
+                 const wxString& name) :
         wxListCtrl(parent, id, pos, size, style, validator, name) {}
 
     bool Create(wxWindow* parent, wxWindowID id,
         wxListCtrl(parent, id, pos, size, style, validator, name) {}
 
     bool Create(wxWindow* parent, wxWindowID id,
@@ -373,7 +385,7 @@ public:
                 const wxSize& size,
                 long style,
                 const wxValidator& validator,
                 const wxSize& size,
                 long style,
                 const wxValidator& validator,
-                char* name) {
+                const wxString& name) {
         return wxListCtrl::Create(parent, id, pos, size, style, validator, name);
     }
 
         return wxListCtrl::Create(parent, id, pos, size, style, validator, name);
     }
 
@@ -400,7 +412,7 @@ public:
                  const wxSize& size = wxDefaultSize,
                  long style = wxLC_ICON,
                  const wxValidator& validator = wxDefaultValidator,
                  const wxSize& size = wxDefaultSize,
                  long style = wxLC_ICON,
                  const wxValidator& validator = wxDefaultValidator,
-                 char* name = "listCtrl");
+                 const wxString& name = wxPyListCtrlNameStr);
     %name(wxPreListCtrl)wxPyListCtrl();
 
     bool Create(wxWindow* parent, wxWindowID id = -1,
     %name(wxPreListCtrl)wxPyListCtrl();
 
     bool Create(wxWindow* parent, wxWindowID id = -1,
@@ -408,7 +420,7 @@ public:
                  const wxSize& size = wxDefaultSize,
                  long style = wxLC_ICON,
                  const wxValidator& validator = wxDefaultValidator,
                  const wxSize& size = wxDefaultSize,
                  long style = wxLC_ICON,
                  const wxValidator& validator = wxDefaultValidator,
-                 char* name = "listCtrl");
+                 const wxString& name = wxPyListCtrlNameStr);
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxListCtrl)"
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxListCtrl)"
@@ -421,7 +433,22 @@ public:
     bool SetBackgroundColour(const wxColour& col);
 
     // Gets information about this column
     bool SetBackgroundColour(const wxColour& col);
 
     // Gets information about this column
-    bool GetColumn(int col, wxListItem& item) const;
+    // bool GetColumn(int col, wxListItem& item) const;
+    %addmethods {
+        %new wxListItem* GetColumn(int col) {
+            wxListItem item;
+            if (self->GetColumn(col, item))
+                return new wxListItem(item);
+            else
+                return NULL;
+        }
+    }  // 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_GetColumn,(self,) + _args, _kwargs)
+        if val is not None: val.thisown = 1
+        return val
+    "
 
     // Sets information about this column
     bool SetColumn(int col, wxListItem& item) ;
 
     // Sets information about this column
     bool SetColumn(int col, wxListItem& item) ;
@@ -686,6 +713,16 @@ public:
 
     def ClearColumnImage(self, col):
         self.SetColumnImage(col, -1)
 
     def ClearColumnImage(self, col):
         self.SetColumnImage(col, -1)
+
+    def Append(self, entry):
+        '''Append an item to the list control.  The entry parameter should be a
+           sequence with an item for each column'''
+        if len(entry):
+            pos = self.GetItemCount()
+            self.InsertStringItem(pos, str(entry[0]))
+            for i in range(1, len(entry)):
+                self.SetStringItem(pos, i, str(entry[i]))
+            return pos
     "
 };
 
     "
 };
 
@@ -722,7 +759,7 @@ public:
                 const wxSize& size = wxDefaultSize,
                 long style = wxLC_REPORT,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxSize& size = wxDefaultSize,
                 long style = wxLC_REPORT,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString &name = "listctrl" );
+                const wxString& name = wxPyListCtrlNameStr);
     %name(wxPreListView)wxListView();
 
     bool Create( wxWindow *parent,
     %name(wxPreListView)wxListView();
 
     bool Create( wxWindow *parent,
@@ -731,7 +768,7 @@ public:
                 const wxSize& size = wxDefaultSize,
                 long style = wxLC_REPORT,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxSize& size = wxDefaultSize,
                 long style = wxLC_REPORT,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString &name = "listctrl" );
+                const wxString& name = wxPyListCtrlNameStr);
 
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
     %pragma(python) addtomethod = "wxPreListView:val._setOORInfo(val)"
 
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
     %pragma(python) addtomethod = "wxPreListView:val._setOORInfo(val)"
@@ -1006,7 +1043,7 @@ public:
                  const wxSize& size,
                  long style,
                  const wxValidator& validator,
                  const wxSize& size,
                  long style,
                  const wxValidator& validator,
-                 char* name) :
+                 const wxString& name) :
         wxTreeCtrl(parent, id, pos, size, style, validator, name) {}
 
     bool Create(wxWindow *parent, wxWindowID id,
         wxTreeCtrl(parent, id, pos, size, style, validator, name) {}
 
     bool Create(wxWindow *parent, wxWindowID id,
@@ -1014,7 +1051,7 @@ public:
                 const wxSize& size,
                 long style,
                 const wxValidator& validator,
                 const wxSize& size,
                 long style,
                 const wxValidator& validator,
-                char* name) {
+                const wxString& name) {
         return wxTreeCtrl::Create(parent, id, pos, size, style, validator, name);
     }
 
         return wxTreeCtrl::Create(parent, id, pos, size, style, validator, name);
     }
 
@@ -1053,7 +1090,7 @@ public:
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
                const wxValidator& validator = wxDefaultValidator,
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
                const wxValidator& validator = wxDefaultValidator,
-               char* name = "wxTreeCtrl");
+               const wxString& name = wxPy_TreeCtrlNameStr);
     %name(wxPreTreeCtrl)wxPyTreeCtrl();
 
     bool Create(wxWindow *parent, wxWindowID id = -1,
     %name(wxPreTreeCtrl)wxPyTreeCtrl();
 
     bool Create(wxWindow *parent, wxWindowID id = -1,
@@ -1061,7 +1098,7 @@ public:
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
                const wxValidator& validator = wxDefaultValidator,
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
                const wxValidator& validator = wxDefaultValidator,
-               char* name = "wxTreeCtrl");
+               const wxString& name = wxPy_TreeCtrlNameStr);
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxTreeCtrl)"
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxTreeCtrl)"
@@ -1195,7 +1232,7 @@ public:
                                 size_t before,
                                 const wxString& text,
                                 int image = -1, int selectedImage = -1,
                                 size_t before,
                                 const wxString& text,
                                 int image = -1, int selectedImage = -1,
-                                wxTreeItemData *data = NULL);
+                                wxPyTreeItemData *data = NULL);
     wxTreeItemId AppendItem(const wxTreeItemId& parent,
                             const wxString& text,
                             int image = -1, int selectedImage = -1,
     wxTreeItemId AppendItem(const wxTreeItemId& parent,
                             const wxString& text,
                             int image = -1, int selectedImage = -1,
@@ -1288,6 +1325,10 @@ enum {
     wxDIRCTRL_SELECT_FIRST,
     wxDIRCTRL_SHOW_FILTERS,
     wxDIRCTRL_3D_INTERNAL,
     wxDIRCTRL_SELECT_FIRST,
     wxDIRCTRL_SHOW_FILTERS,
     wxDIRCTRL_3D_INTERNAL,
+    wxDIRCTRL_EDIT_LABELS,
+
+    wxID_TREECTRL,
+    wxID_FILTERLISTCTRL,
 };
 
 
 };
 
 
@@ -1308,26 +1349,26 @@ class wxGenericDirCtrl: public wxControl
 {
 public:
     wxGenericDirCtrl(wxWindow *parent, const wxWindowID id = -1,
 {
 public:
     wxGenericDirCtrl(wxWindow *parent, const wxWindowID id = -1,
-                     const char* dir = wxDirDialogDefaultFolderStr,
+                     const wxString& dir = wxPyDirDialogDefaultFolderStr,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER,
-                     const char* filter = wxEmptyString,
+                     const wxString& filter = wxPyEmptyString,
                      int defaultFilter = 0,
                      int defaultFilter = 0,
-                     const char* name = "dirCtrl" );
+                     const wxString& name = wxPy_TreeCtrlNameStr);
     %name(wxPreGenericDirCtrl)wxGenericDirCtrl();
 
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
     %pragma(python) addtomethod = "wxPreGenericDirCtrl:val._setOORInfo(val)"
 
     bool Create(wxWindow *parent, const wxWindowID id = -1,
     %name(wxPreGenericDirCtrl)wxGenericDirCtrl();
 
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
     %pragma(python) addtomethod = "wxPreGenericDirCtrl:val._setOORInfo(val)"
 
     bool Create(wxWindow *parent, const wxWindowID id = -1,
-                const char* dir = wxDirDialogDefaultFolderStr,
+                const wxString& dir = wxPyDirDialogDefaultFolderStr,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER,
-                const char* filter = wxEmptyString,
+                const wxString& filter = wxPyEmptyString,
                 int defaultFilter = 0,
                 int defaultFilter = 0,
-                const char* name = "dirCtrl" );
+                const wxString& name = wxPy_TreeCtrlNameStr);
 
 
     // Try to expand as much of the given path as possible.
 
 
     // Try to expand as much of the given path as possible.