annotate libui/ui/theme.h @ 148:c577c15df07f

misc: split libraries, closes #2496
author David Demelier <markand@malikania.fr>
date Thu, 15 Oct 2020 10:32:18 +0200
parents libcore/core/theme.h@b386d25832c8
children b19d076856d2
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.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 */
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 #include <stdbool.h>
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
29 struct checkbox;
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 struct button;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 struct font;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 struct frame;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 struct label;
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
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 * \brief Font component.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 enum theme_font {
133
c46f80820b42 core: revamp debug using theme
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
39 THEME_FONT_DEBUG, /*!< Font for debug messages. */
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 THEME_FONT_INTERFACE, /*!< Font for interface elements. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 THEME_FONT_LAST /*!< Unused. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 };
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 * \brief Theme colors.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 enum theme_color {
133
c46f80820b42 core: revamp debug using theme
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
48 THEME_COLOR_DEBUG, /*!< Debug color font. */
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 THEME_COLOR_NORMAL, /*!< Normal font color. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 THEME_COLOR_SELECTED, /*!< Font color for selected elements. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 THEME_COLOR_SHADOW, /*!< Shadow color. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 THEME_COLOR_LAST /*!< Unused. */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 };
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 * \brief Abstract theme structure.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 struct theme {
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
60 * (+&) Fonts catalog.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 struct font *fonts[THEME_FONT_LAST];
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
65 * (+) Miscellaneous colors.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 unsigned long colors[THEME_COLOR_LAST];
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
70 * (+) Padding between GUI elements.
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
71 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
72 unsigned int padding;
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
73
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
74 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
75 * (+) Draw a frame.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 * 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
78 * elements will be put.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 * \see \ref theme_draw_frame
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 void (*draw_frame)(struct theme *, const struct frame *);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
85 * (+) Draw a label.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 * \see \ref theme_draw_label
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 void (*draw_label)(struct theme *, const struct label *);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
92 * (+) Draw a button.
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 * \see \ref theme_draw_button
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 void (*draw_button)(struct theme *, const struct button *);
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
97
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
98 /**
147
b386d25832c8 doc: use new nomenclature, closes #2497
David Demelier <markand@malikania.fr>
parents: 146
diff changeset
99 * (+) Draw a checkbox.
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
100 *
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
101 * \see \ref theme_draw_button
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
102 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
103 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
104 };
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 * Initialize the theming system.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 * \return false on errors
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 * \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
111 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 bool
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 theme_init(void);
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 /**
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 * Get a reference to the default theme.
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 * \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
119 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 struct theme *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 theme_default(void);
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 /**
146
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
124 * Convenient shortcut to shallow copy src into dst.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
125 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
126 * 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
127 * want to modify some attributes.
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 * 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
130 *
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
131 * \pre dst != NULL
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
132 * \param dst the destination theme
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
133 * \param src the source theme (may be NULL)
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
134 * \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
135 * regions.
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
136 */
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
137 void
7d7ea7a9cf50 core: add theme_shallow function
David Demelier <markand@malikania.fr>
parents: 133
diff changeset
138 theme_shallow(struct theme *dst, const struct theme *src);
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 /**
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
141 * Get the desired padding between GUI elements.
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
142 *
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
143 * \param t the theme to use (may be NULL)
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
144 * \return the padding in pixels
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
145 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
146 unsigned int
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
147 theme_padding(const struct theme *t);
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
148
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
149 /**
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 * Draw a frame.
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 * \pre frame != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 * \param frame the frame
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 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 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
158
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 * Draw a label.
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 * \pre label != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 * \param label the label
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 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 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
168
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 * Draw a button.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 *
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 * \pre button != NULL
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 * \param t the theme to use (may be NULL)
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 * \param button the button
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 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
178
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 /**
115
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
180 * Draw a checkbox.
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 * \param t the theme to use (may be NULL)
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
183 * \param cb the checkbox
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
184 */
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
185 void
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
186 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
187
3bd0d3a39e30 core: implement checkbox, closes #2486
David Demelier <markand@malikania.fr>
parents: 99
diff changeset
188 /**
99
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 * Close associated resources.
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 */
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 void
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 theme_finish(void);
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
193
4ac71ac10c9f core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 #endif /* !MOLKO_THEME_H */