summaryrefslogtreecommitdiff
path: root/textscreen/calculator.c
diff options
context:
space:
mode:
authorSimon Howard2006-05-24 21:35:45 +0000
committerSimon Howard2006-05-24 21:35:45 +0000
commit1f101a63a60428230549243931356a4c0ee5ca7d (patch)
treead9a73a9a94f927c64ca90f194ed01357c63ecee /textscreen/calculator.c
parentb03198720a635d32908c98dc0e11bb9d87ee32f2 (diff)
downloadchocolate-doom-1f101a63a60428230549243931356a4c0ee5ca7d.tar.gz
chocolate-doom-1f101a63a60428230549243931356a4c0ee5ca7d.tar.bz2
chocolate-doom-1f101a63a60428230549243931356a4c0ee5ca7d.zip
Move textscreen GUI demos into an examples/ subdir.
Subversion-branch: /trunk/chocolate-doom Subversion-revision: 524
Diffstat (limited to 'textscreen/calculator.c')
-rw-r--r--textscreen/calculator.c160
1 files changed, 0 insertions, 160 deletions
diff --git a/textscreen/calculator.c b/textscreen/calculator.c
deleted file mode 100644
index d51d4f9c..00000000
--- a/textscreen/calculator.c
+++ /dev/null
@@ -1,160 +0,0 @@
-
-#include <stdio.h>
-#include <string.h>
-#include "txt_button.h"
-#include "txt_desktop.h"
-#include "txt_label.h"
-
-typedef enum
-{
- OP_NONE,
- OP_PLUS,
- OP_MINUS,
- OP_MULT,
- OP_DIV,
-} operator_t;
-
-int starting_input = 0;
-int input_value = 0;
-txt_label_t *input_box;
-int first_operand;
-operator_t operator = OP_NONE;
-
-void UpdateInputBox(void)
-{
- char buf[20];
-
- sprintf(buf, " %i", input_value);
- TXT_SetLabel(input_box, buf);
-}
-
-void InsertNumber(TXT_UNCAST_ARG(button), TXT_UNCAST_ARG(value))
-{
- TXT_CAST_ARG(int, value);
-
- if (starting_input)
- {
- input_value = 0;
- starting_input = 0;
- }
-
- input_value *= 10;
- input_value += *value;
- UpdateInputBox();
-}
-
-void AddNumberButton(txt_table_t *table, int value)
-{
- txt_button_t *button;
- char buf[10];
- int *val_copy;
-
- val_copy = malloc(sizeof(int));
- *val_copy = value;
-
- sprintf(buf, " %i ", value);
-
- button = TXT_NewButton(buf);
- TXT_AddWidget(table, button);
- TXT_SignalConnect(button, "pressed", InsertNumber, val_copy);
-}
-
-void Operator(TXT_UNCAST_ARG(button), TXT_UNCAST_ARG(op))
-{
- TXT_CAST_ARG(operator_t, op);
-
- first_operand = input_value;
- operator = *op;
- starting_input = 1;
-}
-
-void AddOperatorButton(txt_table_t *table, char *label, operator_t op)
-{
- txt_button_t *button;
- char buf[10];
- operator_t *op_copy;
-
- op_copy = malloc(sizeof(operator_t));
- *op_copy = op;
-
- sprintf(buf, " %s ", label);
- button = TXT_NewButton(buf);
-
- TXT_AddWidget(table, button);
- TXT_SignalConnect(button, "pressed", Operator, op_copy);
-}
-
-void Calculate(TXT_UNCAST_ARG(button), void *unused)
-{
- switch (operator)
- {
- case OP_PLUS:
- input_value = first_operand + input_value;
- break;
- case OP_MINUS:
- input_value = first_operand - input_value;
- break;
- case OP_MULT:
- input_value = first_operand * input_value;
- break;
- case OP_DIV:
- input_value = first_operand / input_value;
- break;
- }
-
- UpdateInputBox();
-
- operator = OP_NONE;
- starting_input = 1;
-}
-
-void BuildGUI()
-{
- txt_window_t *window;
- txt_table_t *table;
- txt_button_t *equals_button;
-
- window = TXT_NewWindow("Calculator");
-
- TXT_AddWidget(window, TXT_NewSeparator(NULL));
- input_box = TXT_NewLabel("asdf");
- TXT_AddWidget(window, input_box);
- TXT_AddWidget(window, TXT_NewSeparator(NULL));
- TXT_AddWidget(window, TXT_NewLabel(""));
-
- table = TXT_NewTable(4);
- TXT_AddWidget(window, table);
-
- AddNumberButton(table, 7);
- AddNumberButton(table, 8);
- AddNumberButton(table, 9);
- AddOperatorButton(table, "*", OP_MULT);
- AddNumberButton(table, 4);
- AddNumberButton(table, 5);
- AddNumberButton(table, 6);
- AddOperatorButton(table, "-", OP_MINUS);
- AddNumberButton(table, 1);
- AddNumberButton(table, 2);
- AddNumberButton(table, 3);
- AddOperatorButton(table, "+", OP_PLUS);
- AddNumberButton(table, 0);
- TXT_AddWidget(table, TXT_NewLabel(""));
- equals_button = TXT_NewButton(" = ");
- TXT_SignalConnect(equals_button, "pressed", Calculate, NULL);
- TXT_AddWidget(table, equals_button);
- AddOperatorButton(table, "/", OP_DIV);
-
- TXT_AddWidget(window, TXT_NewLabel(""));
- UpdateInputBox();
-}
-
-int main()
-{
- TXT_Init();
- TXT_SetDesktopTitle("Calculator demo");
-
- BuildGUI();
-
- TXT_GUIMainLoop();
-}
-