aboutsummaryrefslogtreecommitdiff
path: root/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c')
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c546
1 files changed, 434 insertions, 112 deletions
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
index d711c86f9..cfcf765a0 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
@@ -24,6 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24 24
25#include "./unicode_macros.h" 25#include "./unicode_macros.h"
26#include "./unicode_weurope.h" 26#include "./unicode_weurope.h"
27#include "./unicode_hebrew.h"
27 28
28// Definition of ƒ (Dutch currency symbol). 29// Definition of ƒ (Dutch currency symbol).
29// Best changed in user_config.h, if you like a Euro symbol instead. 30// Best changed in user_config.h, if you like a Euro symbol instead.
@@ -174,109 +175,150 @@ enum custom_keycodes {
174 175
175// The _ACC layer, additional Unicode. 176// The _ACC layer, additional Unicode.
176# ifndef REMOVE_ACC // This cuts out the whole _ACC layer. 177# ifndef REMOVE_ACC // This cuts out the whole _ACC layer.
177 XP_ACC_AA , 178 XP_ACC_AA,
178 XP_ACC_AB , 179 XP_ACC_AB,
179 XP_ACC_AC , 180 XP_ACC_AC,
180 XP_ACC_AD , 181 XP_ACC_AD,
181 XP_ACC_AE , 182 XP_ACC_AE,
182 XP_ACC_AF , 183 XP_ACC_AF,
183 XP_ACC_AG , 184 XP_ACC_AG,
184 XP_ACC_AH , 185 XP_ACC_AH,
185 XP_ACC_AI , 186 XP_ACC_AI,
186 XP_ACC_AJ , 187 XP_ACC_AJ,
187 XP_ACC_BA , 188 XP_ACC_BA,
188 XP_ACC_BB , 189 XP_ACC_BB,
189 XP_ACC_BC , 190 XP_ACC_BC,
190 XP_ACC_BD , 191 XP_ACC_BD,
191 XP_ACC_BE , 192 XP_ACC_BE,
192 XP_ACC_BF , 193 XP_ACC_BF,
193 XP_ACC_BG , 194 XP_ACC_BG,
194 XP_ACC_BH , 195 XP_ACC_BH,
195 XP_ACC_BI , 196 XP_ACC_BI,
196 XP_ACC_BJ , 197 XP_ACC_BJ,
197 XP_ACC_BK , 198 XP_ACC_BK,
198 XP_ACC_CA , 199 XP_ACC_CA,
199 XP_ACC_CB , 200 XP_ACC_CB,
200 XP_ACC_CC , 201 XP_ACC_CC,
201 XP_ACC_CD , 202 XP_ACC_CD,
202 XP_ACC_CE , 203 XP_ACC_CE,
203 XP_ACC_CF , 204 XP_ACC_CF,
204 XP_ACC_CG , 205 XP_ACC_CG,
205 XP_ACC_CH , 206 XP_ACC_CH,
206 XP_ACC_CI , 207 XP_ACC_CI,
207 XP_ACC_CJ , 208 XP_ACC_CJ,
208# endif // REMOVE_ACC 209# endif // REMOVE_ACC
209 210
210# ifndef REMOVE_DRA // This cuts out the whole _DRA layer 211# ifndef REMOVE_DRA // This cuts out the whole _DRA layer
211// The _DRA layer, additional Unicode. 212// The _DRA layer, additional Unicode.
212 XP_DRA_AA , 213 XP_DRA_AA,
213 XP_DRA_AB , 214 XP_DRA_AB,
214 XP_DRA_AC , 215 XP_DRA_AC,
215 XP_DRA_AD , 216 XP_DRA_AD,
216 XP_DRA_AE , 217 XP_DRA_AE,
217 XP_DRA_AF , 218 XP_DRA_AF,
218 XP_DRA_AG , 219 XP_DRA_AG,
219 XP_DRA_AH , 220 XP_DRA_AH,
220 XP_DRA_AI , 221 XP_DRA_AI,
221 XP_DRA_AJ , 222 XP_DRA_AJ,
222 XP_DRA_BA , 223 XP_DRA_BA,
223 XP_DRA_BB , 224 XP_DRA_BB,
224 XP_DRA_BC , 225 XP_DRA_BC,
225 XP_DRA_BD , 226 XP_DRA_BD,
226 XP_DRA_BE , 227 XP_DRA_BE,
227 XP_DRA_BF , 228 XP_DRA_BF,
228 XP_DRA_BG , 229 XP_DRA_BG,
229 XP_DRA_BH , 230 XP_DRA_BH,
230 XP_DRA_BI , 231 XP_DRA_BI,
231 XP_DRA_BJ ,// XP_DRA_BK , // no 'BK' key definition on this layer 232 XP_DRA_BJ,// XP_DRA_BK , // no 'BK' key definition on this layer
232 XP_DRA_CA , 233 XP_DRA_CA,
233 XP_DRA_CB , 234 XP_DRA_CB,
234 XP_DRA_CC , 235 XP_DRA_CC,
235 XP_DRA_CD , 236 XP_DRA_CD,
236 XP_DRA_CE , 237 XP_DRA_CE,
237 XP_DRA_CF , 238 XP_DRA_CF,
238# endif // REMOVE_DRA 239# endif // REMOVE_DRA
239 XP_DRA_CG , // Needed for ☑ on Unicode tester key in _RAR 240 XP_DRA_CG, // Needed for ☑ on Unicode tester key in _RAR
240# ifndef REMOVE_DRA // This cuts out the whole _DRA layer 241# ifndef REMOVE_DRA // This cuts out the whole _DRA layer
241 XP_DRA_CH , 242 XP_DRA_CH,
242 XP_DRA_CI , 243 XP_DRA_CI,
243 XP_DRA_CJ , 244 XP_DRA_CJ,
244# endif // REMOVE_DRA 245# endif // REMOVE_DRA
245 246
246// The _BON layer, additional Unicode. 247// The _BON layer, additional Unicode.
247# ifndef REMOVE_BON // Removes this layer entirely, if set. 248# ifndef REMOVE_BON // Removes this layer entirely, if set.
248 XP_BON_AA , 249 XP_BON_AA,
249 XP_BON_AB , 250 XP_BON_AB,
250 XP_BON_AC , 251 XP_BON_AC,
251 XP_BON_AD , 252 XP_BON_AD,
252 XP_BON_AE , 253 XP_BON_AE,
253 XP_BON_AF , 254 XP_BON_AF,
254 XP_BON_AG , 255 XP_BON_AG,
255 XP_BON_AH , 256 XP_BON_AH,
256 XP_BON_AI , 257 XP_BON_AI,
257 XP_BON_AJ , 258 XP_BON_AJ,
258 XP_BON_BA , 259 XP_BON_BA,
259 XP_BON_BB , 260 XP_BON_BB,
260 XP_BON_BC , 261 XP_BON_BC,
261 XP_BON_BD , 262 XP_BON_BD,
262 XP_BON_BE , 263 XP_BON_BE,
263 XP_BON_BF , 264 XP_BON_BF,
264 XP_BON_BG , 265 XP_BON_BG,
265 XP_BON_BH , 266 XP_BON_BH,
266 XP_BON_BI , 267 XP_BON_BI,
267 XP_BON_BJ , 268 XP_BON_BJ,
268 XP_BON_BK , 269 XP_BON_BK,
269 XP_BON_CA , 270 XP_BON_CA,
270 XP_BON_CB , 271 XP_BON_CB,
271 XP_BON_CC , 272 XP_BON_CC,
272 XP_BON_CD , 273 XP_BON_CD,
273 XP_BON_CE , 274 XP_BON_CE,
274 XP_BON_CF , 275 XP_BON_CF,
275 XP_BON_CG , 276 XP_BON_CG,
276 XP_BON_CH , 277 XP_BON_CH,
277 XP_BON_CI , 278 XP_BON_CI,
278 XP_BON_CJ , 279 XP_BON_CJ,
279# endif // REMOVE_BON 280# endif // REMOVE_BON
281
282// Hebrew
283# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
284 XP_HEB_AA,
285 XP_HEB_AB,
286 XP_HEB_AC,
287 XP_HEB_AD,
288 XP_HEB_AE,
289 XP_HEB_AF,
290 XP_HEB_AG,
291 XP_HEB_AH,
292 XP_HEB_AI,
293 XP_HEB_AJ,
294 XP_HEB_BA,
295 XP_HEB_BB,
296 XP_HEB_BC,
297 XP_HEB_BD,
298 XP_HEB_BE,
299 XP_HEB_BF,
300 XP_HEB_BG,
301 XP_HEB_BH,
302 XP_HEB_BI,
303 XP_HEB_BJ,
304# if defined(HEBREW_ISRAEL)
305 XP_HEB_BK, //
306# endif
307 XP_HEB_CA,
308 XP_HEB_CB,
309 XP_HEB_CC,
310 XP_HEB_CD,
311 XP_HEB_CE,
312 XP_HEB_CF,
313 XP_HEB_CG,
314# if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
315 XP_HEB_CH,
316 XP_HEB_CI,
317 XP_HEB_CJ,
318# endif
319 XP_HEB_MQF, // ־
320# endif //BASE_HEBREW__*
321
280}; 322};
281 323
282// Pre-existing function, called for every key up and down. 324// Pre-existing function, called for every key up and down.
@@ -1244,12 +1286,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1244 1286
1245 case LEDS_ON: // Toggles left/right leds on or off 1287 case LEDS_ON: // Toggles left/right leds on or off
1246 if (record->event.pressed) { // key down 1288 if (record->event.pressed) { // key down
1289
1290# ifdef RGBLIGHT_ENABLE
1247 if (leds_on == FALSE) { 1291 if (leds_on == FALSE) {
1248 leds_on = TRUE; 1292 leds_on = TRUE;
1249 }else{ 1293 }else{
1250 leds_on = FALSE; 1294 leds_on = FALSE;
1251 } 1295 }
1296 set_led_colors_ (state_recall); // Update leds
1252 } 1297 }
1298# endif
1299
1253 break; 1300 break;
1254 1301
1255# ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now. 1302# ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now.
@@ -1652,11 +1699,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1652 case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up) 1699 case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up)
1653 if (record->event.pressed) { // key down 1700 if (record->event.pressed) { // key down
1654 1701
1655# ifdef FULL_DRA_4THROW
1656 unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „ 1702 unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „
1657# else
1658 unicode_hex2output_single (CS_DQUHR);// “
1659# endif
1660 1703
1661 } 1704 }
1662 break; 1705 break;
@@ -1664,11 +1707,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1664 case XP_DRA_AB: // because to the right of opening “, ≤ on < 1707 case XP_DRA_AB: // because to the right of opening “, ≤ on <
1665 if (record->event.pressed) { // key down 1708 if (record->event.pressed) { // key down
1666 1709
1667# ifdef FULL_DRA_4THROW
1668 unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤ 1710 unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤
1669# else
1670 unicode_hex2output_single (CS_DQUH);// ”
1671# endif
1672 1711
1673 } 1712 }
1674 break; 1713 break;
@@ -1676,11 +1715,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1676 case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on > 1715 case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on >
1677 if (record->event.pressed) { // key down 1716 if (record->event.pressed) { // key down
1678 1717
1679# ifdef FULL_DRA_4THROW
1680 unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥ 1718 unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥
1681# else
1682 unicode_hex2output_single (CS_POUND);// £
1683# endif
1684 1719
1685 } 1720 }
1686 break; 1721 break;
@@ -1690,6 +1725,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1690 1725
1691# ifdef FULL_DRA_4THROW 1726# ifdef FULL_DRA_4THROW
1692 unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢ 1727 unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢
1728# else
1729 unicode_hex2output_single (CS_NONE);// ∅ ¢
1693# endif 1730# endif
1694 1731
1695 } 1732 }
@@ -1710,11 +1747,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1710 case XP_DRA_AF: // Because left of 🙂, on top of ★ 1747 case XP_DRA_AF: // Because left of 🙂, on top of ★
1711 if (record->event.pressed) { // key down 1748 if (record->event.pressed) { // key down
1712 1749
1713# ifdef FULL_DRA_4THROW
1714 unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥ 1750 unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥
1715# else
1716 unicode_hex2output_single (CS_HEART);// ♥
1717# endif
1718 1751
1719 } 1752 }
1720 break; 1753 break;
@@ -1722,9 +1755,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1722 case XP_DRA_AG: // because 😊 ⍨ 1755 case XP_DRA_AG: // because 😊 ⍨
1723 if (record->event.pressed) { // key down 1756 if (record->event.pressed) { // key down
1724 1757
1725# ifdef FULL_DRA_4THROW
1726 unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁 1758 unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁
1727# endif
1728 1759
1729 } 1760 }
1730 break; 1761 break;
@@ -1732,9 +1763,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1732 case XP_DRA_AH: // because «no reason», next to 😊 (emoticons) 1763 case XP_DRA_AH: // because «no reason», next to 😊 (emoticons)
1733 if (record->event.pressed) { // key down 1764 if (record->event.pressed) { // key down
1734 1765
1735# ifdef FULL_DRA_4THROW
1736 unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎 1766 unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎
1737# endif
1738 1767
1739 } 1768 }
1740 break; 1769 break;
@@ -2343,6 +2372,299 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
2343 break; 2372 break;
2344 2373
2345# endif // REMOVE_BON 2374# endif // REMOVE_BON
2375
2376// Hebrew
2377# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
2378// The layout follows a standard hebrew keyboard, with the exception
2379// of ק, which is displaced by “.>” copied from the Dvorak layout.
2380
2381 // HEBREW_DVORAK
2382 // These letters on the upper left follow Dvorak layout.
2383 // The reason is space on the device: these are not macros.
2384 // Also: typing compatibility between Dvorak and Hebrew
2385 // for these similar/same symbols: ,<.>. Idealy these symbols
2386 // should be the hebrew variation, if space allows it.
2387
2388# if defined(HEBREW_ISRAEL)
2389
2390 case XP_HEB_AA: //
2391 if (record->event.pressed) { // key down
2392 // These shifts-up seem to work on GNU/Debian/Linux, otherwise it prints ':'
2393 if (shift_ison) send_string ( SS_UP(X_RSFT) SS_UP(X_LSFT) ";" ); // moved here from <esc> on standard hebrew
2394 else send_string ("/");//
2395 } break;
2396
2397 case XP_HEB_AB: //
2398 if (record->event.pressed) { // key down
2399 unicode_hex2output_single (HB_GERSH);// ׳
2400 }
2401 break;
2402
2403 case XP_HEB_AC: //
2404 if (record->event.pressed) { // key down
2405 unicode_hex2output_single (HB_QOF);// ק
2406 }
2407 break;
2408
2409# elif defined(HEBREW_QWERTY)
2410
2411 case XP_HEB_AA: //
2412 if (record->event.pressed) { // key down
2413 unicode_hex2output_single (HB_TAV);// ת
2414 }
2415 break;
2416
2417 case XP_HEB_AB: //
2418 if (record->event.pressed) { // key down
2419 unicode_hex2output_single (HB_TSDIS);// ץ
2420 }
2421 break;
2422
2423 case XP_HEB_AC: //
2424 if (record->event.pressed) { // key down
2425 unicode_hex2output_single (HB_QOF);// ק
2426 }
2427 break;
2428
2429# endif // #HEBREW_*
2430
2431 case XP_HEB_AD: //
2432 if (record->event.pressed) { // key down
2433 unicode_hex2output_single (HB_RESH);// ר
2434 }
2435 break;
2436
2437 case XP_HEB_AE: //
2438 if (record->event.pressed) { // key down
2439 unicode_hex2output_single (HB_ALEF);// א
2440
2441 }
2442 break;
2443
2444 case XP_HEB_AF: //
2445 if (record->event.pressed) { // key down
2446 unicode_hex2output_single (HB_TET);// ט
2447 }
2448 break;
2449
2450 case XP_HEB_AG: //
2451 if (record->event.pressed) { // key down
2452 unicode_hex2output_single (HB_VAV);// ו
2453 }
2454 break;
2455
2456 case XP_HEB_AH: //
2457 if (record->event.pressed) { // key down
2458 unicode_hex2output_single (HB_NUNS);// ן
2459 }
2460 break;
2461
2462 case XP_HEB_AI:
2463 if (record->event.pressed) { // key down
2464
2465# if defined(HEBREW_ISRAEL)
2466 // The logic is that it mirrors '", “„, ”≤, ‛’ in Dvorak Base and other layers.
2467 // Therefore the little and ring fingers are used. Mirroring ━─ and ┄┅ on DRA_
2468 // layer, the outside on the keyboard is “big/fat”, the inside is “small/thin”,
2469 // like something protected in a shell. Hence: ……׳״
2470 unicode_hex2output_single (HB_MEMS);// ם // ׳ is located elsewhere
2471# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
2472 unicode_hex2output (HB_MEMS, HB_GERSH);// ם׳
2473# endif
2474
2475 }
2476 break;
2477
2478 case XP_HEB_AJ: //
2479 if (record->event.pressed) { // key down
2480
2481# if defined(HEBREW_ISRAEL)
2482 unicode_hex2output_single (HB_PE);// פ // ״ is located elsewhere
2483# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
2484 unicode_hex2output (HB_PE, HB_GRSHM);// פ״
2485# endif
2486
2487 }
2488 break;
2489
2490 // ------------------------- row 3
2491 case XP_HEB_BA: //
2492 if (record->event.pressed) { // key down
2493 unicode_hex2output_single (HB_SHIN);// ש
2494 }
2495 break;
2496
2497 case XP_HEB_BB: //
2498 if (record->event.pressed) { // key down
2499 unicode_hex2output_single (HB_DALET);// ד
2500 }
2501 break;
2502
2503 case XP_HEB_BC: //Right-left-mark to the first free strong homerow finger on the left (middle)
2504 if (record->event.pressed) { // key down
2505 unicode_hex2output (HB_GIMEL, HB_RLM);// ג {RLM}
2506 }
2507 break;
2508
2509 case XP_HEB_BD: // The logic is that כ is the same key as 4 on another layer, which connects
2510 // with $, and other currencies in the same region (ģ).
2511 if (record->event.pressed) { // key down
2512 unicode_hex2output (HB_KAF, HB_SHEKL);// כ₪
2513 }
2514 break;
2515
2516 case XP_HEB_BE: //
2517 if (record->event.pressed) { // key down
2518 unicode_hex2output_single (HB_AYIN);// ע
2519 }
2520 break;
2521
2522 case XP_HEB_BF: //
2523 if (record->event.pressed) { // key down
2524 unicode_hex2output_single (HB_YOD);// י
2525 }
2526 break;
2527
2528 case XP_HEB_BG: //
2529 if (record->event.pressed) { // key down
2530 unicode_hex2output_single (HB_GET);// ח
2531 }
2532 break;
2533
2534 case XP_HEB_BH: //
2535 if (record->event.pressed) { // key down
2536 unicode_hex2output (HB_LAMED, HB_LRM);// ל {LRM}
2537 }
2538 break;
2539
2540 case XP_HEB_BI: //
2541 if (record->event.pressed) { // key down
2542 unicode_hex2output_single (HB_KAFS);// ך
2543 }
2544 break;
2545
2546 case XP_HEB_BJ: //
2547 if (record->event.pressed) { // key down
2548
2549# if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
2550 if (shift_ison) send_string (":"); // : (the hebrew eqquivalent is apparently almost never used, and this saves space)
2551 else unicode_hex2output_single (HB_PES);// ף
2552# elif defined(HEBREW_DVORAK)
2553 unicode_hex2output_single (HB_PES);// ף
2554# endif
2555
2556 }
2557 break;
2558
2559# if defined(HEBREW_ISRAEL)
2560 case XP_HEB_BK: //
2561 if (record->event.pressed) { // key down
2562 if (shift_ison) unicode_hex2output_single (HB_GRSHM);// ״
2563 else send_string (","); // comma
2564 }
2565 break;
2566# endif
2567
2568 case XP_HEB_MQF: // ־ Maqaf
2569 if (record->event.pressed) { // key down
2570 unicode_hex2output_single (HB_MAQAF);// ־
2571 }
2572 break;
2573
2574 // ------------------------- row 2
2575 case XP_HEB_CA: //
2576 if (record->event.pressed) { // key down
2577// Hebrew harmonization + ':'
2578# if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
2579 unicode_hex2output_single (HB_ZAYIN);// ז
2580# elif defined(HEBREW_DVORAK)
2581 if (shift_ison) send_string (":"); //
2582 else unicode_hex2output_single (HB_ZAYIN);// ז
2583# endif
2584 }
2585 break;
2586
2587 case XP_HEB_CB: //
2588 if (record->event.pressed) { // key down
2589 unicode_hex2output_single (HB_SAMEG);// ס
2590 }
2591 break;
2592
2593 case XP_HEB_CC: //
2594 if (record->event.pressed) { // key down
2595 unicode_hex2output_single (HB_BET);// ב
2596 }
2597 break;
2598
2599 case XP_HEB_CD: //
2600 if (record->event.pressed) { // key down
2601 unicode_hex2output_single (HB_HE);// ה
2602 }
2603 break;
2604
2605 case XP_HEB_CE: //
2606 if (record->event.pressed) { // key down
2607 unicode_hex2output_single (HB_NUN);// נ
2608 }
2609 break;
2610
2611 case XP_HEB_CF: //
2612 if (record->event.pressed) { // key down
2613 unicode_hex2output_single (HB_MEM);// מ
2614 }
2615 break;
2616
2617 case XP_HEB_CG: //
2618 if (record->event.pressed) { // key down
2619 unicode_hex2output_single (HB_TSADI);// צ
2620 }
2621 break;
2622
2623# if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
2624 case XP_HEB_CH: //
2625 if (record->event.pressed) { // key down
2626
2627# if defined(HEBREW_ISRAEL)
2628 if (shift_ison) send_string ("<"); //
2629 else unicode_hex2output_single (HB_TAV);// ת
2630# else // HEBREW_DVORAK
2631 unicode_hex2output_single (HB_TAV);// ת
2632# endif
2633
2634 }
2635 break;
2636
2637 case XP_HEB_CI: //
2638 if (record->event.pressed) { // key down
2639
2640# if defined(HEBREW_ISRAEL)
2641 if (shift_ison) send_string (">"); //
2642 else unicode_hex2output_single (HB_TSDIS);// ץ
2643# else // HEBREW_DVORAK
2644 unicode_hex2output_single (HB_TSDIS);// ץ
2645# endif
2646
2647 }
2648 break;
2649
2650 case XP_HEB_CJ: // anomaly
2651 if (record->event.pressed) { // key down
2652
2653# if defined(HEBREW_ISRAEL)
2654 if (shift_ison) send_string ("?"); //
2655 else send_string ("."); //
2656# else // HEBREW_DVORAK
2657 unicode_hex2output_single (HB_QOF);// ק
2658# endif
2659
2660 }
2661 break;
2662# endif // HEBREW_*
2663
2664 // HB_D_VAV,
2665 // HB_VAVYD,
2666 // HB_D_YOD,
2667# endif // Hebrew Base layer
2346 } 2668 }
2347 2669
2348 return true; 2670 return true;