annotate libui/ui/theme.h @ 156:c3a40062acc2

misc: create more generic startup function, closes #2500
author David Demelier <markand@malikania.fr>
date Fri, 16 Oct 2020 13:54:31 +0200
parents 1008a796a9e7
children 6992085d47fd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * theme.h -- abstract theming
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef MOLKO_THEME_H
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define MOLKO_THEME_H
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 * \file theme.h
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * \brief Abstract theming.
152
1008a796a9e7 ui: make UI widgets usable as actions
David Demelier <markand@malikania.fr>
parents: 151
diff changeset
25 * \ingroup ui
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 #include <stdbool.h>
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
30 struct checkbox;
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 struct button;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 struct font;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 struct frame;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 struct label;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 * \brief Font component.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 enum theme_font {
133
c46f80820b42 core: revamp debug using theme
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
40 THEME_FONT_DEBUG, /*!< Font for debug messages. */
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 THEME_FONT_INTERFACE, /*!< Font for interface elements. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 THEME_FONT_LAST /*!< Unused. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 };
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 * \brief Theme colors.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 enum theme_color {
133
c46f80820b42 core: revamp debug using theme
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
49 THEME_COLOR_DEBUG, /*!< Debug color font. */
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 THEME_COLOR_NORMAL, /*!< Normal font color. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 THEME_COLOR_SELECTED, /*!< Font color for selected elements. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 THEME_COLOR_SHADOW, /*!< Shadow color. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 THEME_COLOR_LAST /*!< Unused. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 };
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 * \brief Abstract theme structure.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 struct theme {
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
61 * (+&) Fonts catalog.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 struct font *fonts[THEME_FONT_LAST];
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
66 * (+) Miscellaneous colors.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 unsigned long colors[THEME_COLOR_LAST];
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
71 * (+) Padding between GUI elements.
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
72 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
73 unsigned int padding;
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
74
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
75 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
76 * (+) Draw a frame.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 * This function is used to draw a box usually as a container where UI
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 * elements will be put.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 * \see \ref theme_draw_frame
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 void (*draw_frame)(struct theme *, const struct frame *);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
86 * (+) Draw a label.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 * \see \ref theme_draw_label
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 void (*draw_label)(struct theme *, const struct label *);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
91
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
93 * (+) Draw a button.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 * \see \ref theme_draw_button
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 void (*draw_button)(struct theme *, const struct button *);
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
98
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
99 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
100 * (+) Draw a checkbox.
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
101 *
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
102 * \see \ref theme_draw_button
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
103 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
104 void (*draw_checkbox)(struct theme *t, const struct checkbox *);
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 };
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 * Initialize the theming system.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 *
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 152
diff changeset
110 * This function is automatically called from \ref ui_init and thus not
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 152
diff changeset
111 * necessary from user.
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 152
diff changeset
112 *
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 152
diff changeset
113 * \return False on error.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 bool
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 theme_init(void);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
117
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 * Get a reference to the default theme.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 * \return A non-owning pointer to a static storage for the default theme
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 struct theme *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 theme_default(void);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 /**
146
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
127 * Convenient shortcut to shallow copy src into dst.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
128 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
129 * Use this function when you want your own local copy of a theme because you
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
130 * want to modify some attributes.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
131 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
132 * This is a shortcut to `memcpy(dst, src, sizeof (*src))`.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
133 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
134 * \pre dst != NULL
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
135 * \param dst the destination theme
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
136 * \param src the source theme (may be NULL)
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
137 * \note Resources are not cloned, internal pointers will adress the same
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
138 * regions.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
139 */
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
140 void
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
141 theme_shallow(struct theme *dst, const struct theme *src);
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
142
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
143 /**
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 * Draw a frame.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 * \pre frame != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 * \param frame the frame
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 theme_draw_frame(struct theme *t, const struct frame *frame);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
152
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 * Draw a label.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 * \pre label != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 * \param label the label
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 theme_draw_label(struct theme *t, const struct label *label);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
162
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 * Draw a button.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 * \pre button != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 * \param button the button
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 theme_draw_button(struct theme *t, const struct button *button);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
172
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 /**
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
174 * Draw a checkbox.
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
175 *
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
176 * \param t the theme to use (may be NULL)
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
177 * \param cb the checkbox
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
178 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
179 void
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
180 theme_draw_checkbox(struct theme *t, const struct checkbox *cb);
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
181
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
182 /**
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 152
diff changeset
183 * This function is automatically called from \ref ui_finish and thus not
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 152
diff changeset
184 * necessary from user.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 theme_finish(void);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
188
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 #endif /* !MOLKO_THEME_H */