Initial mouse support added.
[rodin/chimara.git] / libchimara / mouse.c
1 #include "mouse.h"
2 #include "magic.h"
3
4 void
5 glk_request_mouse_event(winid_t win)
6 {
7         VALID_WINDOW(win, return);
8         g_return_if_fail(win != NULL);
9         g_return_if_fail(win->type == wintype_TextBuffer || win->type == wintype_TextGrid);
10
11         g_signal_handler_unblock(win->widget, win->button_press_event_handler);
12 }
13
14 void 
15 glk_cancel_mouse_event(winid_t win)
16 {
17         VALID_WINDOW(win, return);
18         g_return_if_fail(win != NULL);
19         g_return_if_fail(win->type == wintype_TextBuffer || win->type == wintype_TextGrid);
20
21         g_signal_handler_block(win->widget, win->button_press_event_handler);
22 }
23
24 gboolean
25 on_window_button_press(GtkWidget *widget, GdkEventButton *event, winid_t win)
26 {
27         ChimaraGlk *glk = CHIMARA_GLK(gtk_widget_get_ancestor(win->widget, CHIMARA_TYPE_GLK));
28         g_assert(glk);
29
30         /* TODO: calculate coordinates in proper metric */
31         event_throw(glk, evtype_MouseInput, win, event->x, event->y);
32
33         return TRUE;
34 }