diff options
Diffstat (limited to 'frontends/kolibrios/fb/fbtk/osk.c')
-rw-r--r-- | frontends/kolibrios/fb/fbtk/osk.c | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/frontends/kolibrios/fb/fbtk/osk.c b/frontends/kolibrios/fb/fbtk/osk.c deleted file mode 100644 index b582534d7..000000000 --- a/frontends/kolibrios/fb/fbtk/osk.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2010 Vincent Sanders <vince@simtec.co.uk> - * - * Framebuffer windowing toolkit on screen keyboard. - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <stdbool.h> -#include <limits.h> - -#include <libnsfb.h> -#include <libnsfb_plot.h> -#include <libnsfb_event.h> -#include <libnsfb_cursor.h> - -#include "utils/log.h" -#include "netsurf/browser_window.h" - -#include "kolibrios/fb/gui.h" -#include "kolibrios/fb/fbtk.h" -#include "kolibrios/fb/image_data.h" - -#include "widget.h" - -struct kbd_button_s { - int x; - int y; - int w; - int h; - const char *t; - enum nsfb_key_code_e keycode; -}; - -#define KEYCOUNT 58 - -static struct kbd_button_s kbdbase[KEYCOUNT] = { - { 0, 0, 20, 15, "`", NSFB_KEY_BACKQUOTE}, - { 20, 0, 20, 15, "1", NSFB_KEY_1}, - { 40, 0, 20, 15, "2", NSFB_KEY_2}, - { 60, 0, 20, 15, "3", NSFB_KEY_3}, - { 80, 0, 20, 15, "4", NSFB_KEY_4}, - { 100, 0, 20, 15, "5", NSFB_KEY_5}, - { 120, 0, 20, 15, "6", NSFB_KEY_6}, - { 140, 0, 20, 15, "7", NSFB_KEY_7}, - { 160, 0, 20, 15, "8", NSFB_KEY_8}, - { 180, 0, 20, 15, "9", NSFB_KEY_9}, - { 200, 0, 20, 15, "0", NSFB_KEY_0}, - { 220, 0, 20, 15, "-", NSFB_KEY_MINUS}, - { 240, 0, 20, 15, "=", NSFB_KEY_EQUALS}, - { 260, 0, 40, 15, "\xe2\x8c\xab", NSFB_KEY_BACKSPACE}, - { 0, 15, 30, 15, "\xe2\x86\xb9", NSFB_KEY_TAB}, - { 30, 15, 20, 15, "q", NSFB_KEY_q}, - { 50, 15, 20, 15, "w", NSFB_KEY_w}, - { 70, 15, 20, 15, "e", NSFB_KEY_e}, - { 90, 15, 20, 15, "r", NSFB_KEY_r}, - { 110, 15, 20, 15, "t", NSFB_KEY_t}, - { 130, 15, 20, 15, "y", NSFB_KEY_y}, - { 150, 15, 20, 15, "u", NSFB_KEY_u}, - { 170, 15, 20, 15, "i", NSFB_KEY_i}, - { 190, 15, 20, 15, "o", NSFB_KEY_o}, - { 210, 15, 20, 15, "p", NSFB_KEY_p}, - { 230, 15, 20, 15, "[", NSFB_KEY_LEFTBRACKET}, - { 250, 15, 20, 15, "]", NSFB_KEY_RIGHTBRACKET}, - { 275, 15, 25, 30, "\xe2\x8f\x8e", NSFB_KEY_RETURN}, - { 35, 30, 20, 15, "a", NSFB_KEY_a}, - { 55, 30, 20, 15, "s", NSFB_KEY_s}, - { 75, 30, 20, 15, "d", NSFB_KEY_d}, - { 95, 30, 20, 15, "f", NSFB_KEY_f}, - { 115, 30, 20, 15, "g", NSFB_KEY_g}, - { 135, 30, 20, 15, "h", NSFB_KEY_h}, - { 155, 30, 20, 15, "j", NSFB_KEY_j}, - { 175, 30, 20, 15, "k", NSFB_KEY_k}, - { 195, 30, 20, 15, "l", NSFB_KEY_l}, - { 215, 30, 20, 15, ";", NSFB_KEY_SEMICOLON}, - { 235, 30, 20, 15, "'", NSFB_KEY_l}, - { 255, 30, 20, 15, "#", NSFB_KEY_HASH}, - { 0, 45, 25, 15, "\xe2\x87\xa7", NSFB_KEY_LSHIFT}, - { 25, 45, 20, 15, "\\", NSFB_KEY_SLASH}, - { 45, 45, 20, 15, "z", NSFB_KEY_z}, - { 65, 45, 20, 15, "x", NSFB_KEY_x}, - { 85, 45, 20, 15, "c", NSFB_KEY_c}, - { 105, 45, 20, 15, "v", NSFB_KEY_v}, - { 125, 45, 20, 15, "b", NSFB_KEY_b}, - { 145, 45, 20, 15, "n", NSFB_KEY_n}, - { 165, 45, 20, 15, "m", NSFB_KEY_m}, - { 185, 45, 20, 15, ",", NSFB_KEY_COMMA}, - { 205, 45, 20, 15, ".", NSFB_KEY_PERIOD}, - { 225, 45, 20, 15, "/", NSFB_KEY_BACKSLASH}, - { 245, 45, 55, 15, "\xe2\x87\xa7", NSFB_KEY_RSHIFT}, - { 40, 67, 185, 15, "", NSFB_KEY_SPACE}, - { 250, 60, 20, 15, "\xe2\x96\xb2", NSFB_KEY_UP}, - { 230, 67, 20, 15, "\xe2\x97\x80", NSFB_KEY_LEFT}, - { 270, 67, 20, 15, "\xe2\x96\xb6", NSFB_KEY_RIGHT}, - { 250, 75, 20, 15, "\xe2\x96\xbc", NSFB_KEY_DOWN}, -}; - -static fbtk_widget_t *osk; - -static int -osk_close(fbtk_widget_t *widget, fbtk_callback_info *cbi) -{ - if (cbi->event->type != NSFB_EVENT_KEY_UP) - return 0; - - fbtk_set_mapping(osk, false); - - return 0; -} - -static int -osk_click(fbtk_widget_t *widget, fbtk_callback_info *cbi) -{ - nsfb_event_t event; - struct kbd_button_s *kbd_button = cbi->context; - - event.type = cbi->event->type; - event.value.keycode = kbd_button->keycode; - fbtk_input(widget, &event); - - return 0; -} - -/* exported function documented in fbtk.h */ -void -fbtk_enable_oskb(fbtk_widget_t *fbtk) -{ - fbtk_widget_t *widget; - int kloop; - int maxx = 0; - int maxy = 0; - int ww; - int wh; - fbtk_widget_t *root = fbtk_get_root_widget(fbtk); - int furniture_width = 18; - - for (kloop=0; kloop < KEYCOUNT; kloop++) { - if ((kbdbase[kloop].x + kbdbase[kloop].w) > maxx) - maxx=kbdbase[kloop].x + kbdbase[kloop].w; - if ((kbdbase[kloop].y + kbdbase[kloop].h) > maxy) - maxy=kbdbase[kloop].y + kbdbase[kloop].h; - } - - ww = fbtk_get_width(root); - - /* scale window height apropriately */ - wh = (maxy * ww) / maxx; - - osk = fbtk_create_window(root, 0, fbtk_get_height(root) - wh, 0, wh, 0xff202020); - - for (kloop=0; kloop < KEYCOUNT; kloop++) { - widget = fbtk_create_text_button(osk, - (kbdbase[kloop].x * ww) / maxx, - (kbdbase[kloop].y * ww) / maxx, - (kbdbase[kloop].w * ww) / maxx, - (kbdbase[kloop].h *ww) / maxx, - FB_FRAME_COLOUR, - FB_COLOUR_BLACK, - osk_click, - &kbdbase[kloop]); - fbtk_set_text(widget, kbdbase[kloop].t); - } - - widget = fbtk_create_button(osk, - fbtk_get_width(osk) - furniture_width, - fbtk_get_height(osk) - furniture_width, - furniture_width, - furniture_width, - FB_FRAME_COLOUR, - &osk_image, - osk_close, - NULL); -} - -/* exported function documented in fbtk.h */ -void -map_osk(void) -{ - fbtk_set_zorder(osk, INT_MIN); - fbtk_set_mapping(osk, true); -} - -/* - * Local Variables: - * c-basic-offset:8 - * End: - */ |