summaryrefslogtreecommitdiff
path: root/legacy/elementary/src/lib/elm_theme.h
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2011-12-30 07:20:48 +0000
committerCarsten Haitzler <raster@rasterman.com>2011-12-30 07:20:48 +0000
commit0930fdcd527197fa0973922a041d43482a9eaf38 (patch)
tree29409575029b4fb3767e31cfb80cfd6addaa4edf /legacy/elementary/src/lib/elm_theme.h
parent39f63f3bf617c41e890c0f528581da43437fc593 (diff)
fomatting of headers -> fixup. and documentation fixing.
SVN revision: 66667
Diffstat (limited to '')
-rw-r--r--legacy/elementary/src/lib/elm_theme.h711
1 files changed, 356 insertions, 355 deletions
diff --git a/legacy/elementary/src/lib/elm_theme.h b/legacy/elementary/src/lib/elm_theme.h
index 7640cf3..8c05b35 100644
--- a/legacy/elementary/src/lib/elm_theme.h
+++ b/legacy/elementary/src/lib/elm_theme.h
@@ -1,378 +1,379 @@
1 /** 1/**
2 * @defgroup Theme Theme 2 * @defgroup Theme Theme
3 * 3 *
4 * Elementary uses Edje to theme its widgets, naturally. But for the most 4 * Elementary uses Edje to theme its widgets, naturally. But for the most
5 * part this is hidden behind a simpler interface that lets the user set 5 * part this is hidden behind a simpler interface that lets the user set
6 * extensions and choose the style of widgets in a much easier way. 6 * extensions and choose the style of widgets in a much easier way.
7 * 7 *
8 * Instead of thinking in terms of paths to Edje files and their groups 8 * Instead of thinking in terms of paths to Edje files and their groups
9 * each time you want to change the appearance of a widget, Elementary 9 * each time you want to change the appearance of a widget, Elementary
10 * works so you can add any theme file with extensions or replace the 10 * works so you can add any theme file with extensions or replace the
11 * main theme at one point in the application, and then just set the style 11 * main theme at one point in the application, and then just set the style
12 * of widgets with elm_object_style_set() and related functions. Elementary 12 * of widgets with elm_object_style_set() and related functions. Elementary
13 * will then look in its list of themes for a matching group and apply it, 13 * will then look in its list of themes for a matching group and apply it,
14 * and when the theme changes midway through the application, all widgets 14 * and when the theme changes midway through the application, all widgets
15 * will be updated accordingly. 15 * will be updated accordingly.
16 * 16 *
17 * There are three concepts you need to know to understand how Elementary 17 * There are three concepts you need to know to understand how Elementary
18 * theming works: default theme, extensions and overlays. 18 * theming works: default theme, extensions and overlays.
19 * 19 *
20 * Default theme, obviously enough, is the one that provides the default 20 * Default theme, obviously enough, is the one that provides the default
21 * look of all widgets. End users can change the theme used by Elementary 21 * look of all widgets. End users can change the theme used by Elementary
22 * by setting the @c ELM_THEME environment variable before running an 22 * by setting the @c ELM_THEME environment variable before running an
23 * application, or globally for all programs using the @c elementary_config 23 * application, or globally for all programs using the @c elementary_config
24 * utility. Applications can change the default theme using elm_theme_set(), 24 * utility. Applications can change the default theme using elm_theme_set(),
25 * but this can go against the user wishes, so it's not an adviced practice. 25 * but this can go against the user wishes, so it's not an adviced practice.
26 * 26 *
27 * Ideally, applications should find everything they need in the already 27 * Ideally, applications should find everything they need in the already
28 * provided theme, but there may be occasions when that's not enough and 28 * provided theme, but there may be occasions when that's not enough and
29 * custom styles are required to correctly express the idea. For this 29 * custom styles are required to correctly express the idea. For this
30 * cases, Elementary has extensions. 30 * cases, Elementary has extensions.
31 * 31 *
32 * Extensions allow the application developer to write styles of its own 32 * Extensions allow the application developer to write styles of its own
33 * to apply to some widgets. This requires knowledge of how each widget 33 * to apply to some widgets. This requires knowledge of how each widget
34 * is themed, as extensions will always replace the entire group used by 34 * is themed, as extensions will always replace the entire group used by
35 * the widget, so important signals and parts need to be there for the 35 * the widget, so important signals and parts need to be there for the
36 * object to behave properly (see documentation of Edje for details). 36 * object to behave properly (see documentation of Edje for details).
37 * Once the theme for the extension is done, the application needs to add 37 * Once the theme for the extension is done, the application needs to add
38 * it to the list of themes Elementary will look into, using 38 * it to the list of themes Elementary will look into, using
39 * elm_theme_extension_add(), and set the style of the desired widgets as 39 * elm_theme_extension_add(), and set the style of the desired widgets as
40 * he would normally with elm_object_style_set(). 40 * he would normally with elm_object_style_set().
41 * 41 *
42 * Overlays, on the other hand, can replace the look of all widgets by 42 * Overlays, on the other hand, can replace the look of all widgets by
43 * overriding the default style. Like extensions, it's up to the application 43 * overriding the default style. Like extensions, it's up to the application
44 * developer to write the theme for the widgets it wants, the difference 44 * developer to write the theme for the widgets it wants, the difference
45 * being that when looking for the theme, Elementary will check first the 45 * being that when looking for the theme, Elementary will check first the
46 * list of overlays, then the set theme and lastly the list of extensions, 46 * list of overlays, then the set theme and lastly the list of extensions,
47 * so with overlays it's possible to replace the default view and every 47 * so with overlays it's possible to replace the default view and every
48 * widget will be affected. This is very much alike to setting the whole 48 * widget will be affected. This is very much alike to setting the whole
49 * theme for the application and will probably clash with the end user 49 * theme for the application and will probably clash with the end user
50 * options, not to mention the risk of ending up with not matching styles 50 * options, not to mention the risk of ending up with not matching styles
51 * across the program. Unless there's a very special reason to use them, 51 * across the program. Unless there's a very special reason to use them,
52 * overlays should be avoided for the resons exposed before. 52 * overlays should be avoided for the resons exposed before.
53 * 53 *
54 * All these theme lists are handled by ::Elm_Theme instances. Elementary 54 * All these theme lists are handled by ::Elm_Theme instances. Elementary
55 * keeps one default internally and every function that receives one of 55 * keeps one default internally and every function that receives one of
56 * these can be called with NULL to refer to this default (except for 56 * these can be called with NULL to refer to this default (except for
57 * elm_theme_free()). It's possible to create a new instance of a 57 * elm_theme_free()). It's possible to create a new instance of a
58 * ::Elm_Theme to set other theme for a specific widget (and all of its 58 * ::Elm_Theme to set other theme for a specific widget (and all of its
59 * children), but this is as discouraged, if not even more so, than using 59 * children), but this is as discouraged, if not even more so, than using
60 * overlays. Don't use this unless you really know what you are doing. 60 * overlays. Don't use this unless you really know what you are doing.
61 * 61 *
62 * But to be less negative about things, you can look at the following 62 * But to be less negative about things, you can look at the following
63 * examples: 63 * examples:
64 * @li @ref theme_example_01 "Using extensions" 64 * @li @ref theme_example_01 "Using extensions"
65 * @li @ref theme_example_02 "Using overlays" 65 * @li @ref theme_example_02 "Using overlays"
66 * 66 *
67 * @{ 67 * @{
68 */ 68 */
69 /** 69/**
70 * @typedef Elm_Theme 70 * @typedef Elm_Theme
71 * 71 *
72 * Opaque handler for the list of themes Elementary looks for when 72 * Opaque handler for the list of themes Elementary looks for when
73 * rendering widgets. 73 * rendering widgets.
74 * 74 *
75 * Stay out of this unless you really know what you are doing. For most 75 * Stay out of this unless you really know what you are doing. For most
76 * cases, sticking to the default is all a developer needs. 76 * cases, sticking to the default is all a developer needs.
77 */ 77 */
78 typedef struct _Elm_Theme Elm_Theme; 78typedef struct _Elm_Theme Elm_Theme;
79 79
80 /** 80/**
81 * Create a new specific theme 81 * Create a new specific theme
82 * 82 *
83 * This creates an empty specific theme that only uses the default theme. A 83 * This creates an empty specific theme that only uses the default theme. A
84 * specific theme has its own private set of extensions and overlays too 84 * specific theme has its own private set of extensions and overlays too
85 * (which are empty by default). Specific themes do not fall back to themes 85 * (which are empty by default). Specific themes do not fall back to themes
86 * of parent objects. They are not intended for this use. Use styles, overlays 86 * of parent objects. They are not intended for this use. Use styles, overlays
87 * and extensions when needed, but avoid specific themes unless there is no 87 * and extensions when needed, but avoid specific themes unless there is no
88 * other way (example: you want to have a preview of a new theme you are 88 * other way (example: you want to have a preview of a new theme you are
89 * selecting in a "theme selector" window. The preview is inside a scroller 89 * selecting in a "theme selector" window. The preview is inside a scroller
90 * and should display what the theme you selected will look like, but not 90 * and should display what the theme you selected will look like, but not
91 * actually apply it yet. The child of the scroller will have a specific 91 * actually apply it yet. The child of the scroller will have a specific
92 * theme set to show this preview before the user decides to apply it to all 92 * theme set to show this preview before the user decides to apply it to all
93 * applications). 93 * applications).
94 */ 94 */
95 EAPI Elm_Theme *elm_theme_new(void); 95EAPI Elm_Theme *elm_theme_new(void);
96 96
97 /** 97/**
98 * Free a specific theme 98 * Free a specific theme
99 * 99 *
100 * @param th The theme to free 100 * @param th The theme to free
101 * 101 *
102 * This frees a theme created with elm_theme_new(). 102 * This frees a theme created with elm_theme_new().
103 */ 103 */
104 EAPI void elm_theme_free(Elm_Theme *th); 104EAPI void elm_theme_free(Elm_Theme *th);
105 105
106 /** 106/**
107 * Copy the theme fom the source to the destination theme 107 * Copy the theme fom the source to the destination theme
108 * 108 *
109 * @param th The source theme to copy from 109 * @param th The source theme to copy from
110 * @param thdst The destination theme to copy data to 110 * @param thdst The destination theme to copy data to
111 * 111 *
112 * This makes a one-time static copy of all the theme config, extensions 112 * This makes a one-time static copy of all the theme config, extensions
113 * and overlays from @p th to @p thdst. If @p th references a theme, then 113 * and overlays from @p th to @p thdst. If @p th references a theme, then
114 * @p thdst is also set to reference it, with all the theme settings, 114 * @p thdst is also set to reference it, with all the theme settings,
115 * overlays and extensions that @p th had. 115 * overlays and extensions that @p th had.
116 */ 116 */
117 EAPI void elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst); 117EAPI void elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst);
118 118
119 /** 119/**
120 * Tell the source theme to reference the ref theme 120 * Tell the source theme to reference the ref theme
121 * 121 *
122 * @param th The theme that will do the referencing 122 * @param th The theme that will do the referencing
123 * @param thref The theme that is the reference source 123 * @param thref The theme that is the reference source
124 * 124 *
125 * This clears @p th to be empty and then sets it to refer to @p thref 125 * This clears @p th to be empty and then sets it to refer to @p thref
126 * so @p th acts as an override to @p thref, but where its overrides 126 * so @p th acts as an override to @p thref, but where its overrides
127 * don't apply, it will fall through to @p thref for configuration. 127 * don't apply, it will fall through to @p thref for configuration.
128 */ 128 */
129 EAPI void elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref); 129EAPI void elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref);
130 130
131 /** 131/**
132 * Return the theme referred to 132 * Return the theme referred to
133 * 133 *
134 * @param th The theme to get the reference from 134 * @param th The theme to get the reference from
135 * @return The referenced theme handle 135 * @return The referenced theme handle
136 * 136 *
137 * This gets the theme set as the reference theme by elm_theme_ref_set(). 137 * This gets the theme set as the reference theme by elm_theme_ref_set().
138 * If no theme is set as a reference, NULL is returned. 138 * If no theme is set as a reference, NULL is returned.
139 */ 139 */
140 EAPI Elm_Theme *elm_theme_ref_get(Elm_Theme *th); 140EAPI Elm_Theme *elm_theme_ref_get(Elm_Theme *th);
141 141
142 /** 142/**
143 * Return the default theme 143 * Return the default theme
144 * 144 *
145 * @return The default theme handle 145 * @return The default theme handle
146 * 146 *
147 * This returns the internal default theme setup handle that all widgets 147 * This returns the internal default theme setup handle that all widgets
148 * use implicitly unless a specific theme is set. This is also often use 148 * use implicitly unless a specific theme is set. This is also often use
149 * as a shorthand of NULL. 149 * as a shorthand of NULL.
150 */ 150 */
151 EAPI Elm_Theme *elm_theme_default_get(void); 151EAPI Elm_Theme *elm_theme_default_get(void);
152 152
153 /** 153/**
154 * Prepends a theme overlay to the list of overlays 154 * Prepends a theme overlay to the list of overlays
155 * 155 *
156 * @param th The theme to add to, or if NULL, the default theme 156 * @param th The theme to add to, or if NULL, the default theme
157 * @param item The Edje file path to be used 157 * @param item The Edje file path to be used
158 * 158 *
159 * Use this if your application needs to provide some custom overlay theme 159 * Use this if your application needs to provide some custom overlay theme
160 * (An Edje file that replaces some default styles of widgets) where adding 160 * (An Edje file that replaces some default styles of widgets) where adding
161 * new styles, or changing system theme configuration is not possible. Do 161 * new styles, or changing system theme configuration is not possible. Do
162 * NOT use this instead of a proper system theme configuration. Use proper 162 * NOT use this instead of a proper system theme configuration. Use proper
163 * configuration files, profiles, environment variables etc. to set a theme 163 * configuration files, profiles, environment variables etc. to set a theme
164 * so that the theme can be altered by simple confiugration by a user. Using 164 * so that the theme can be altered by simple confiugration by a user. Using
165 * this call to achieve that effect is abusing the API and will create lots 165 * this call to achieve that effect is abusing the API and will create lots
166 * of trouble. 166 * of trouble.
167 * 167 *
168 * @see elm_theme_extension_add() 168 * @see elm_theme_extension_add()
169 */ 169 */
170 EAPI void elm_theme_overlay_add(Elm_Theme *th, const char *item); 170EAPI void elm_theme_overlay_add(Elm_Theme *th, const char *item);
171 171
172 /** 172/**
173 * Delete a theme overlay from the list of overlays 173 * Delete a theme overlay from the list of overlays
174 * 174 *
175 * @param th The theme to delete from, or if NULL, the default theme 175 * @param th The theme to delete from, or if NULL, the default theme
176 * @param item The name of the theme overlay 176 * @param item The name of the theme overlay
177 * 177 *
178 * @see elm_theme_overlay_add() 178 * @see elm_theme_overlay_add()
179 */ 179 */
180 EAPI void elm_theme_overlay_del(Elm_Theme *th, const char *item); 180EAPI void elm_theme_overlay_del(Elm_Theme *th, const char *item);
181 181
182 /** 182/**
183 * Appends a theme extension to the list of extensions. 183 * Appends a theme extension to the list of extensions.
184 * 184 *
185 * @param th The theme to add to, or if NULL, the default theme 185 * @param th The theme to add to, or if NULL, the default theme
186 * @param item The Edje file path to be used 186 * @param item The Edje file path to be used
187 * 187 *
188 * This is intended when an application needs more styles of widgets or new 188 * This is intended when an application needs more styles of widgets or new
189 * widget themes that the default does not provide (or may not provide). The 189 * widget themes that the default does not provide (or may not provide). The
190 * application has "extended" usage by coming up with new custom style names 190 * application has "extended" usage by coming up with new custom style names
191 * for widgets for specific uses, but as these are not "standard", they are 191 * for widgets for specific uses, but as these are not "standard", they are
192 * not guaranteed to be provided by a default theme. This means the 192 * not guaranteed to be provided by a default theme. This means the
193 * application is required to provide these extra elements itself in specific 193 * application is required to provide these extra elements itself in specific
194 * Edje files. This call adds one of those Edje files to the theme search 194 * Edje files. This call adds one of those Edje files to the theme search
195 * path to be search after the default theme. The use of this call is 195 * path to be search after the default theme. The use of this call is
196 * encouraged when default styles do not meet the needs of the application. 196 * encouraged when default styles do not meet the needs of the application.
197 * Use this call instead of elm_theme_overlay_add() for almost all cases. 197 * Use this call instead of elm_theme_overlay_add() for almost all cases.
198 * 198 *
199 * @see elm_object_style_set() 199 * @see elm_object_style_set()
200 */ 200 */
201 EAPI void elm_theme_extension_add(Elm_Theme *th, const char *item); 201EAPI void elm_theme_extension_add(Elm_Theme *th, const char *item);
202 202
203 /** 203/**
204 * Deletes a theme extension from the list of extensions. 204 * Deletes a theme extension from the list of extensions.
205 * 205 *
206 * @param th The theme to delete from, or if NULL, the default theme 206 * @param th The theme to delete from, or if NULL, the default theme
207 * @param item The name of the theme extension 207 * @param item The name of the theme extension
208 * 208 *
209 * @see elm_theme_extension_add() 209 * @see elm_theme_extension_add()
210 */ 210 */
211 EAPI void elm_theme_extension_del(Elm_Theme *th, const char *item); 211EAPI void elm_theme_extension_del(Elm_Theme *th, const char *item);
212 212
213 /** 213/**
214 * Set the theme search order for the given theme 214 * Set the theme search order for the given theme
215 * 215 *
216 * @param th The theme to set the search order, or if NULL, the default theme 216 * @param th The theme to set the search order, or if NULL, the default theme
217 * @param theme Theme search string 217 * @param theme Theme search string
218 * 218 *
219 * This sets the search string for the theme in path-notation from first 219 * This sets the search string for the theme in path-notation from first
220 * theme to search, to last, delimited by the : character. Example: 220 * theme to search, to last, delimited by the : character. Example:
221 * 221 *
222 * "shiny:/path/to/file.edj:default" 222 * "shiny:/path/to/file.edj:default"
223 * 223 *
224 * See the ELM_THEME environment variable for more information. 224 * See the ELM_THEME environment variable for more information.
225 * 225 *
226 * @see elm_theme_get() 226 * @see elm_theme_get()
227 * @see elm_theme_list_get() 227 * @see elm_theme_list_get()
228 */ 228 */
229 EAPI void elm_theme_set(Elm_Theme *th, const char *theme); 229EAPI void elm_theme_set(Elm_Theme *th, const char *theme);
230 230
231 /** 231/**
232 * Return the theme search order 232 * Return the theme search order
233 * 233 *
234 * @param th The theme to get the search order, or if NULL, the default theme 234 * @param th The theme to get the search order, or if NULL, the default theme
235 * @return The internal search order path 235 * @return The internal search order path
236 * 236 *
237 * This function returns a colon separated string of theme elements as 237 * This function returns a colon separated string of theme elements as
238 * returned by elm_theme_list_get(). 238 * returned by elm_theme_list_get().
239 * 239 *
240 * @see elm_theme_set() 240 * @see elm_theme_set()
241 * @see elm_theme_list_get() 241 * @see elm_theme_list_get()
242 */ 242 */
243 EAPI const char *elm_theme_get(Elm_Theme *th); 243EAPI const char *elm_theme_get(Elm_Theme *th);
244 244
245 /** 245/**
246 * Return a list of theme elements to be used in a theme. 246 * Return a list of theme elements to be used in a theme.
247 * 247 *
248 * @param th Theme to get the list of theme elements from. 248 * @param th Theme to get the list of theme elements from.
249 * @return The internal list of theme elements 249 * @return The internal list of theme elements
250 * 250 *
251 * This returns the internal list of theme elements (will only be valid as 251 * This returns the internal list of theme elements (will only be valid as
252 * long as the theme is not modified by elm_theme_set() or theme is not 252 * long as the theme is not modified by elm_theme_set() or theme is not
253 * freed by elm_theme_free(). This is a list of strings which must not be 253 * freed by elm_theme_free(). This is a list of strings which must not be
254 * altered as they are also internal. If @p th is NULL, then the default 254 * altered as they are also internal. If @p th is NULL, then the default
255 * theme element list is returned. 255 * theme element list is returned.
256 * 256 *
257 * A theme element can consist of a full or relative path to a .edj file, 257 * A theme element can consist of a full or relative path to a .edj file,
258 * or a name, without extension, for a theme to be searched in the known 258 * or a name, without extension, for a theme to be searched in the known
259 * theme paths for Elemementary. 259 * theme paths for Elemementary.
260 * 260 *
261 * @see elm_theme_set() 261 * @see elm_theme_set()
262 * @see elm_theme_get() 262 * @see elm_theme_get()
263 */ 263 */
264 EAPI const Eina_List *elm_theme_list_get(const Elm_Theme *th); 264EAPI const Eina_List *elm_theme_list_get(const Elm_Theme *th);
265 265
266 /** 266/**
267 * Return the full patrh for a theme element 267 * Return the full patrh for a theme element
268 * 268 *
269 * @param f The theme element name 269 * @param f The theme element name
270 * @param in_search_path Pointer to a boolean to indicate if item is in the search path or not 270 * @param in_search_path Pointer to a boolean to indicate if item is in the search path or not
271 * @return The full path to the file found. 271 * @return The full path to the file found.
272 * 272 *
273 * This returns a string you should free with free() on success, NULL on 273 * This returns a string you should free with free() on success, NULL on
274 * failure. This will search for the given theme element, and if it is a 274 * failure. This will search for the given theme element, and if it is a
275 * full or relative path element or a simple searchable name. The returned 275 * full or relative path element or a simple searchable name. The returned
276 * path is the full path to the file, if searched, and the file exists, or it 276 * path is the full path to the file, if searched, and the file exists, or it
277 * is simply the full path given in the element or a resolved path if 277 * is simply the full path given in the element or a resolved path if
278 * relative to home. The @p in_search_path boolean pointed to is set to 278 * relative to home. The @p in_search_path boolean pointed to is set to
279 * EINA_TRUE if the file was a searchable file andis in the search path, 279 * EINA_TRUE if the file was a searchable file andis in the search path,
280 * and EINA_FALSE otherwise. 280 * and EINA_FALSE otherwise.
281 */ 281 */
282 EAPI char *elm_theme_list_item_path_get(const char *f, Eina_Bool *in_search_path); 282EAPI char *elm_theme_list_item_path_get(const char *f, Eina_Bool *in_search_path);
283 283
284 /** 284/**
285 * Flush the current theme. 285 * Flush the current theme.
286 * 286 *
287 * @param th Theme to flush 287 * @param th Theme to flush
288 * 288 *
289 * This flushes caches that let elementary know where to find theme elements 289 * This flushes caches that let elementary know where to find theme elements
290 * in the given theme. If @p th is NULL, then the default theme is flushed. 290 * in the given theme. If @p th is NULL, then the default theme is flushed.
291 * Call this function if source theme data has changed in such a way as to 291 * Call this function if source theme data has changed in such a way as to
292 * make any caches Elementary kept invalid. 292 * make any caches Elementary kept invalid.
293 */ 293 */
294 EAPI void elm_theme_flush(Elm_Theme *th); 294EAPI void elm_theme_flush(Elm_Theme *th);
295 295
296 /** 296/**
297 * This flushes all themes (default and specific ones). 297 * This flushes all themes (default and specific ones).
298 * 298 *
299 * This will flush all themes in the current application context, by calling 299 * This will flush all themes in the current application context, by calling
300 * elm_theme_flush() on each of them. 300 * elm_theme_flush() on each of them.
301 */ 301 */
302 EAPI void elm_theme_full_flush(void); 302EAPI void elm_theme_full_flush(void);
303 303
304 /** 304/**
305 * Set the theme for all elementary using applications on the current display 305 * Set the theme for all elementary using applications on the current display
306 * 306 *
307 * @param theme The name of the theme to use. Format same as the ELM_THEME 307 * @param theme The name of the theme to use. Format same as the ELM_THEME
308 * environment variable. 308 * environment variable.
309 */ 309 */
310 EAPI void elm_theme_all_set(const char *theme); 310EAPI void elm_theme_all_set(const char *theme);
311 311
312 /** 312/**
313 * Return a list of theme elements in the theme search path 313 * Return a list of theme elements in the theme search path
314 * 314 *
315 * @return A list of strings that are the theme element names. 315 * @return A list of strings that are the theme element names.
316 * 316 *
317 * This lists all available theme files in the standard Elementary search path 317 * This lists all available theme files in the standard Elementary search path
318 * for theme elements, and returns them in alphabetical order as theme 318 * for theme elements, and returns them in alphabetical order as theme
319 * element names in a list of strings. Free this with 319 * element names in a list of strings. Free this with
320 * elm_theme_name_available_list_free() when you are done with the list. 320 * elm_theme_name_available_list_free() when you are done with the list.
321 */ 321 */
322 EAPI Eina_List *elm_theme_name_available_list_new(void); 322EAPI Eina_List *elm_theme_name_available_list_new(void);
323 323
324 /** 324/**
325 * Free the list returned by elm_theme_name_available_list_new() 325 * Free the list returned by elm_theme_name_available_list_new()
326 * 326 *
327 * This frees the list of themes returned by 327 * This frees the list of themes returned by
328 * elm_theme_name_available_list_new(). Once freed the list should no longer 328 * elm_theme_name_available_list_new(). Once freed the list should no longer
329 * be used. a new list mys be created. 329 * be used. a new list mys be created.
330 */ 330 */
331 EAPI void elm_theme_name_available_list_free(Eina_List *list); 331EAPI void elm_theme_name_available_list_free(Eina_List *list);
332 332
333 /** 333/**
334 * Set a specific theme to be used for this object and its children 334 * Set a specific theme to be used for this object and its children
335 * 335 *
336 * @param obj The object to set the theme on 336 * @param obj The object to set the theme on
337 * @param th The theme to set 337 * @param th The theme to set
338 * 338 *
339 * This sets a specific theme that will be used for the given object and any 339 * This sets a specific theme that will be used for the given object and any
340 * child objects it has. If @p th is NULL then the theme to be used is 340 * child objects it has. If @p th is NULL then the theme to be used is
341 * cleared and the object will inherit its theme from its parent (which 341 * cleared and the object will inherit its theme from its parent (which
342 * ultimately will use the default theme if no specific themes are set). 342 * ultimately will use the default theme if no specific themes are set).
343 * 343 *
344 * Use special themes with great care as this will annoy users and make 344 * Use special themes with great care as this will annoy users and make
345 * configuration difficult. Avoid any custom themes at all if it can be 345 * configuration difficult. Avoid any custom themes at all if it can be
346 * helped. 346 * helped.
347 */ 347 */
348 EAPI void elm_object_theme_set(Evas_Object *obj, Elm_Theme *th) EINA_ARG_NONNULL(1); 348EAPI void
349 elm_object_theme_set(Evas_Object *obj, Elm_Theme *th)
350EINA_ARG_NONNULL(1);
349 351
350 /** 352/**
351 * Get the specific theme to be used 353 * Get the specific theme to be used
352 * 354 *
353 * @param obj The object to get the specific theme from 355 * @param obj The object to get the specific theme from
354 * @return The specifc theme set. 356 * @return The specifc theme set.
355 * 357 *
356 * This will return a specific theme set, or NULL if no specific theme is 358 * This will return a specific theme set, or NULL if no specific theme is
357 * set on that object. It will not return inherited themes from parents, only 359 * set on that object. It will not return inherited themes from parents, only
358 * the specific theme set for that specific object. See elm_object_theme_set() 360 * the specific theme set for that specific object. See elm_object_theme_set()
359 * for more information. 361 * for more information.
360 */ 362 */
361 EAPI Elm_Theme *elm_object_theme_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 363EAPI Elm_Theme *elm_object_theme_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
362 364
363 /** 365/**
364 * Get a data item from a theme 366 * Get a data item from a theme
365 * 367 *
366 * @param th The theme, or NULL for default theme 368 * @param th The theme, or NULL for default theme
367 * @param key The data key to search with 369 * @param key The data key to search with
368 * @return The data value, or NULL on failure 370 * @return The data value, or NULL on failure
369 * 371 *
370 * This function is used to return data items from edc in @p th, an overlay, or an extension. 372 * This function is used to return data items from edc in @p th, an overlay, or an extension.
371 * It works the same way as edje_file_data_get() except that the return is stringshared. 373 * It works the same way as edje_file_data_get() except that the return is stringshared.
372 */ 374 */
373 EAPI const char *elm_theme_data_get(Elm_Theme *th, const char *key) EINA_ARG_NONNULL(2); 375EAPI const char *elm_theme_data_get(Elm_Theme *th, const char *key) EINA_ARG_NONNULL(2);
374
375 /**
376 * @}
377 */
378 376
377/**
378 * @}
379 */