Mercurial > molko
annotate libmlk-ui/mlk/ui/frame.c @ 624:bbf30f167274
ui: improve button documentation
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 23 Aug 2023 21:20:16 +0200 |
parents | dae4cdc6a984 |
children |
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 * frame.h -- GUI frame |
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
445
773a082f0b91
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
433
diff
changeset
|
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr> |
99
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 #include <assert.h> |
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
431
8f59201dc76b
core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
409
diff
changeset
|
21 #include <mlk/core/painter.h> |
151
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
22 |
99
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include "frame.h" |
616 | 24 #include "ui_p.h" |
504 | 25 |
26 static void | |
616 | 27 draw(struct mlk_frame_style *self, struct mlk_frame *frame) |
504 | 28 { |
616 | 29 mlk_painter_set_color(self->border); |
505
6100c643dba0
ui: finally ditch theme
David Demelier <markand@malikania.fr>
parents:
504
diff
changeset
|
30 mlk_painter_draw_rectangle(frame->x, frame->y, frame->w, frame->h); |
616 | 31 mlk_painter_set_color(self->background); |
507
d49a05e7a5b5
ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents:
505
diff
changeset
|
32 mlk_painter_draw_rectangle( |
616 | 33 frame->x + self->border_size, |
34 frame->y + self->border_size, | |
35 frame->w - (self->border_size * 2), | |
36 frame->h - (self->border_size * 2) | |
507
d49a05e7a5b5
ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents:
505
diff
changeset
|
37 ); |
504 | 38 } |
39 | |
616 | 40 |
41 struct mlk_frame_style mlk_frame_style_dark = { | |
42 .background = 0x222323ff, | |
43 .border = 0x141414ff, | |
44 .border_size = 2, | |
604
dd80b59fffaf
ui: do the same with frame
David Demelier <markand@malikania.fr>
parents:
507
diff
changeset
|
45 .draw = draw |
507
d49a05e7a5b5
ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents:
505
diff
changeset
|
46 }; |
d49a05e7a5b5
ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents:
505
diff
changeset
|
47 |
616 | 48 struct mlk_frame_style mlk_frame_style_light = { |
49 .background = 0xf5f7faff, | |
50 .border = 0xcdd2daff, | |
51 .border_size = 2, | |
52 .draw = draw | |
53 }; | |
99
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 |
616 | 55 struct mlk_frame_style *mlk_frame_style = &mlk_frame_style_light; |
507
d49a05e7a5b5
ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents:
505
diff
changeset
|
56 |
99
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 void |
507
d49a05e7a5b5
ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents:
505
diff
changeset
|
58 mlk_frame_update(struct mlk_frame *frame, unsigned int ticks) |
151
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
59 { |
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
60 assert(frame); |
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
61 |
616 | 62 MLK__STYLE_CALL(frame->style, mlk_frame_style, update, frame, ticks); |
151
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
63 } |
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
64 |
b19d076856d2
ui: cleanup theme module, closes #2498
David Demelier <markand@malikania.fr>
parents:
148
diff
changeset
|
65 void |
616 | 66 mlk_frame_draw(struct mlk_frame *frame) |
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 assert(frame); |
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
616 | 70 MLK__STYLE_CALL(frame->style, mlk_frame_style, draw, frame); |
99
4ac71ac10c9f
core: start adding some UI elements
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 } |