wtf? stray escape chars! fix!
[framework/uifw/elementary.git] / src / lib / elm_theme.h
index 8c05b35..10c5f6a 100644 (file)
@@ -1,5 +1,6 @@
 /**
  * @defgroup Theme Theme
+ * @ingroup Elementary
  *
  * Elementary uses Edje to theme its widgets, naturally. But for the most
  * part this is hidden behind a simpler interface that lets the user set
@@ -22,7 +23,7 @@
  * by setting the @c ELM_THEME environment variable before running an
  * application, or globally for all programs using the @c elementary_config
  * utility. Applications can change the default theme using elm_theme_set(),
- * but this can go against the user wishes, so it's not an adviced practice.
+ * but this can go against the user wishes, so it's not an advised practice.
  *
  * Ideally, applications should find everything they need in the already
  * provided theme, but there may be occasions when that's not enough and
@@ -49,7 +50,7 @@
  * theme for the application and will probably clash with the end user
  * options, not to mention the risk of ending up with not matching styles
  * across the program. Unless there's a very special reason to use them,
- * overlays should be avoided for the resons exposed before.
+ * overlays should be avoided for the reasons exposed before.
  *
  * All these theme lists are handled by ::Elm_Theme instances. Elementary
  * keeps one default internally and every function that receives one of
@@ -91,6 +92,8 @@ typedef struct _Elm_Theme Elm_Theme;
  * actually apply it yet. The child of the scroller will have a specific
  * theme set to show this preview before the user decides to apply it to all
  * applications).
+ *
+ * @ingroup Theme
  */
 EAPI Elm_Theme       *elm_theme_new(void);
 
@@ -100,11 +103,13 @@ EAPI Elm_Theme       *elm_theme_new(void);
  * @param th The theme to free
  *
  * This frees a theme created with elm_theme_new().
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_free(Elm_Theme *th);
 
 /**
- * Copy the theme fom the source to the destination theme
+ * Copy the theme from the source to the destination theme
  *
  * @param th The source theme to copy from
  * @param thdst The destination theme to copy data to
@@ -113,6 +118,8 @@ EAPI void             elm_theme_free(Elm_Theme *th);
  * and overlays from @p th to @p thdst. If @p th references a theme, then
  * @p thdst is also set to reference it, with all the theme settings,
  * overlays and extensions that @p th had.
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst);
 
@@ -125,6 +132,8 @@ EAPI void             elm_theme_copy(Elm_Theme *th, Elm_Theme *thdst);
  * This clears @p th to be empty and then sets it to refer to @p thref
  * so @p th acts as an override to @p thref, but where its overrides
  * don't apply, it will fall through to @p thref for configuration.
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref);
 
@@ -136,6 +145,8 @@ EAPI void             elm_theme_ref_set(Elm_Theme *th, Elm_Theme *thref);
  *
  * This gets the theme set as the reference theme by elm_theme_ref_set().
  * If no theme is set as a reference, NULL is returned.
+ *
+ * @ingroup Theme
  */
 EAPI Elm_Theme       *elm_theme_ref_get(Elm_Theme *th);
 
@@ -147,6 +158,8 @@ EAPI Elm_Theme       *elm_theme_ref_get(Elm_Theme *th);
  * This returns the internal default theme setup handle that all widgets
  * use implicitly unless a specific theme is set. This is also often use
  * as a shorthand of NULL.
+ *
+ * @ingroup Theme
  */
 EAPI Elm_Theme       *elm_theme_default_get(void);
 
@@ -161,11 +174,13 @@ EAPI Elm_Theme       *elm_theme_default_get(void);
  * new styles, or changing system theme configuration is not possible. Do
  * NOT use this instead of a proper system theme configuration. Use proper
  * configuration files, profiles, environment variables etc. to set a theme
- * so that the theme can be altered by simple confiugration by a user. Using
+ * so that the theme can be altered by simple configuration by a user. Using
  * this call to achieve that effect is abusing the API and will create lots
  * of trouble.
  *
  * @see elm_theme_extension_add()
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_overlay_add(Elm_Theme *th, const char *item);
 
@@ -176,10 +191,24 @@ EAPI void             elm_theme_overlay_add(Elm_Theme *th, const char *item);
  * @param item The name of the theme overlay
  *
  * @see elm_theme_overlay_add()
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_overlay_del(Elm_Theme *th, const char *item);
 
 /**
+ * Get the list of registered overlays for the given theme
+ *
+ * @param th The theme from which to get the overlays
+ * @return List of theme overlays. Do not free it.
+ *
+ * @see elm_theme_overlay_add()
+ *
+ * @ingroup Theme
+ */
+EAPI const Eina_List *elm_theme_overlay_list_get(const Elm_Theme *th);
+
+/**
  * Appends a theme extension to the list of extensions.
  *
  * @param th The theme to add to, or if NULL, the default theme
@@ -197,6 +226,8 @@ EAPI void             elm_theme_overlay_del(Elm_Theme *th, const char *item);
  * Use this call instead of elm_theme_overlay_add() for almost all cases.
  *
  * @see elm_object_style_set()
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_extension_add(Elm_Theme *th, const char *item);
 
@@ -207,10 +238,24 @@ EAPI void             elm_theme_extension_add(Elm_Theme *th, const char *item);
  * @param item The name of the theme extension
  *
  * @see elm_theme_extension_add()
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_extension_del(Elm_Theme *th, const char *item);
 
 /**
+ * Get the list of registered extensions for the given theme
+ *
+ * @param th The theme from which to get the extensions
+ * @return List of theme extensions. Do not free it.
+ *
+ * @see elm_theme_extension_add()
+ *
+ * @ingroup Theme
+ */
+EAPI const Eina_List *elm_theme_extension_list_get(const Elm_Theme *th);
+
+/**
  * Set the theme search order for the given theme
  *
  * @param th The theme to set the search order, or if NULL, the default theme
@@ -225,6 +270,8 @@ EAPI void             elm_theme_extension_del(Elm_Theme *th, const char *item);
  *
  * @see elm_theme_get()
  * @see elm_theme_list_get()
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_set(Elm_Theme *th, const char *theme);
 
@@ -239,6 +286,8 @@ EAPI void             elm_theme_set(Elm_Theme *th, const char *theme);
  *
  * @see elm_theme_set()
  * @see elm_theme_list_get()
+ *
+ * @ingroup Theme
  */
 EAPI const char      *elm_theme_get(Elm_Theme *th);
 
@@ -256,15 +305,17 @@ EAPI const char      *elm_theme_get(Elm_Theme *th);
  *
  * A theme element can consist of a full or relative path to a .edj file,
  * or a name, without extension, for a theme to be searched in the known
- * theme paths for Elemementary.
+ * theme paths for Elementary.
  *
  * @see elm_theme_set()
  * @see elm_theme_get()
+ *
+ * @ingroup Theme
  */
 EAPI const Eina_List *elm_theme_list_get(const Elm_Theme *th);
 
 /**
- * Return the full patrh for a theme element
+ * Return the full path for a theme element
  *
  * @param f The theme element name
  * @param in_search_path Pointer to a boolean to indicate if item is in the search path or not
@@ -272,12 +323,14 @@ EAPI const Eina_List *elm_theme_list_get(const Elm_Theme *th);
  *
  * This returns a string you should free with free() on success, NULL on
  * failure. This will search for the given theme element, and if it is a
- * full or relative path element or a simple searchable name. The returned
+ * full or relative path element or a simple search-able name. The returned
  * path is the full path to the file, if searched, and the file exists, or it
  * is simply the full path given in the element or a resolved path if
  * relative to home. The @p in_search_path boolean pointed to is set to
- * EINA_TRUE if the file was a searchable file andis in the search path,
+ * EINA_TRUE if the file was a search-able file and is in the search path,
  * and EINA_FALSE otherwise.
+ *
+ * @ingroup Theme
  */
 EAPI char            *elm_theme_list_item_path_get(const char *f, Eina_Bool *in_search_path);
 
@@ -290,6 +343,8 @@ EAPI char            *elm_theme_list_item_path_get(const char *f, Eina_Bool *in_
  * in the given theme. If @p th is NULL, then the default theme is flushed.
  * Call this function if source theme data has changed in such a way as to
  * make any caches Elementary kept invalid.
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_flush(Elm_Theme *th);
 
@@ -298,16 +353,10 @@ EAPI void             elm_theme_flush(Elm_Theme *th);
  *
  * This will flush all themes in the current application context, by calling
  * elm_theme_flush() on each of them.
- */
-EAPI void             elm_theme_full_flush(void);
-
-/**
- * Set the theme for all elementary using applications on the current display
  *
- * @param theme The name of the theme to use. Format same as the ELM_THEME
- * environment variable.
+ * @ingroup Theme
  */
-EAPI void             elm_theme_all_set(const char *theme);
+EAPI void             elm_theme_full_flush(void);
 
 /**
  * Return a list of theme elements in the theme search path
@@ -318,6 +367,8 @@ EAPI void             elm_theme_all_set(const char *theme);
  * for theme elements, and returns them in alphabetical order as theme
  * element names in a list of strings. Free this with
  * elm_theme_name_available_list_free() when you are done with the list.
+ *
+ * @ingroup Theme
  */
 EAPI Eina_List       *elm_theme_name_available_list_new(void);
 
@@ -327,6 +378,8 @@ EAPI Eina_List       *elm_theme_name_available_list_new(void);
  * This frees the list of themes returned by
  * elm_theme_name_available_list_new(). Once freed the list should no longer
  * be used. a new list mys be created.
+ *
+ * @ingroup Theme
  */
 EAPI void             elm_theme_name_available_list_free(Eina_List *list);
 
@@ -344,23 +397,25 @@ EAPI void             elm_theme_name_available_list_free(Eina_List *list);
  * Use special themes with great care as this will annoy users and make
  * configuration difficult. Avoid any custom themes at all if it can be
  * helped.
+ *
+ * @ingroup Theme
  */
-EAPI void
-                      elm_object_theme_set(Evas_Object *obj, Elm_Theme *th)
-EINA_ARG_NONNULL(1);
+EAPI void             elm_object_theme_set(Evas_Object *obj, Elm_Theme *th);
 
 /**
  * Get the specific theme to be used
  *
  * @param obj The object to get the specific theme from
- * @return The specifc theme set.
+ * @return The specific theme set.
  *
  * This will return a specific theme set, or NULL if no specific theme is
  * set on that object. It will not return inherited themes from parents, only
  * the specific theme set for that specific object. See elm_object_theme_set()
  * for more information.
+ *
+ * @ingroup Theme
  */
-EAPI Elm_Theme       *elm_object_theme_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+EAPI Elm_Theme       *elm_object_theme_get(const Evas_Object *obj);
 
 /**
  * Get a data item from a theme
@@ -371,8 +426,10 @@ EAPI Elm_Theme       *elm_object_theme_get(const Evas_Object *obj) EINA_ARG_NONN
  *
  * This function is used to return data items from edc in @p th, an overlay, or an extension.
  * It works the same way as edje_file_data_get() except that the return is stringshared.
+ *
+ * @ingroup Theme
  */
-EAPI const char      *elm_theme_data_get(Elm_Theme *th, const char *key) EINA_ARG_NONNULL(2);
+EAPI const char      *elm_theme_data_get(Elm_Theme *th, const char *key);
 
 /**
  * @}