#include #include #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, "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); }