summaryrefslogtreecommitdiff
path: root/src/screen
diff options
context:
space:
mode:
authorDusan Durech <dusan@debian.(none)>2008-12-10 23:08:44 +0100
committerDusan Durech <dusan@debian.(none)>2008-12-10 23:08:44 +0100
commit12cd785edb4aa147790fda4371aaab485fde42fe (patch)
treeba30c9323771134e0f048322343cd5de361640fd /src/screen
parent59bab937c64a08e6380e87d13e2d6bd01ec9a42b (diff)
We Use hot key Esc on back in fill program
Diffstat (limited to 'src/screen')
-rw-r--r--src/screen/screen_analyze.c10
-rw-r--r--src/screen/screen_browser.c10
-rw-r--r--src/screen/screen_choiceArena.c9
-rw-r--r--src/screen/screen_credits.c45
-rw-r--r--src/screen/screen_gameType.c9
-rw-r--r--src/screen/screen_mainMenu.c9
-rw-r--r--src/screen/screen_setting.c9
-rw-r--r--src/screen/screen_settingKeys.c15
-rw-r--r--src/screen/screen_table.c9
9 files changed, 104 insertions, 21 deletions
diff --git a/src/screen/screen_analyze.c b/src/screen/screen_analyze.c
index df2ea75..b249f81 100644
--- a/src/screen/screen_analyze.c
+++ b/src/screen/screen_analyze.c
@@ -9,6 +9,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -48,11 +49,18 @@ static void destroyAnalyze(analyze_t * p)
free(p);
}
+static void hotkey_escape()
+{
+ setScreen("mainMenu");
+}
+
void startScreenAnalyze()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenAnalyze()
@@ -85,6 +93,8 @@ void stopScreenAnalyze()
{
destroyWidgetLabel(widgetLabelMsg);
widgetLabelMsg = newWidgetLabel("", WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER);
+
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidget(void *p)
diff --git a/src/screen/screen_browser.c b/src/screen/screen_browser.c
index edf222a..f09ca18 100644
--- a/src/screen/screen_browser.c
+++ b/src/screen/screen_browser.c
@@ -12,7 +12,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
-
+#include "hotKey.h"
#ifndef __WIN32__
# include <sys/socket.h>
@@ -72,6 +72,10 @@ static int LoadServers();
static int RefreshServers();
static server_t *server_getcurr();
+static void hotkey_escape()
+{
+ setScreen("gameType");
+}
void startScreenBrowser()
{
@@ -79,6 +83,8 @@ void startScreenBrowser()
playMusic("menu", MUSIC_GROUP_BASE);
#endif
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
+
LoadServers();
}
@@ -118,6 +124,8 @@ void stopScreenBrowser()
//select_server->list = newList();
removeAllFromWidgetSelect(select_server);
+ unregisterHotKey(SDLK_ESCAPE);
+
while (1) {
i = 0;
for (server = server_list.next; server != &server_list;
diff --git a/src/screen/screen_choiceArena.c b/src/screen/screen_choiceArena.c
index 969c350..7bc6ce4 100644
--- a/src/screen/screen_choiceArena.c
+++ b/src/screen/screen_choiceArena.c
@@ -9,6 +9,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -31,11 +32,18 @@ static widget_t *button_back;
static list_t *listWidgetButtonimage;
static arenaFile_t *currentArena;
+static void hotkey_escape()
+{
+ setScreen("gameType");
+}
+
void startScreenChoiceArena()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenChoiceArena()
@@ -72,6 +80,7 @@ void eventScreenChoiceArena()
void stopScreenChoiceArena()
{
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidgetButtonImage(void *p)
diff --git a/src/screen/screen_credits.c b/src/screen/screen_credits.c
index e3edabf..a3ed787 100644
--- a/src/screen/screen_credits.c
+++ b/src/screen/screen_credits.c
@@ -9,6 +9,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -28,12 +29,19 @@ static textFile_t *textFile;
static int offset;
static int creditExists;
+static void hotkey_escape()
+{
+ setScreen("mainMenu");
+}
+
void startScreenCredits()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
#endif
offset = 0;
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenCredits()
@@ -48,13 +56,13 @@ void drawScreenCredits()
int z;
widget_t *this;
+
this = (widget_t *) listWidgetLabel->list[i];
z = this->y;
this->y += offset;
- if (this->y > SCREEN_CREDITS_OFFSET_MIN
- && this->y < SCREEN_CREDITS_OFFSET_MAX) {
+ if (this->y > SCREEN_CREDITS_OFFSET_MIN && this->y < SCREEN_CREDITS_OFFSET_MAX) {
drawWidgetLabel(this);
}
@@ -72,11 +80,13 @@ void eventScreenCredits()
if (offset < SCREEN_CREDITS_OFFSET_RESTART) {
offset = 0;
}
+
//printf("offset = %d\n", offset);
}
void stopScreenCredits()
{
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidget(void *p)
@@ -98,24 +108,24 @@ void initScreenCredits()
image = getImage(IMAGE_GROUP_BASE, "screen_main");
image_backgorund = newWidgetImage(0, 0, image);
- button_back =
- newWidgetButton(_("back"),
- WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2,
- WINDOW_SIZE_Y - 80, eventWidget);
+ button_back = newWidgetButton(_("back"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2,
+ WINDOW_SIZE_Y - 80, eventWidget);
listWidgetLabel = newList();
if (tryExistFile(PATH_DOC SCREEN_CREDITS_FILE) == 0) {
creditExists = 1;
textFile = loadTextFile(PATH_DOC SCREEN_CREDITS_FILE);
+
for (i = 0; i < textFile->text->count; i++) {
widget_t *label;
char *line;
+
line = (char *) textFile->text->list[i];
- label =
- newWidgetLabel(line, WINDOW_SIZE_X / 2 - WINDOW_SIZE_X / 4,
- (WINDOW_SIZE_Y - 100) + i * 20,
- WIDGET_LABEL_LEFT);
+
+ label = newWidgetLabel(line, WINDOW_SIZE_X / 2 - WINDOW_SIZE_X / 4,
+ (WINDOW_SIZE_Y - 100) + i * 20,
+ WIDGET_LABEL_LEFT);
addList(listWidgetLabel, label);
}
@@ -124,20 +134,20 @@ void initScreenCredits()
creditExists = 0;
widget_t *label;
char line[STR_SIZE];
+
sprintf(line, _("Credit file not found... %s/%s"), PATH_DOC,
SCREEN_CREDITS_FILE);
- label =
- newWidgetLabel(line, WINDOW_SIZE_X / 2,
- (WINDOW_SIZE_Y - 100) + i * 20,
- WIDGET_LABEL_CENTER);
+
+ label = newWidgetLabel(line, WINDOW_SIZE_X / 2,
+ (WINDOW_SIZE_Y - 100) + i * 20,
+ WIDGET_LABEL_CENTER);
addList(listWidgetLabel, label);
}
}
- registerScreen(newScreen
- ("credits", startScreenCredits, eventScreenCredits,
- drawScreenCredits, stopScreenCredits));
+ registerScreen(newScreen ("credits", startScreenCredits, eventScreenCredits,
+ drawScreenCredits, stopScreenCredits));
}
void quitScreenCredits()
@@ -146,6 +156,7 @@ void quitScreenCredits()
destroyWidgetButton(button_back);
destroyListItem(listWidgetLabel, destroyWidgetLabel);
+
if (creditExists) {
destroyTextFile(textFile);
}
diff --git a/src/screen/screen_gameType.c b/src/screen/screen_gameType.c
index 84fb4eb..1ef8461 100644
--- a/src/screen/screen_gameType.c
+++ b/src/screen/screen_gameType.c
@@ -13,6 +13,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -82,6 +83,11 @@ static void loadSession(widget_t * p)
destroyDirector(director);
}
+static void hotkey_escape()
+{
+ setScreen("mainMenu");
+}
+
void startScreenGameType()
{
#ifndef NO_SOUND
@@ -94,6 +100,8 @@ void startScreenGameType()
setWidgetChoiceStatus(check_load_session, FALSE);
loadSession(selectSession);
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenGameType()
@@ -169,6 +177,7 @@ void eventScreenGameType()
void stopScreenGameType()
{
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidget(void *p)
diff --git a/src/screen/screen_mainMenu.c b/src/screen/screen_mainMenu.c
index 0bb50d7..84d57b8 100644
--- a/src/screen/screen_mainMenu.c
+++ b/src/screen/screen_mainMenu.c
@@ -8,6 +8,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -31,11 +32,18 @@ static widget_t *button_table;
static widget_t *button_credits;
static widget_t *button_end;
+static void hotkey_escape()
+{
+ quitGame();
+}
+
void startScreenMainMenu()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenMainMenu()
@@ -60,6 +68,7 @@ void eventScreenMainMenu()
void stopScreenMainMenu()
{
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidget(void *p)
diff --git a/src/screen/screen_setting.c b/src/screen/screen_setting.c
index 4e19978..b52a9db 100644
--- a/src/screen/screen_setting.c
+++ b/src/screen/screen_setting.c
@@ -15,6 +15,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -78,11 +79,18 @@ static widget_t *check_ai;
static textFile_t *configFile;
+static void hotkey_escape()
+{
+ setScreen("mainMenu");
+}
+
void startScreenSetting()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenSetting()
@@ -173,6 +181,7 @@ void eventScreenSetting()
void stopScreenSetting()
{
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidget(void *p)
diff --git a/src/screen/screen_settingKeys.c b/src/screen/screen_settingKeys.c
index 60ddd79..35215cf 100644
--- a/src/screen/screen_settingKeys.c
+++ b/src/screen/screen_settingKeys.c
@@ -9,10 +9,13 @@
#include "textFile.h"
#include "director.h"
#include "homeDirector.h"
+
#include "configFile.h"
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
+
#ifndef NO_SOUND
# include "music.h"
# include "sound.h"
@@ -72,13 +75,19 @@ static widget_t *tux_left_keyfire_val;
// possible variant will be reusing widget_image for current widget_label so there wont
// be key names but only images
+static void hotkey_escape()
+{
+ setScreen("setting");
+}
+
void startScreenSettingKeys()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
-
-#endif
+#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
static void setKeytableFromConfigFile(textFile_t * configFile)
{
@@ -362,7 +371,7 @@ void
stopScreenSettingKeys()
{
-
+ unregisterHotKey(SDLK_ESCAPE);
}
void
diff --git a/src/screen/screen_table.c b/src/screen/screen_table.c
index 5d4b3a4..b49de93 100644
--- a/src/screen/screen_table.c
+++ b/src/screen/screen_table.c
@@ -11,6 +11,7 @@
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
#ifndef NO_SOUND
# include "music.h"
@@ -31,11 +32,18 @@ static list_t *listWidgetLabelScore;
static textFile_t *textFile;
+static void hotkey_escape()
+{
+ setScreen("mainMenu");
+}
+
void startScreenTable()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
void drawScreenTable()
@@ -72,6 +80,7 @@ void eventScreenTable()
void stopScreenTable()
{
+ unregisterHotKey(SDLK_ESCAPE);
}
static void eventWidget(void *p)