summaryrefslogtreecommitdiff
path: root/src/Fl_get_key_win32.cxx
diff options
context:
space:
mode:
authormaxim nikonov <maxim.nikonov@hqo.co>2026-02-05 15:21:34 +0500
committermaxim nikonov <maxim.nikonov@hqo.co>2026-02-05 15:21:34 +0500
commitdb214d1145e46d527a46d1fc2519548d2c4d23f1 (patch)
treecf0fd9922e4d54f6beb63888f9b28c8e2a787bdf /src/Fl_get_key_win32.cxx
parent75fc94d6c71fe686f6dde5b41ad91cba2f6bdd6f (diff)
wip: fork
Diffstat (limited to 'src/Fl_get_key_win32.cxx')
-rw-r--r--src/Fl_get_key_win32.cxx127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/Fl_get_key_win32.cxx b/src/Fl_get_key_win32.cxx
deleted file mode 100644
index cb844722d..000000000
--- a/src/Fl_get_key_win32.cxx
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Windows keyboard state routines for the Fast Light Tool Kit (FLTK).
-//
-// Copyright 1998-2023 by Bill Spitzak and others.
-//
-// This library is free software. Distribution and use rights are outlined in
-// the file "COPYING" which should have been included with this file. If this
-// file is missing or damaged, see the license at:
-//
-// https://www.fltk.org/COPYING.php
-//
-// Please see the following page on how to report bugs and issues:
-//
-// https://www.fltk.org/bugs.php
-//
-
-// Note: this file contains platform specific code and will therefore
-// not be processed by doxygen (see Doxyfile.in).
-
-// Return the current state of a key. Keys are named by fltk symbols,
-// which are actually X keysyms. So this has to translate to Windows
-// VK_x symbols.
-
-#include "drivers/WinAPI/Fl_WinAPI_Screen_Driver.H"
-#include <FL/platform.H>
-
-// Convert an FLTK (X) keysym to a Windows VK symbol:
-// See also the inverse converter in Fl_win32.cxx
-// This table is in numeric order by FLTK symbol order for binary search:
-
-static const struct {unsigned short vk, fltk;} vktab[] = {
- {VK_SPACE, ' '},
- {'1', '!'},
- {0xde, '\"'},
- {'3', '#'},
- {'4', '$'},
- {'5', '%'},
- {'7', '&'},
- {0xde, '\''},
- {'9', '('},
- {'0', ')'},
- {'8', '*'},
- {0xbb, '+'},
- {0xbc, ','},
- {0xbd, '-'},
- {0xbe, '.'},
- {0xbf, '/'},
- {0xba, ':'},
- {0xba, ';'},
- {0xbc, '<'},
- {0xbb, '='},
- {0xbe, '>'},
- {0xbf, '?'},
- {'2', '@'},
- {0xdb, '['},
- {0xdc, '\\'},
- {0xdd, ']'},
- {'6', '^'},
- {0xbd, '_'},
- {0xc0, '`'},
- {0xdb, '{'},
- {0xdc, '|'},
- {0xdd, '}'},
- {0xc0, '~'},
- {VK_BACK, FL_BackSpace},
- {VK_TAB, FL_Tab},
- {VK_CLEAR, 0xff0b/*XK_Clear*/},
- {0xe2 /*VK_OEM_102*/, FL_Iso_Key},
- {VK_RETURN, FL_Enter},
- {VK_PAUSE, FL_Pause},
- {VK_SCROLL, FL_Scroll_Lock},
- {VK_ESCAPE, FL_Escape},
- {VK_HOME, FL_Home},
- {VK_LEFT, FL_Left},
- {VK_UP, FL_Up},
- {VK_RIGHT, FL_Right},
- {VK_DOWN, FL_Down},
- {VK_PRIOR, FL_Page_Up},
- {VK_NEXT, FL_Page_Down},
- {VK_END, FL_End},
- {VK_SNAPSHOT, FL_Print},
- {VK_INSERT, FL_Insert},
- {VK_APPS, FL_Menu},
- {VK_NUMLOCK, FL_Num_Lock},
-//{VK_???, FL_KP_Enter},
- {VK_MULTIPLY, FL_KP+'*'},
- {VK_ADD, FL_KP+'+'},
- {VK_SUBTRACT, FL_KP+'-'},
- {VK_DECIMAL, FL_KP+'.'},
- {VK_DIVIDE, FL_KP+'/'},
- {VK_LSHIFT, FL_Shift_L},
- {VK_RSHIFT, FL_Shift_R},
- {VK_LCONTROL, FL_Control_L},
- {VK_RCONTROL, FL_Control_R},
- {VK_CAPITAL, FL_Caps_Lock},
- {VK_LWIN, FL_Meta_L},
- {VK_RWIN, FL_Meta_R},
- {VK_LMENU, FL_Alt_L},
- {VK_RMENU, FL_Alt_R},
- {VK_DELETE, FL_Delete}
-};
-
-static int fltk2ms(int fltk) {
- if (fltk >= '0' && fltk <= '9') return fltk;
- if (fltk >= 'A' && fltk <= 'Z') return fltk;
- if (fltk >= 'a' && fltk <= 'z') return fltk-('a'-'A');
- if (fltk > FL_F && fltk <= FL_F+16) return fltk-(FL_F-(VK_F1-1));
- if (fltk >= FL_KP+'0' && fltk<=FL_KP+'9') return fltk-(FL_KP+'0'-VK_NUMPAD0);
- int a = 0;
- int b = sizeof(vktab)/sizeof(*vktab);
- while (a < b) {
- int c = (a+b)/2;
- if (vktab[c].fltk == fltk) return vktab[c].vk;
- if (vktab[c].fltk < fltk) a = c+1; else b = c;
- }
- return 0;
-}
-
-int Fl_WinAPI_Screen_Driver::event_key(int k) {
- return GetKeyState(fltk2ms(k))&~1;
-}
-
-int Fl_WinAPI_Screen_Driver::get_key(int k) {
- uchar foo[256];
- GetKeyboardState(foo);
- return foo[fltk2ms(k)]&~1;
-}