annotate examples/example-ui/button-glower.c @ 646:7e1eb7f6c049 default tip @

misc: remove .clang
author David Demelier <markand@malikania.fr>
date Sun, 04 Feb 2024 15:24:37 +0100
parents 509b395171f2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
502
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
2 * button-style-glow.c -- example of glowing button
502
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
19 #include <assert.h>
502
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
21 #include "button-glower.h"
502
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
23 static void
618
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
24 update(struct mlk_button_style *self, struct mlk_button *button, unsigned int ticks)
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
25 {
618
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
26 struct button_glower *glower = self->data;
506
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents: 505
diff changeset
27
520
7e7c6786d21e ui: button has now pressed style attributes
David Demelier <markand@malikania.fr>
parents: 507
diff changeset
28 /* Don't update if pressed. */
7e7c6786d21e ui: button has now pressed style attributes
David Demelier <markand@malikania.fr>
parents: 507
diff changeset
29 if (!button->pressed) {
7e7c6786d21e ui: button has now pressed style attributes
David Demelier <markand@malikania.fr>
parents: 507
diff changeset
30 mlk_glower_update(&glower->glower, ticks);
618
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
31 glower->style.background = glower->glower.color;
520
7e7c6786d21e ui: button has now pressed style attributes
David Demelier <markand@malikania.fr>
parents: 507
diff changeset
32 }
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
33 }
502
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 void
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
36 button_glower_init(struct button_glower *glower, struct mlk_button *button)
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
37 {
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
38 assert(glower);
618
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
39 assert(button);
502
ab2816f9551c ui: start reworking on styles
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
618
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
41 glower->style.background = glower->glower.start;
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
42 glower->style.data = glower;
509b395171f2 ui: simplify button
David Demelier <markand@malikania.fr>
parents: 520
diff changeset
43 glower->style.update = update;
507
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
44
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
45 button->style = &glower->style;
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
46
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
47 mlk_glower_init(&glower->glower);
d49a05e7a5b5 ui: separate delegate/style
David Demelier <markand@malikania.fr>
parents: 506
diff changeset
48 }