summaryrefslogtreecommitdiff
path: root/framebuffer/fb_frontend_linuxfb.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2009-03-10 21:45:54 +0000
committerVincent Sanders <vince@netsurf-browser.org>2009-03-10 21:45:54 +0000
commit2b309755d61d979ce37de9329c9394312b32fdc9 (patch)
tree5de1d8dbbd75cd0d7fee999cd0532d2add7642f4 /framebuffer/fb_frontend_linuxfb.c
parent652330380f3cd60b04f46673fa22a16af5a7fc8f (diff)
downloadnetsurf-2b309755d61d979ce37de9329c9394312b32fdc9.tar.gz
netsurf-2b309755d61d979ce37de9329c9394312b32fdc9.tar.bz2
move framebuffer port to framebuffer toolkit
svn path=/trunk/netsurf/; revision=6760
Diffstat (limited to 'framebuffer/fb_frontend_linuxfb.c')
-rw-r--r--framebuffer/fb_frontend_linuxfb.c91
1 files changed, 54 insertions, 37 deletions
diff --git a/framebuffer/fb_frontend_linuxfb.c b/framebuffer/fb_frontend_linuxfb.c
index 2fc6b0368..a003cf0ba 100644
--- a/framebuffer/fb_frontend_linuxfb.c
+++ b/framebuffer/fb_frontend_linuxfb.c
@@ -41,15 +41,24 @@
#include <linux/input.h>
#include "css/css.h"
-#include "desktop/browser.h"
+#include "utils/messages.h"
#include "desktop/gui.h"
+/* #include "desktop/textinput.h" cannot include this becaus eit conflicts with the linux defines */
+#define NSKEY_PAGE_DOWN 135
+#define NSKEY_PAGE_UP 134
+#define NSKEY_DOWN 31
+#define NSKEY_UP 30
+#define NSKEY_LEFT 28
+#define NSKEY_RIGHT 29
+#define NSKEY_ESCAPE 27
+
#include "framebuffer/fb_gui.h"
+#include "framebuffer/fb_tk.h"
#include "framebuffer/fb_plotters.h"
#include "framebuffer/fb_schedule.h"
#include "framebuffer/fb_cursor.h"
#include "framebuffer/fb_frontend.h"
#include "framebuffer/fb_options.h"
-#include "framebuffer/fb_rootwindow.h"
#include "utils/log.h"
#include "utils/messages.h"
@@ -416,7 +425,7 @@ framebuffer_init(const char *device, int width, int height, int refresh, int bpp
if (vt != 0)
fb_setvt(vt);
- if (-1 == ioctl(tty,VT_GETSTATE, &vts)) {
+ if (ioctl(tty,VT_GETSTATE, &vts) == -1) {
fprintf(stderr,"ioctl VT_GETSTATE: %s (not a linux console?)\n",
strerror(errno));
exit(1);
@@ -538,23 +547,23 @@ fb_catch_exit_signals(void)
memset(&act,0,sizeof(act));
act.sa_handler = fb_catch_exit_signal;
sigemptyset(&act.sa_mask);
- sigaction(SIGINT, &act,&old);
- sigaction(SIGQUIT,&act,&old);
- sigaction(SIGTERM,&act,&old);
+ sigaction(SIGINT, &act, &old);
+ sigaction(SIGQUIT, &act, &old);
+ sigaction(SIGTERM, &act, &old);
- sigaction(SIGABRT,&act,&old);
- sigaction(SIGTSTP,&act,&old);
+ sigaction(SIGABRT, &act, &old);
+ sigaction(SIGTSTP, &act, &old);
- sigaction(SIGBUS, &act,&old);
- sigaction(SIGILL, &act,&old);
- sigaction(SIGSEGV,&act,&old);
+ sigaction(SIGBUS, &act, &old);
+ sigaction(SIGILL, &act, &old);
+ sigaction(SIGSEGV, &act, &old);
- if (0 == (termsig = sigsetjmp(fb_fatal_cleanup,0)))
+ if ((termsig = sigsetjmp(fb_fatal_cleanup,0)) == 0)
return;
/* cleanup */
fb_cleanup();
- fprintf(stderr,"Oops: %s\n",sys_siglist[termsig]);
+ fprintf(stderr, "Oops: %s\n", sys_siglist[termsig]);
exit(42);
}
@@ -652,7 +661,7 @@ static int keycode_to_ucs4(int code, bool shift)
return ucs4;
}
-void fb_os_input(struct gui_window *g, bool active)
+void fb_os_input(fbtk_widget_t *root, bool active)
{
ssize_t amt;
struct input_event event;
@@ -674,49 +683,43 @@ void fb_os_input(struct gui_window *g, bool active)
break;
case BTN_LEFT:
- fb_rootwindow_click(g,
- BROWSER_MOUSE_CLICK_1,
- fb_cursor_x(framebuffer),
- fb_cursor_y(framebuffer));
- break;
+ fbtk_click(root, BROWSER_MOUSE_CLICK_1);
+ break;
}
return;
}
switch (event.code) {
case KEY_PAGEDOWN:
- fb_window_scroll(g, 0, g->height);
+ ucs4 = NSKEY_PAGE_DOWN;
break;
case KEY_PAGEUP:
- fb_window_scroll(g, 0, -g->height);
+ ucs4 = NSKEY_PAGE_UP;
break;
case KEY_DOWN:
- fb_window_scroll(g, 0, 100);
+ ucs4 = NSKEY_DOWN;
break;
case KEY_UP:
- fb_window_scroll(g, 0, -100);
+ ucs4 = NSKEY_UP;
break;
case KEY_LEFT:
- fb_window_scroll(g, -100, 0);
+ ucs4 = NSKEY_LEFT;
break;
case KEY_RIGHT:
- fb_window_scroll(g, 100, 0);
+ ucs4 = NSKEY_RIGHT;
break;
case KEY_ESC:
- browser_window_destroy(g->bw);
+ ucs4 = NSKEY_ESCAPE;
break;
case BTN_LEFT:
- fb_rootwindow_click(g,
- BROWSER_MOUSE_PRESS_1,
- fb_cursor_x(framebuffer),
- fb_cursor_y(framebuffer));
+ fbtk_click(root, BROWSER_MOUSE_PRESS_1);
break;
case KEY_LEFTSHIFT:
@@ -730,22 +733,36 @@ void fb_os_input(struct gui_window *g, bool active)
}
} else if (event.type == EV_REL) {
switch (event.code) {
- case 0:
- fb_rootwindow_move(framebuffer, g, event.value, 0, true);
+ case REL_X:
+ fbtk_move_pointer(root, event.value, 0, true);
break;
- case 1:
- fb_rootwindow_move(framebuffer, g, 0, event.value, true);
+ case REL_Y:
+ fbtk_move_pointer(root, 0, event.value, true);
break;
- case 8:
- fb_window_scroll(g, 0, event.value * -100);
+ case REL_WHEEL:
+ if (event.value > 0)
+ fbtk_input(root, NSKEY_UP);
+ else
+ fbtk_input(root, NSKEY_DOWN);
break;
}
+ } else if (event.type == EV_ABS) {
+ switch (event.code) {
+ case ABS_X:
+ fbtk_move_pointer(root, event.value, -1, false);
+ break;
+
+ case ABS_Y:
+ fbtk_move_pointer(root, -1, event.value, false);
+ break;
+
+ }
}
if (ucs4 != -1) {
- fb_rootwindow_input(g, ucs4);
+ fbtk_input(root, ucs4);
ucs4 = -1;
}