summaryrefslogtreecommitdiff
path: root/src/client/saveDialog.c~
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/saveDialog.c~')
-rw-r--r--src/client/saveDialog.c~147
1 files changed, 147 insertions, 0 deletions
diff --git a/src/client/saveDialog.c~ b/src/client/saveDialog.c~
new file mode 100644
index 0000000..37a3d8f
--- /dev/null
+++ b/src/client/saveDialog.c~
@@ -0,0 +1,147 @@
+
+#include <stdlib.h>
+#include <assert.h>
+
+#include "main.h"
+#include "list.h"
+#include "tux.h"
+#include "space.h"
+#include "arena.h"
+#include "net_multiplayer.h"
+
+#include "interface.h"
+#include "saveDialog.h"
+#include "image.h"
+#include "font.h"
+#include "saveLoad.h"
+#include "hotKey.h"
+
+#include "widget.h"
+#include "widget_label.h"
+#include "widget_button.h"
+#include "widget_textfield.h"
+
+static image_t *g_background;
+static bool_t activeSaveDialog;
+
+static widget_t *widgetLabelMsg;
+static widget_t *widgetTextFieldName;
+
+static widget_t *widgetButtonSave;
+static widget_t *widgetButtonBack;
+
+static void switchTerm()
+{
+ if( activeSaveDialog == TRUE )
+ {
+ activeSaveDialog = FALSE;
+ }
+ else
+ {
+ activeSaveDialog = TRUE;
+ }
+}
+
+static void eventWidget(void *p)
+{
+ widget_t *button;
+
+ button = (widget_t *)p;
+
+ if( button == widgetButtonSave )
+ {
+ saveArena(getTextFromWidgetTextfield(widgetTextFieldName), getCurrentArena());
+ switchTerm();
+ }
+
+ if( button == widgetButtonBack )
+ {
+ switchTerm();
+ }
+}
+
+static void hotkey_saveDialog()
+{
+ switchTerm();
+}
+
+void initSaveDialog()
+{
+ activeSaveDialog = FALSE;
+
+ g_background = getImage(IMAGE_GROUP_BASE, "screen_main");
+
+ widgetLabelMsg = newWidgetLabel(
+ "name",
+ SAVE_DIALOG_LOCATIN_X+20,
+ SAVE_DIALOG_LOCATIN_Y+20,
+ WIDGET_LABEL_LEFT);
+
+ widgetTextFieldName = newWidgetTextfield(
+ "noname",
+ WIDGET_TEXTFIELD_FILTER_ALPHANUM,
+ widgetLabelMsg->x+widgetLabelMsg->w+10,
+ widgetLabelMsg->y);
+
+ widgetButtonSave = newWidgetButton(
+ "Save",
+ SAVE_DIALOG_LOCATIN_X+20,
+ SAVE_DIALOG_LOCATIN_Y+60,
+ eventWidget);
+
+ widgetButtonBack = newWidgetButton(
+ "Back",
+ SAVE_DIALOG_LOCATIN_X+20+WIDGET_BUTTON_WIDTH+20,
+ SAVE_DIALOG_LOCATIN_Y+60,
+ eventWidget);
+
+ registerHotKey(SDLK_F2, hotkey_saveDialog);
+}
+
+bool_t isSaveDialogActive()
+{
+ return activeSaveDialog;
+}
+
+void drawSaveDialog()
+{
+ if( activeSaveDialog == FALSE )
+ {
+ return;
+ }
+
+ drawImage(g_background,
+ SAVE_DIALOG_LOCATIN_X,
+ SAVE_DIALOG_LOCATIN_Y,
+ SAVE_DIALOG_LOCATIN_X,
+ SAVE_DIALOG_LOCATIN_Y,
+ SAVE_DIALOG_SIZE_X, SAVE_DIALOG_SIZE_Y);
+
+ drawWidgetLabel(widgetLabelMsg);
+ drawWidgetTextfield(widgetTextFieldName);
+ drawWidgetButton(widgetButtonSave);
+ drawWidgetButton(widgetButtonBack);
+}
+
+void eventSaveDialog()
+{
+ if( activeSaveDialog == FALSE )
+ {
+ return;
+ }
+
+ eventWidgetTextfield(widgetTextFieldName);
+ eventWidgetButton(widgetButtonSave);
+ eventWidgetButton(widgetButtonBack);
+
+}
+
+void quitSaveDialog()
+{
+ unregisterHotKey(SDLK_F2);
+
+ destroyWidgetLabel(widgetLabelMsg);
+ destroyWidgetTextfield(widgetTextFieldName);
+ destroyWidgetButton(widgetButtonSave);
+ destroyWidgetButton(widgetButtonBack);
+}