summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_color_class.h
blob: 97a503148dc8291284d121648c643036cf88e979 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifndef ELM_COLOR_CLASS_H
# define ELM_COLOR_CLASS_H

/**
 * @defgroup Elm_Color_Class_Group Color Class Editor
 * @ingroup Elm_Color_Class_Group
 * @brief This group provides a UI for editing color classes in applications.
 *
 * @{
 */

//#define ELM_COLOR_CLASS_METHOD_BASE "org.elementary.colorclass"

/**
 * @typedef Elm_Color_Class_Name_Cb
 * @brief A callback used to translate color class descriptions
 * @since 1.14
 */
typedef char *(*Elm_Color_Class_Name_Cb)(char *);

/**
 * @typedef Elm_Color_Class_List_Cb
 * @brief A callback used to provide a list of allocated Edje_Color_Class structs used by an application
 * @since 1.14
 *
 * The list and its members will be freed internally.
 */
typedef Eina_List *(*Elm_Color_Class_List_Cb)(void);

/**
 * @brief Create a new color class editor
 * @param obj The parent object
 *
 * A color class editor is a visual representation of the color schemes in an application.
 * Values changed in the editor are stored in Elementary's config and will remain until they
 * are reset or the config is cleared. By default, the editor will load only the currently active
 * color classes in an application.
 *
 * @since 1.14
 */
EAPI Evas_Object *elm_color_class_editor_add(Evas_Object *obj);

/**
 * @brief Set a callback to provide translations for color class descriptions
 * @param cb The callback to use
 *
 * This callback will be called globally by the application to translate any available color class
 * description strings from the theme's color classes.
 *
 * @since 1.14
 **/
EAPI void elm_color_class_translate_cb_set(Elm_Color_Class_Name_Cb cb);

/**
 * @brief Set a callback to provide a list of supplementary color classes
 * @param cb The callback to use
 *
 * This callback will be called globally by the application to provide extra color classes
 * that an application may use but which may not be currently loaded.
 *
 * @see Elm_Color_Class_List_Cb
 *
 * @since 1.14
 **/
EAPI void elm_color_class_list_cb_set(Elm_Color_Class_List_Cb cb);

/**
 * @brief Create an allocated list of allocated Edje_Color_Class structs from an open edje file
 * @param f The file to list color classes from
 * @return The list of color classes present in the file
 *
 * This is a helper function to create a list for use with #Elm_Color_Class_List_Cb callbacks.
 *
 * @see Elm_Color_Class_List_Cb
 *
 * @since 1.14
 **/
EAPI Eina_List *elm_color_class_util_edje_file_list(Eina_File *f);
/** @} */

#endif