Mercurial > molko
annotate examples/example-label.c @ 150:9733d379be89
ui: add a standalone align() function
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 15 Oct 2020 13:13:38 +0200 |
parents | a43e79d489ea |
children | aa6e70e330a1 |
rev | line source |
---|---|
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * example-label.c -- show how to use label and alignments |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <core/clock.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <core/event.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <core/painter.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <core/panic.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <core/sys.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include <core/util.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <core/window.h> |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
148
c577c15df07f
misc: split libraries, closes #2496
David Demelier <markand@malikania.fr>
parents:
145
diff
changeset
|
27 #include <ui/label.h> |
c577c15df07f
misc: split libraries, closes #2496
David Demelier <markand@malikania.fr>
parents:
145
diff
changeset
|
28 #include <ui/theme.h> |
c577c15df07f
misc: split libraries, closes #2496
David Demelier <markand@malikania.fr>
parents:
145
diff
changeset
|
29 |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 #define W (1280) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 #define H (720) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 static void |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 init(void) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 if (!sys_init() || |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 !window_init("Example - Label", W, H) || |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 !theme_init()) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 panic(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 static void |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 quit(void) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 theme_finish(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 window_finish(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 sys_finish(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 static void |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 run(void) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 struct clock clock = {0}; |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 struct label labels[] = { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 .text = "Top left", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
61 .align = ALIGN_TOP_LEFT |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 .text = "Top", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
69 .align = ALIGN_TOP |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 .text = "Top right", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
77 .align = ALIGN_TOP_RIGHT |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 .text = "Right", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
85 .align = ALIGN_RIGHT |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 .text = "Bottom right", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
93 .align = ALIGN_BOTTOM_RIGHT |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 .text = "Bottom", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
101 .align = ALIGN_BOTTOM |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 .text = "Bottom left", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
109 .align = ALIGN_BOTTOM_LEFT |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 .text = "Left", |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
117 .align = ALIGN_LEFT |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 .x = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 .y = 0, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 .w = W, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 .h = H, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 .text = "The world is Malikania.", |
149
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
125 .flags = LABEL_FLAGS_SHADOW, |
150
9733d379be89
ui: add a standalone align() function
David Demelier <markand@malikania.fr>
parents:
149
diff
changeset
|
126 .align = ALIGN_CENTER |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 }, |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 }; |
149
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
129 struct label mlabel = { |
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
130 .text = "This one follows your mouse and is not aligned." |
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
131 }; |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 clock_start(&clock); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 for (;;) { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 union event ev; |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 unsigned int elapsed = clock_elapsed(&clock); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 clock_start(&clock); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 while (event_poll(&ev)) { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 switch (ev.type) { |
149
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
143 case EVENT_MOUSE: |
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
144 mlabel.x = ev.mouse.x; |
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
145 mlabel.y = ev.mouse.y; |
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
146 break; |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 case EVENT_QUIT: |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 return; |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 default: |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 break; |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 painter_set_color(0x4f8fbaff); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 painter_clear(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 for (size_t i = 0; i < NELEM(labels); ++i) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 label_draw(&labels[i]); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
149
a43e79d489ea
ui: allow custom position of labels
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
160 label_draw(&mlabel); |
145
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 painter_present(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 if ((elapsed = clock_elapsed(&clock)) < 20) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 delay(20 - elapsed); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 int |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 main(int argc, char **argv) |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 { |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 (void)argc; |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 (void)argv; |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 init(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 run(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 quit(); |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 } |
7f1af54bb35a
core: rework label alignment, closes #2494 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 |