Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
gdkkeys.h
Go to the documentation of this file.
1/*
2 This file is part of the Ansel project.
3 Copyright (C) 2025 Aurélien PIERRE.
4
5 Ansel is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 Ansel is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with Ansel. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef DT_WIDGETS_GDKKEYS_H
20#define DT_WIDGETS_GDKKEYS_H
21#include <gdk/gdkkeysyms.h>
22#include <glib.h>
23
24G_BEGIN_DECLS
25
26
34static inline guint dt_keys_numpad_alternatives(const guint key_val)
35{
36 guint alt_char = key_val;
37 switch(key_val)
38 {
39 case GDK_KEY_0:
40 alt_char = GDK_KEY_KP_0;
41 break;
42 case GDK_KEY_1:
43 alt_char = GDK_KEY_KP_1;
44 break;
45 case GDK_KEY_2:
46 alt_char = GDK_KEY_KP_2;
47 break;
48 case GDK_KEY_3:
49 alt_char = GDK_KEY_KP_3;
50 break;
51 case GDK_KEY_4:
52 alt_char = GDK_KEY_KP_4;
53 break;
54 case GDK_KEY_5:
55 alt_char = GDK_KEY_KP_5;
56 break;
57 case GDK_KEY_6:
58 alt_char = GDK_KEY_KP_6;
59 break;
60 case GDK_KEY_7:
61 alt_char = GDK_KEY_KP_7;
62 break;
63 case GDK_KEY_8:
64 alt_char = GDK_KEY_KP_8;
65 break;
66 case GDK_KEY_9:
67 alt_char = GDK_KEY_KP_9;
68 break;
69 case GDK_KEY_Left:
70 alt_char = GDK_KEY_KP_Left;
71 break;
72 case GDK_KEY_Right:
73 alt_char = GDK_KEY_KP_Right;
74 break;
75 case GDK_KEY_Up:
76 alt_char = GDK_KEY_KP_Up;
77 break;
78 case GDK_KEY_Down:
79 alt_char = GDK_KEY_KP_Down;
80 break;
81 case GDK_KEY_Home:
82 alt_char = GDK_KEY_KP_Home;
83 break;
84 case GDK_KEY_End:
85 alt_char = GDK_KEY_KP_End;
86 break;
87 case GDK_KEY_Insert:
88 alt_char = GDK_KEY_KP_Insert;
89 break;
90 case GDK_KEY_Return:
91 alt_char = GDK_KEY_KP_Enter;
92 break;
93 case GDK_KEY_Page_Up:
94 alt_char = GDK_KEY_KP_Page_Up;
95 break;
96 case GDK_KEY_Page_Down:
97 alt_char = GDK_KEY_KP_Page_Down;
98 break;
99 case GDK_KEY_plus:
100 alt_char = GDK_KEY_KP_Add;
101 break;
102 case GDK_KEY_minus:
103 alt_char = GDK_KEY_KP_Subtract;
104 break;
105 default:
106 break;
107 }
108
109 return alt_char;
110}
111
118static inline guint dt_keys_mainpad_alternatives(const guint key_val)
119{
120 guint alt_char = key_val;
121 switch(key_val)
122 {
123 case GDK_KEY_KP_0:
124 alt_char = GDK_KEY_0;
125 break;
126 case GDK_KEY_KP_1:
127 alt_char = GDK_KEY_1;
128 break;
129 case GDK_KEY_KP_2:
130 alt_char = GDK_KEY_2;
131 break;
132 case GDK_KEY_KP_3:
133 alt_char = GDK_KEY_3;
134 break;
135 case GDK_KEY_KP_4:
136 alt_char = GDK_KEY_4;
137 break;
138 case GDK_KEY_KP_5:
139 alt_char = GDK_KEY_5;
140 break;
141 case GDK_KEY_KP_6:
142 alt_char = GDK_KEY_6;
143 break;
144 case GDK_KEY_KP_7:
145 alt_char = GDK_KEY_7;
146 break;
147 case GDK_KEY_KP_8:
148 alt_char = GDK_KEY_8;
149 break;
150 case GDK_KEY_KP_9:
151 alt_char = GDK_KEY_9;
152 break;
153 case GDK_KEY_KP_Left:
154 alt_char = GDK_KEY_Left;
155 break;
156 case GDK_KEY_KP_Right:
157 alt_char = GDK_KEY_Right;
158 break;
159 case GDK_KEY_KP_Up:
160 alt_char = GDK_KEY_Up;
161 break;
162 case GDK_KEY_KP_Down:
163 alt_char = GDK_KEY_Down;
164 break;
165 case GDK_KEY_KP_Home:
166 alt_char = GDK_KEY_Home;
167 break;
168 case GDK_KEY_KP_End:
169 alt_char = GDK_KEY_End;
170 break;
171 case GDK_KEY_KP_Insert:
172 alt_char = GDK_KEY_Insert;
173 break;
174 case GDK_KEY_KP_Enter:
175 alt_char = GDK_KEY_Return;
176 break;
177 case GDK_KEY_KP_Page_Up:
178 alt_char = GDK_KEY_Page_Up;
179 break;
180 case GDK_KEY_KP_Page_Down:
181 alt_char = GDK_KEY_Page_Down;
182 break;
183 case GDK_KEY_KP_Add:
184 alt_char = GDK_KEY_plus;
185 break;
186 case GDK_KEY_KP_Subtract:
187 alt_char = GDK_KEY_minus;
188 break;
189 default:
190 break;
191 }
192
193 return alt_char;
194}
195
196G_END_DECLS
197
198#endif // DT_WIDGETS_GDKKEYS_H
static guint dt_keys_mainpad_alternatives(const guint key_val)
Remap keypad keys to usual mainpad ones.
Definition gdkkeys.h:118
static G_BEGIN_DECLS guint dt_keys_numpad_alternatives(const guint key_val)
Find the numpad equivalent key of any given key. Use this to define/handle alternative shortcuts.
Definition gdkkeys.h:34