Mercurial > pidgin.yaz
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, |