annotate libui/ui/theme.h @ 152:1008a796a9e7

ui: make UI widgets usable as actions While here add a example-ui program with move support.
author David Demelier <markand@malikania.fr>
date Thu, 15 Oct 2020 18:09:45 +0200
parents b19d076856d2
children c3a40062acc2
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 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 * \return false on errors
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 * \warning This function must be called before any other theme functions.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 bool
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 theme_init(void);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 * Get a reference to the default theme.
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 * \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
120 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 struct theme *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 theme_default(void);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 /**
146
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
125 * Convenient shortcut to shallow copy src into dst.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
126 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
127 * 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
128 * want to modify some attributes.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
129 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
130 * 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
131 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
132 * \pre dst != NULL
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
133 * \param dst the destination theme
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
134 * \param src the source theme (may be NULL)
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
135 * \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
136 * regions.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
137 */
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
138 void
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
139 theme_shallow(struct theme *dst, const struct theme *src);
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
140
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
141 /**
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 * Draw a frame.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 * \pre frame != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 * \param frame the frame
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 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
150
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 * Draw a label.
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 * \pre label != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 * \param label the label
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 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
160
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 * Draw a button.
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 * \pre button != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 * \param button the button
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 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
170
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 /**
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
172 * Draw a checkbox.
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
173 *
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
174 * \param t the theme to use (may be NULL)
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
175 * \param cb the checkbox
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
176 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
177 void
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
178 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
179
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
180 /**
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 * Close associated resources.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 theme_finish(void);
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 #endif /* !MOLKO_THEME_H */