annotate libmlk-example/mlk/example/glower.h @ 506:e205625015ba

ui: gridmenu is stylable
author David Demelier <markand@malikania.fr>
date Thu, 02 Mar 2023 08:54:00 +0100
parents
children d49a05e7a5b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
506
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * glower.h -- simple color animation
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef MLK_EXAMPLE_GLOWER_H
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define MLK_EXAMPLE_GLOWER_H
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 struct mlk_glower {
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 /* public */
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 unsigned long start;
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 unsigned long end;
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 unsigned long *color;
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 unsigned int delay;
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 /* private */
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 unsigned long target;
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 unsigned int elapsed;
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 };
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 void
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 mlk_glower_init(struct mlk_glower *);
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 void
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 mlk_glower_update(struct mlk_glower *, unsigned int);
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
e205625015ba ui: gridmenu is stylable
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 #endif /* !MLK_EXAMPLE_GLOWER_H */