| 18 * You should have received a copy of the GNU General Public License |
18 * You should have received a copy of the GNU General Public License |
| 19 * along with this program; if not, write to the Free Software |
19 * along with this program; if not, write to the Free Software |
| 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 21 */ |
21 */ |
| 22 |
22 |
| |
23 #include "gntinternal.h" |
| 23 #include "gntcheckbox.h" |
24 #include "gntcheckbox.h" |
| 24 |
25 |
| 25 enum |
26 enum |
| 26 { |
27 { |
| 27 SIG_TOGGLED = 1, |
28 SIG_TOGGLED = 1, |
| 34 static void |
35 static void |
| 35 gnt_check_box_draw(GntWidget *widget) |
36 gnt_check_box_draw(GntWidget *widget) |
| 36 { |
37 { |
| 37 GntCheckBox *cb = GNT_CHECK_BOX(widget); |
38 GntCheckBox *cb = GNT_CHECK_BOX(widget); |
| 38 GntColorType type; |
39 GntColorType type; |
| 39 char *text; |
40 gboolean focus = gnt_widget_has_focus(widget); |
| 40 |
41 |
| 41 if (gnt_widget_has_focus(widget)) |
42 if (focus) |
| 42 type = GNT_COLOR_HIGHLIGHT; |
43 type = GNT_COLOR_HIGHLIGHT; |
| 43 else |
44 else |
| 44 type = GNT_COLOR_NORMAL; |
45 type = GNT_COLOR_NORMAL; |
| 45 |
46 |
| 46 wbkgdset(widget->window, '\0' | gnt_color_pair(type)); |
47 wbkgdset(widget->window, '\0' | gnt_color_pair(type)); |
| 47 |
48 |
| 48 text = g_strdup_printf("[%c]", cb->checked ? 'X' : ' '); |
49 mvwaddch(widget->window, 0, 0, '['); |
| 49 mvwaddstr(widget->window, 0, 0, text); |
50 mvwaddch(widget->window, 0, 1, (cb->checked ? 'X' : ' ') | (focus ? A_UNDERLINE : A_NORMAL)); |
| 50 g_free(text); |
51 mvwaddch(widget->window, 0, 2, ']'); |
| 51 |
52 |
| 52 wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); |
53 wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); |
| 53 mvwaddstr(widget->window, 0, 4, GNT_BUTTON(cb)->priv->text); |
54 mvwaddstr(widget->window, 0, 4, (GNT_BUTTON(cb)->priv->text)); |
| 54 wmove(widget->window, 0, 1); |
55 wmove(widget->window, 0, 1); |
| 55 |
56 |
| 56 GNTDEBUG; |
57 GNTDEBUG; |
| 57 } |
58 } |
| 58 |
59 |