2 % automatically generated by HelpGen $Revision$ from
3 % artprov.h at 08/Apr/02 17:44:57
6 \section{\class{wxArtProvider
}}\label{wxartprovider
}
8 wxArtProvider class is used to customize the look of wxWidgets application.
9 When wxWidgets needs to display an icon or a bitmap (e.g. in the standard file
10 dialog), it does not use a hard-coded resource but asks wxArtProvider for it
11 instead. This way users can plug in their own wxArtProvider class and easily
12 replace standard art with their own version. All
13 that is needed is to derive a class from wxArtProvider, override either its
14 \helpref{CreateBitmap
}{wxartprovidercreatebitmap
} and/or its
15 \helpref{CreateIconBundle
}{wxartprovidercreateiconbundle
} methods
16 and register the provider with
17 \helpref{wxArtProvider::Push
}{wxartproviderpush
}:
20 class MyProvider : public wxArtProvider
23 wxBitmap CreateBitmap(const wxArtID& id,
24 const wxArtClient& client,
27 // optionally override this one as well
28 wxIconBundle CreateIconBundle(const wxArtID& id,
29 const wxArtClient& client)
33 wxArtProvider::Push(new MyProvider);
36 If you need bitmap images (of the same artwork) that should be displayed at different sizes
37 you should probably consider overriding
\helpref{CreateIconBundle()
}{wxartprovidercreateiconbundle
}
38 and supplying icon bundles that contain different bitmap sizes.
40 There's another way of taking advantage of this class: you can use it in your code and use
41 platform native icons as provided by
\helpref{wxArtProvider::GetBitmap
}{wxartprovidergetbitmap
} or
42 \helpref{wxArtProvider::GetIcon
}{wxartprovidergeticon
} (NB: this is not yet really
43 possible as of wxWidgets
2.3.3, the set of wxArtProvider bitmaps is too
47 \membersection{Identifying art resources
}\label{artprovideridentifying
}
49 Every bitmap and icon bundle are known to wxArtProvider under an unique ID that is used when
50 requesting a resource from it. The ID is represented by wxArtID type and can
51 have one of these predefined values (you can see bitmaps represented by these
52 constants in the
\helpref{artprov
}{sampleartprovider
} sample):
53 \begin{itemize
}\itemsep=
0pt
58 \item wxART
\_INFORMATION
59 \item wxART
\_ADD\_BOOKMARK
60 \item wxART
\_DEL\_BOOKMARK
61 \item wxART
\_HELP\_SIDE\_PANEL
62 \item wxART
\_HELP\_SETTINGS
63 \item wxART
\_HELP\_BOOK
64 \item wxART
\_HELP\_FOLDER
65 \item wxART
\_HELP\_PAGE
67 \item wxART
\_GO\_FORWARD
70 \item wxART
\_GO\_TO\_PARENT
75 \item wxART
\_REPORT\_VIEW
76 \item wxART
\_LIST\_VIEW
79 \item wxART
\_FOLDER\_OPEN
80 \item wxART
\_GO\_DIR\_UP
81 \item wxART
\_EXECUTABLE\_FILE
82 \item wxART
\_NORMAL\_FILE
83 \item wxART
\_TICK\_MARK
84 \item wxART
\_CROSS\_MARK
85 \item wxART
\_MISSING\_IMAGE
87 \item wxART
\_FILE\_OPEN
88 \item wxART
\_FILE\_SAVE
89 \item wxART
\_FILE\_SAVE\_AS
98 \item wxART
\_FIND\_AND\_REPLACE
102 \item wxART
\_REMOVABLE
106 Additionally, any string recognized by custom art providers registered using
107 \helpref{Push
}{wxartproviderpush
} may be used.
109 \wxheading{GTK+ Note
}
111 When running under GTK+
2, GTK+ stock item IDs (e.g.
{\tt "gtk-cdrom"
}) may
112 be used as well. Additionally, if wxGTK was compiled against GTK+ >=
2.4, then
113 it is also possible to load icons from current icon theme by specifying their
114 name (without extension and directory components). Icon themes recognized
116 \urlref{freedesktop.org Icon Themes specification
}{http://freedesktop.org/Standards/icon-theme-spec
}. Note that themes are not guaranteed to contain all
117 icons, so wxArtProvider may return
{\tt wxNullBitmap
} or
{\tt wxNullIcon
}.
118 Default theme is typically installed in
{\tt /usr/share/icons/hicolor
}.
121 \membersection{Clients
}\label{artproviderclients
}
123 Client is the entity that calls wxArtProvider's GetBitmap or GetIcon
124 function. It is represented by wxClientID type and can have one of these
126 \begin{itemize
}\itemsep=
0pt
130 \item wxART
\_FRAME\_ICON
131 \item wxART
\_CMN\_DIALOG
132 \item wxART
\_HELP\_BROWSER
133 \item wxART
\_MESSAGE\_BOX
134 \item wxART
\_OTHER (used for all requests that don't fit into any of the categories above)
136 Client ID servers as a hint to wxArtProvider that is supposed to help it to
137 choose the best looking bitmap. For example it is often desirable to use
138 slightly different icons in menus and toolbars even though they represent the
139 same action (e.g.
{\tt wx
\_ART\_FILE\_OPEN}). Remember that this is really
140 only a hint for wxArtProvider -- it is common that
141 \helpref{wxArtProvider::GetBitmap
}{wxartprovidergetbitmap
}
142 returns identical bitmap for different
{\it client
} values!
146 See the
\helpref{artprov
}{sampleartprovider
} sample for an example of wxArtProvider usage.
148 \wxheading{Derived from
}
150 \helpref{wxObject
}{wxobject
}
152 \wxheading{Include files
}
158 \helpref{wxCore
}{librarieslist
}
160 \latexignore{\rtfignore{\wxheading{Members
}}}
163 \membersection{wxArtProvider::
\destruct{wxArtProvider
}}\label{wxartproviderdtor
}
165 \func{}{\destruct{wxArtProvider
}}{\void}
167 The destructor automatically removes the provider from the provider stack used
168 by
\helpref{GetBitmap
}{wxartprovidergetbitmap
}.
171 \membersection{wxArtProvider::CreateBitmap
}\label{wxartprovidercreatebitmap
}
173 \func{wxBitmap
}{CreateBitmap
}{\param{const wxArtID\&
}{id
},
\param{const wxArtClient\&
}{client
},
\param{const wxSize\&
}{size
}}
175 Derived art provider classes must override this method to create requested art
176 resource. Note that returned bitmaps are cached by wxArtProvider and it is
177 therefore not necessary to optimize CreateBitmap() for speed (e.g. you may
178 create wxBitmap objects from XPMs here).
180 \wxheading{Parameters
}
182 \docparam{id
}{wxArtID unique identifier of the bitmap.
}
184 \docparam{client
}{wxArtClient identifier of the client (i.e. who is asking for the bitmap).
185 This only servers as a hint.
}
187 \docparam{size
}{Preferred size of the bitmap. The function may return a bitmap of different
188 dimensions, it will be automatically rescaled to meet client's request.
}
192 This is
{\bf not
} part of wxArtProvider's public API, use
193 \helpref{wxArtProvider::GetBitmap
}{wxartprovidergetbitmap
} or
194 \helpref{wxArtProvider::GetIconBundle
}{wxartprovidergeticonbundle
} or
195 \helpref{wxArtProvider::GetIcon
}{wxartprovidergeticon
}
196 to query wxArtProvider for a resource.
200 \helpref{CreateIconBundle
}{wxartprovidercreateiconbundle
}
203 \membersection{wxArtProvider::CreateIconBundle
}\label{wxartprovidercreateiconbundle
}
205 \func{wxIconBundle
}{CreateIconBundle
}{\param{const wxArtID\&
}{id
},
\param{const wxArtClient\&
}{client
}}
207 This method is similar to
\helpref{CreateBitmap
}{wxartprovidercreatebitmap
} but
208 can be used when a bitmap (or an icon) exists in several sizes.
212 \membersection{wxArtProvider::Delete
}\label{wxartproviderdelete
}
214 \func{static bool
}{Delete
}{\param{wxArtProvider*
}{provider
}}
216 Delete the given
\arg{provider
}.
219 \membersection{wxArtProvider::GetBitmap
}\label{wxartprovidergetbitmap
}
221 \func{static wxBitmap
}{GetBitmap
}{\param{const wxArtID\&
}{id
},
\param{const wxArtClient\&
}{client = wxART
\_OTHER},
\param{const wxSize\&
}{size = wxDefaultSize
}}
223 Query registered providers for bitmap with given ID.
225 \wxheading{Parameters
}
227 \docparam{id
}{wxArtID unique identifier of the bitmap.
}
229 \docparam{client
}{wxArtClient identifier of the client (i.e. who is asking for the bitmap).
}
231 \docparam{size
}{Size of the returned bitmap or
{\tt wxDefaultSize
} if size doesn't matter.
}
233 \wxheading{Return value
}
235 The bitmap if one of registered providers recognizes the ID or wxNullBitmap otherwise.
238 \membersection{wxArtProvider::GetIconBundle
}\label{wxartprovidergeticonbundle
}
240 \func{static wxIconBundle
}{GetIconBundle
}{\param{const wxArtID\&
}{id
},
\param{const wxArtClient\&
}{client = wxART
\_OTHER}}
242 Query registered providers for icon bundle with given ID.
244 \wxheading{Parameters
}
246 \docparam{id
}{wxArtID unique identifier of the icon bundle.
}
248 \docparam{client
}{wxArtClient identifier of the client (i.e. who is asking for the icon bundle).
}
250 \wxheading{Return value
}
252 The icon bundle if one of registered providers recognizes the ID or wxNullIconBundle otherwise.
255 \membersection{wxArtProvider::GetIcon
}\label{wxartprovidergeticon
}
257 \func{static wxIcon
}{GetIcon
}{\param{const wxArtID\&
}{id
},
\param{const wxArtClient\&
}{client = wxART
\_OTHER},
\param{const wxSize\&
}{size = wxDefaultSize
}}
259 Same as
\helpref{wxArtProvider::GetBitmap
}{wxartprovidergetbitmap
}, but
260 return a wxIcon object (or wxNullIcon on failure).
262 \func{static wxSize
}{GetSizeHint
}{\param{const wxArtClient\&
}{client
},
\param{bool
}{platform
\_default = false
}}
264 Returns a suitable size hint for the given
{\it wxArtClient
}. If
265 {\it platform
\_default} is
\true, return a size based on the current platform,
266 otherwise return the size from the topmost wxArtProvider.
{\it wxDefaultSize
} may be
267 returned if the client doesn't have a specified size, like wxART
\_OTHER for example.
270 \membersection{wxArtProvider::Insert
}\label{wxartproviderinsert
}
272 \func{static void
}{Insert
}{\param{wxArtProvider*
}{provider
}}
274 Register new art provider and add it to the bottom of providers stack (i.e.
275 it will be queried as the last one).
279 \helpref{Push
}{wxartproviderpush
}
282 \membersection{wxArtProvider::Pop
}\label{wxartproviderctor
}
284 \func{static bool
}{Pop
}{\void}
286 Remove latest added provider and delete it.
289 \membersection{wxArtProvider::Push
}\label{wxartproviderpush
}
291 \func{static void
}{Push
}{\param{wxArtProvider*
}{provider
}}
293 Register new art provider and add it to the top of providers stack (i.e. it
294 will be queried as the first provider).
298 \helpref{Insert
}{wxartproviderinsert
}
301 \membersection{wxArtProvider::Remove
}\label{wxartproviderremove
}
303 \func{static bool
}{Remove
}{\param{wxArtProvider*
}{provider
}}
305 Remove a provider from the stack if it is on it. The provider is
{\emph not
}
306 deleted, unlike when using
\helpref{Delete()
}{wxartproviderdelete
}.