comparison console/libgnt/gntcheckbox.c @ 14343:0387a167f342

[gaim-migrate @ 17044] A WM can now act on keystrokes. As an example, the sample WM will toggle the buddylist on pressing Alt+b. Mouse clicking and scrolling is now supported in most/all widgets. To use a WM, you need to add "wm=/path/to/wm.so" under [general] in ~/.gntrc. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 26 Aug 2006 12:54:39 +0000
parents a71678d2da16
children 3ac156db9cb6
comparison
equal deleted inserted replaced
14342:12156328fb4f 14343:0387a167f342
44 if (widget->priv.width == 0 || widget->priv.height == 0) 44 if (widget->priv.width == 0 || widget->priv.height == 0)
45 gnt_widget_size_request(widget); 45 gnt_widget_size_request(widget);
46 DEBUG; 46 DEBUG;
47 } 47 }
48 48
49 static void
50 toggle_selection(GntWidget *widget)
51 {
52 GNT_CHECK_BOX(widget)->checked = !GNT_CHECK_BOX(widget)->checked;
53 g_signal_emit(widget, signals[SIG_TOGGLED], 0);
54 gnt_widget_draw(widget);
55 }
56
49 static gboolean 57 static gboolean
50 gnt_check_box_key_pressed(GntWidget *widget, const char *text) 58 gnt_check_box_key_pressed(GntWidget *widget, const char *text)
51 { 59 {
52 if (text[0] == ' ' && text[1] == '\0') 60 if (text[0] == ' ' && text[1] == '\0')
53 { 61 {
54 GNT_CHECK_BOX(widget)->checked = !GNT_CHECK_BOX(widget)->checked; 62 toggle_selection(widget);
55 g_signal_emit(widget, signals[SIG_TOGGLED], 0);
56 gnt_widget_draw(widget);
57 return TRUE; 63 return TRUE;
58 } 64 }
59 65
66 return FALSE;
67 }
68
69 static gboolean
70 gnt_check_box_clicked(GntWidget *widget, GntMouseEvent event, int x, int y)
71 {
72 if (event == GNT_LEFT_MOUSE_DOWN) {
73 toggle_selection(widget);
74 return TRUE;
75 }
60 return FALSE; 76 return FALSE;
61 } 77 }
62 78
63 static void 79 static void
64 gnt_check_box_destroy(GntWidget *widget) 80 gnt_check_box_destroy(GntWidget *widget)
74 /*parent_class->destroy = gnt_check_box_destroy;*/ 90 /*parent_class->destroy = gnt_check_box_destroy;*/
75 wclass->draw = gnt_check_box_draw; 91 wclass->draw = gnt_check_box_draw;
76 /*parent_class->map = gnt_check_box_map;*/ 92 /*parent_class->map = gnt_check_box_map;*/
77 /*parent_class->size_request = gnt_check_box_size_request;*/ 93 /*parent_class->size_request = gnt_check_box_size_request;*/
78 wclass->key_pressed = gnt_check_box_key_pressed; 94 wclass->key_pressed = gnt_check_box_key_pressed;
95 wclass->clicked = gnt_check_box_clicked;
79 96
80 signals[SIG_TOGGLED] = 97 signals[SIG_TOGGLED] =
81 g_signal_new("toggled", 98 g_signal_new("toggled",
82 G_TYPE_FROM_CLASS(klass), 99 G_TYPE_FROM_CLASS(klass),
83 G_SIGNAL_RUN_LAST, 100 G_SIGNAL_RUN_LAST,