Mercurial > molko
annotate examples/example-cursor/main.c @ 261:bfde372bf152
core: prefix utilities with util_
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 06 Dec 2020 23:06:34 +0100 |
parents | 76afe639fd72 |
children | 196264679079 |
rev | line source |
---|---|
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * example-cursor.c -- example on how to change cursor |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <stdio.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <core/core.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <core/event.h> |
207
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
23 #include <core/game.h> |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include <core/key.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <core/painter.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 #include <core/panic.h> |
207
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
27 #include <core/state.h> |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 #include <core/sys.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 #include <core/util.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 #include <core/window.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 #include <ui/label.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 #include <ui/ui.h> |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 #define W 1280 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 #define H 720 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 static char help_text[128]; |
207
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
39 static enum window_cursor cursor = WINDOW_CURSOR_ARROW; |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 static struct label help = { |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 .x = 10, |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 .y = 10, |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 .text = help_text, |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 .flags = LABEL_FLAGS_SHADOW |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 }; |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 static void |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 init(void) |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 { |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
209
diff
changeset
|
51 if (!core_init("fr.malikania", "cursor") || !ui_init()) |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 panic(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 if (!window_open("Example - Cursor", W, H)) |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 panic(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 } |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 static void |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 change(enum window_cursor cursor) |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 { |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 static const char *names[] = { |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 [WINDOW_CURSOR_ARROW] = "WINDOW_CURSOR_ARROW", |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 [WINDOW_CURSOR_EDIT] = "WINDOW_CURSOR_EDIT", |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 [WINDOW_CURSOR_WAIT] = "WINDOW_CURSOR_WAIT", |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 [WINDOW_CURSOR_CROSSHAIR] = "WINDOW_CURSOR_CROSSHAIR", |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 [WINDOW_CURSOR_SIZE] = "WINDOW_CURSOR_SIZE", |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 [WINDOW_CURSOR_NO] = "WINDOW_CURSOR_NO", |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 [WINDOW_CURSOR_HAND] = "WINDOW_CURSOR_HAND" |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 }; |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 snprintf(help_text, sizeof (help_text), "Keys: <Left>/<Right> to change cursor. Current: %s", names[cursor]); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 window_set_cursor(cursor); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 } |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 static void |
207
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
75 handle(struct state *st, const union event *ev) |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
76 { |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
77 (void)st; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
78 |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
79 switch (ev->type) { |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
80 case EVENT_KEYDOWN: |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
81 switch (ev->key.key) { |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
82 case KEY_LEFT: |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
83 if (cursor > 0) |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
84 change(--cursor); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
85 break; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
86 case KEY_RIGHT: |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
87 if (cursor + 1 < WINDOW_CURSOR_LAST) |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
88 change(++cursor); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
89 break; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
90 default: |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
91 break; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
92 } |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
93 |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
94 |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
95 break; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
96 case EVENT_QUIT: |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
97 game_quit(); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
98 break; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
99 default: |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
100 break; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
101 } |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
102 } |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
103 |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
104 static void |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
105 draw(struct state *st) |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
106 { |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
107 (void)st; |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
108 |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
109 painter_set_color(0xebede9ff); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
110 painter_clear(); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
111 label_draw(&help); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
112 painter_present(); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
113 } |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
114 |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
115 static void |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 run(void) |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 { |
207
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
118 struct state state = { |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
119 .handle = handle, |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
120 .draw = draw |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
121 }; |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 change(cursor); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
207
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
125 game_switch(&state, true); |
133926e08d6e
examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents:
163
diff
changeset
|
126 game_loop(); |
163
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 } |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 static void |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 quit(void) |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 { |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 window_finish(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 ui_finish(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 core_finish(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 } |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 int |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 main(int argc, char **argv) |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 { |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 (void)argc; |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 (void)argv; |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 init(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 run(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 quit(); |
4bbfcd9180a8
core: add window_set_cursor function, closes #2502
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 } |