]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_artprov.i
Forgot this part of the event change patch from 2_8
[wxWidgets.git] / wxPython / src / _artprov.i
index dba08791f32a2d72d8581575a7bd8e0747756035..0e7a2a44e431a8e6108efb0ad5fc15877dd7d564 100644 (file)
@@ -31,6 +31,7 @@ MAKE_CONST_WXSTRING(ART_CMN_DIALOG);
 MAKE_CONST_WXSTRING(ART_HELP_BROWSER);
 MAKE_CONST_WXSTRING(ART_MESSAGE_BOX);
 MAKE_CONST_WXSTRING(ART_BUTTON);
+MAKE_CONST_WXSTRING(ART_LIST);
 MAKE_CONST_WXSTRING(ART_OTHER);
 
 // Art IDs
@@ -48,6 +49,8 @@ MAKE_CONST_WXSTRING(ART_GO_DOWN);
 MAKE_CONST_WXSTRING(ART_GO_TO_PARENT);
 MAKE_CONST_WXSTRING(ART_GO_HOME);
 MAKE_CONST_WXSTRING(ART_FILE_OPEN);
+MAKE_CONST_WXSTRING(ART_FILE_SAVE);
+MAKE_CONST_WXSTRING(ART_FILE_SAVE_AS);
 MAKE_CONST_WXSTRING(ART_PRINT);
 MAKE_CONST_WXSTRING(ART_HELP);
 MAKE_CONST_WXSTRING(ART_TIP);
@@ -70,6 +73,16 @@ MAKE_CONST_WXSTRING(ART_QUESTION);
 MAKE_CONST_WXSTRING(ART_WARNING);
 MAKE_CONST_WXSTRING(ART_INFORMATION);
 MAKE_CONST_WXSTRING(ART_MISSING_IMAGE);
+MAKE_CONST_WXSTRING(ART_COPY);
+MAKE_CONST_WXSTRING(ART_CUT);
+MAKE_CONST_WXSTRING(ART_PASTE);
+MAKE_CONST_WXSTRING(ART_DELETE);
+MAKE_CONST_WXSTRING(ART_NEW);
+MAKE_CONST_WXSTRING(ART_UNDO);
+MAKE_CONST_WXSTRING(ART_REDO);
+MAKE_CONST_WXSTRING(ART_QUIT);
+MAKE_CONST_WXSTRING(ART_FIND);
+MAKE_CONST_WXSTRING(ART_FIND_AND_REPLACE);
 
 //---------------------------------------------------------------------------
 
@@ -81,7 +94,7 @@ public:
                                   const wxArtClient& client,
                                   const wxSize& size) {
         wxBitmap rval = wxNullBitmap;
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if ((wxPyCBH_findCallback(m_myInst, "CreateBitmap"))) {
             PyObject* so = wxPyConstructObject((void*)&size, wxT("wxSize"), 0);
             PyObject* ro;
@@ -103,6 +116,30 @@ public:
         return rval;
     }
 
+    virtual wxIconBundle CreateIconBundle(const wxArtID& id,
+                                          const wxArtClient& client)
+    {
+        wxIconBundle rval = wxNullIconBundle;
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
+        if ((wxPyCBH_findCallback(m_myInst, "CreateIconBundle"))) {
+            PyObject* ro;
+            wxIconBundle* ptr;
+            PyObject* s1, *s2;
+            s1 = wx2PyString(id);
+            s2 = wx2PyString(client);
+            ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OO)", s1, s2));
+            Py_DECREF(s1);
+            Py_DECREF(s2);
+            if (ro) {
+                if (wxPyConvertSwigPtr(ro, (void**)&ptr, wxT("wxIconBundle")))
+                    rval = *ptr;
+                Py_DECREF(ro);
+            }
+        }
+        wxPyEndBlockThreads(blocked);
+        return rval;
+    }
+
     PYPRIVATE;
 };
 %}
@@ -119,7 +156,7 @@ asks wx.ArtProvider for it instead. This way the users can plug in
 their own wx.ArtProvider class and easily replace standard art with
 his/her own version. It is easy thing to do: all that is needed is
 to derive a class from wx.ArtProvider, override it's CreateBitmap
-method and register the provider with wx.ArtProvider.PushProvider::
+method and register the provider with `wx.ArtProvider.Push`::
 
     class MyArtProvider(wx.ArtProvider):
         def __init__(self):
@@ -136,7 +173,7 @@ Identifying art resources
 Every bitmap is known to wx.ArtProvider under an unique ID that is
 used when requesting a resource from it. The IDs can have one of the
 following predefined values.  Additionally, any string recognized by
-custom art providers registered using `PushProvider` may be used.
+custom art providers registered using `Push` may be used.
 
 GTK+ Note
 ---------
@@ -149,7 +186,6 @@ follow the freedesktop.org Icon Themes specification.  Note that themes are
 not guaranteed to contain all icons, so wx.ArtProvider may return wx.NullBitmap
 or wx.NullIcon.  The default theme is typically installed in /usr/share/icons/hicolor.
 
-
     * wx.ART_ADD_BOOKMARK
     * wx.ART_DEL_BOOKMARK
     * wx.ART_HELP_SIDE_PANEL
@@ -164,13 +200,20 @@ or wx.NullIcon.  The default theme is typically installed in /usr/share/icons/hi
     * wx.ART_GO_TO_PARENT
     * wx.ART_GO_HOME
     * wx.ART_FILE_OPEN
+    * wx.ART_FILE_SAVE
+    * wx.ART_FILE_SAVE_AS
     * wx.ART_PRINT
     * wx.ART_HELP
     * wx.ART_TIP
     * wx.ART_REPORT_VIEW
     * wx.ART_LIST_VIEW
     * wx.ART_NEW_DIR
+    * wx.ART_HARDDISK
+    * wx.ART_FLOPPY
+    * wx.ART_CDROM
+    * wx.ART_REMOVABLE
     * wx.ART_FOLDER
+    * wx.ART_FOLDER_OPEN
     * wx.ART_GO_DIR_UP
     * wx.ART_EXECUTABLE_FILE
     * wx.ART_NORMAL_FILE
@@ -180,7 +223,17 @@ or wx.NullIcon.  The default theme is typically installed in /usr/share/icons/hi
     * wx.ART_QUESTION
     * wx.ART_WARNING
     * wx.ART_INFORMATION
-    * wx.ART_MISSING_IMAGE 
+    * wx.ART_MISSING_IMAGE
+    * wx.ART_COPY
+    * wx.ART_CUT
+    * wx.ART_PASTE
+    * wx.ART_DELETE
+    * wx.ART_NEW
+    * wx.ART_UNDO
+    * wx.ART_REDO
+    * wx.ART_QUIT
+    * wx.ART_FIND
+    * wx.ART_FIND_AND_REPLACE
 
 
 Clients
@@ -209,32 +262,46 @@ identical bitmap for different client values!
 MustHaveApp(wxPyArtProvider);
 MustHaveApp(wxPyArtProvider::GetBitmap);
 MustHaveApp(wxPyArtProvider::GetIcon);
+MustHaveApp(wxPyArtProvider::GetBundle);
 
 %rename(ArtProvider) wxPyArtProvider;
 class wxPyArtProvider /*: public wxObject*/
 {
 public:
 
-    %pythonAppend wxPyArtProvider "self._setCallbackInfo(self, ArtProvider)"
+    %pythonAppend wxPyArtProvider setCallbackInfo(ArtProvider);
     wxPyArtProvider();
+    ~wxPyArtProvider();
     
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
+    %disownarg( wxPyArtProvider *provider );
+
     DocDeclStr(
-        static void , PushProvider(wxPyArtProvider *provider),
+        static void , Push(wxPyArtProvider *provider),
         "Add new provider to the top of providers stack.", "");
+    %pythoncode { PushProvider = Push }
+    
+    DocDeclStr(
+        static void , Insert(wxPyArtProvider *provider),
+        "Add new provider to the bottom of providers stack.", "");
+    %pythoncode { InsertProvider = Insert }
+
+    %cleardisown( wxPyArtProvider *provider );
     
 
     DocDeclStr(
-        static bool , PopProvider(),
+        static bool , Pop(),
         "Remove latest added provider and delete it.", "");
+    %pythoncode { PopProvider = Pop }
     
-
+    %pythonAppend Delete "args[1].thisown = 1";
     DocDeclStr(
-        static bool , RemoveProvider(wxPyArtProvider *provider),
+        static bool , Delete(wxPyArtProvider *provider),
         "Remove provider. The provider must have been added previously!  The
 provider is _not_ deleted.", "");
-    
+    %pythoncode { RemoveProvider = Delete }
+
 
     DocDeclStr(
         static wxBitmap , GetBitmap(const wxString& id,
@@ -246,12 +313,26 @@ wx.NullBitmap if no provider provides it.", "");
 
     DocDeclStr(
         static wxIcon , GetIcon(const wxString& id,
-                          const wxString& client = wxPyART_OTHER,
+                                const wxString& client = wxPyART_OTHER,
                                 const wxSize& size = wxDefaultSize),
         "Query the providers for icon with given ID and return it.  Return
 wx.NullIcon if no provider provides it.", "");
+
+    DocDeclStr(
+        static wxIconBundle , GetIconBundle(const wxArtID& id,
+                                            const wxArtClient& client = wxART_OTHER),
+        "Query the providers for iconbundle with given ID and return it. Return
+wx.NullIconBundle if no provider provides it.", "");
+    
+    
+    DocDeclStr(
+        static wxSize , GetSizeHint(const wxString& client, bool platform_dependent = false),
+        "Get the size hint of an icon from a specific Art Client, queries the
+topmost provider if platform_dependent = false", "");
+    
     
 
+    %pythonPrepend Destroy "args[0].this.own(False)"
     %extend { void Destroy() { delete self; }}
 };