From 6b9f3748cf561254f085fa83ada80cb5ba9b3946 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Thu, 29 Jun 2006 18:07:32 +0000 Subject: Add inverted checkboxes (tick in box when value is false) Subversion-branch: /trunk/chocolate-doom Subversion-revision: 565 --- textscreen/txt_checkbox.c | 13 ++++++++++++- textscreen/txt_checkbox.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/textscreen/txt_checkbox.c b/textscreen/txt_checkbox.c index cde095a8..56746f5f 100644 --- a/textscreen/txt_checkbox.c +++ b/textscreen/txt_checkbox.c @@ -33,7 +33,7 @@ static void TXT_CheckBoxDrawer(TXT_UNCAST_ARG(checkbox), int selected) TXT_FGColor(TXT_COLOR_BRIGHT_WHITE); - if (*checkbox->variable) + if ((*checkbox->variable != 0) ^ checkbox->inverted) { TXT_DrawString("\x07"); } @@ -112,7 +112,18 @@ txt_checkbox_t *TXT_NewCheckBox(char *label, int *variable) TXT_InitWidget(checkbox, &txt_checkbox_class); checkbox->label = strdup(label); checkbox->variable = variable; + checkbox->inverted = 0; return checkbox; } +txt_checkbox_t *TXT_NewInvertedCheckBox(char *label, int *variable) +{ + txt_checkbox_t *result; + + result = TXT_NewCheckBox(label, variable); + result->inverted = 1; + + return result; +} + diff --git a/textscreen/txt_checkbox.h b/textscreen/txt_checkbox.h index 3de21b30..44fb39c0 100644 --- a/textscreen/txt_checkbox.h +++ b/textscreen/txt_checkbox.h @@ -34,9 +34,11 @@ struct txt_checkbox_s txt_widget_t widget; char *label; int *variable; + int inverted; }; txt_checkbox_t *TXT_NewCheckBox(char *label, int *variable); +txt_checkbox_t *TXT_NewInvertedCheckBox(char *label, int *variable); #endif /* #ifndef TXT_CHECKBOX_H */ -- cgit v1.2.3