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);
MAKE_CONST_WXSTRING(ART_REPORT_VIEW);
MAKE_CONST_WXSTRING(ART_LIST_VIEW);
MAKE_CONST_WXSTRING(ART_NEW_DIR);
+MAKE_CONST_WXSTRING(ART_HARDDISK);
+MAKE_CONST_WXSTRING(ART_FLOPPY);
+MAKE_CONST_WXSTRING(ART_CDROM);
+MAKE_CONST_WXSTRING(ART_REMOVABLE);
MAKE_CONST_WXSTRING(ART_FOLDER);
+MAKE_CONST_WXSTRING(ART_FOLDER_OPEN);
MAKE_CONST_WXSTRING(ART_GO_DIR_UP);
MAKE_CONST_WXSTRING(ART_EXECUTABLE_FILE);
MAKE_CONST_WXSTRING(ART_NORMAL_FILE);
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);
//---------------------------------------------------------------------------
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;
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):
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. When
-running under GTK+ 2, GTK+ stock item IDs (e.g. 'gtk-cdrom') may be
-used as well.
+custom art providers registered using `Push` may be used.
+GTK+ Note
+---------
+
+When running under GTK+ 2, GTK+ stock item IDs (e.g. 'gtk-cdrom') may be used
+as well. Additionally, if wxGTK was compiled against GTK+ >= 2.4, then it is
+also possible to load icons from current icon theme by specifying their name
+without the extension and directory components. Icon themes recognized by GTK+
+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_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
* 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
MustHaveApp(wxPyArtProvider::GetBitmap);
MustHaveApp(wxPyArtProvider::GetIcon);
-%name(ArtProvider) class wxPyArtProvider /*: public wxObject*/
+%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,
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 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; }}
};