From e86e2dbfc9df21589269225b313267204a070ad7 Mon Sep 17 00:00:00 2001
From: "p.kosyh"
Date: Fri, 22 Apr 2011 09:02:12 +0000
Subject: [PATCH] settings are paged now
---
lang/en.ini | 29 +++++++++++++++++++++-----
lang/es.ini | 29 +++++++++++++++++++++-----
lang/it.ini | 29 +++++++++++++++++++++-----
lang/ru.ini | 27 ++++++++++++++++++++----
src/sdl-instead/config.c | 4 ++++
src/sdl-instead/menu.c | 45 ++++++++++++++++++++++++++++++++--------
src/sdl-instead/menu.h | 8 ++++++-
7 files changed, 142 insertions(+), 29 deletions(-)
diff --git a/lang/en.ini b/lang/en.ini
index 00bec06..b1ab8cf 100644
--- a/lang/en.ini
+++ b/lang/en.ini
@@ -51,19 +51,38 @@ KBD_MODE_SCROLL = Scroll
FROM_THEME = Theme
-SETTINGS_MENU = \
-Sound volume: <<< %d%% >>>\n\
-Sound quality: << %dHz >>\n\
-Music: %s Click sound: %s\n\
+SETTINGS_SND_MENU = \
+[Graphics][Sound][Other]\n\
+\n\
+Volume: <<< %d%% >>>\n\
+\n\
+Quality: << %dHz >>\n\
+\n\
+Music: %s\n\
+Click sound: %s\n\
+\n\
+Apply
+
+SETTINGS_GFX_MENU = \
+[Graphics][Sound][Other]\n\
+\n\
Resolution: <<%s>>\n\
Full screen: %s\n\
Font scaling: <<%d>>\n\
+\n\
Links highlighting: %s\n\
+Custom game themes: %s\n\
+\n\
+Apply
+
+SETTINGS_OTH_MENU = \
+[Graphics][Sound][Other]\n\
+\n\
Scrolling mode: %s\n\
Mouse filter: %s\n\
Keyboard mode: %s\n\
+\n\
Language: <<%s>>\n\
-Custom game themes: %s\n\
Аutosave: %s\n\
\n\
Apply
diff --git a/lang/es.ini b/lang/es.ini
index d411fb0..7f59dd7 100644
--- a/lang/es.ini
+++ b/lang/es.ini
@@ -51,19 +51,38 @@ KBD_MODE_SCROLL = Scroll
FROM_THEME = Tema
-SETTINGS_MENU = \
-Volumen Sonido: <<< %d%% >>>\n\
-Calidad Sonido: << %dHz >>\n\
-Música: %s Sonido Click: %s\n\
+SETTINGS_SND_MENU = \
+[Gráficos][Sonido][Otros]\n\
+\n\
+Volumen: <<< %d%% >>>\n\
+\n\
+Calidad: << %dHz >>\n\
+\n\
+Música: %s\n\
+Sonido Click: %s\n\
+\n\
+Aceptar
+
+SETTINGS_GFX_MENU = \
+[Gráficos][Sonido][Otros]\n\
+\n\
Resolución: <<%s>>\n\
Pantalla Completa: %s\n\
Escala de Fuente: <<%d>>\n\
+\n\
Resaltar Links: %s\n\
+Temas específicos del juego: %s\n\
+\n\
+Aceptar
+
+SETTINGS_OTH_MENU = \
+[Gráficos][Sonido][Otros]\n\
+\n\
Modo Scrolling: %s\n\
Filtrar Mouse: %s\n\
Modo Teclado: %s\n\
+\n\
Idioma: <<%s>>\n\
-Temas específicos del juego: %s\n\
AutoGuardar: %s\n\
\n\
Aceptar
diff --git a/lang/it.ini b/lang/it.ini
index 95ae937..5708f6d 100644
--- a/lang/it.ini
+++ b/lang/it.ini
@@ -51,19 +51,38 @@ KBD_MODE_SCROLL = Scroll
FROM_THEME = Tema
-SETTINGS_MENU = \
-Volume della Musica: <<< %d%% >>>\n\
-Qualità del Suono: << %dHz >>\n\
-Musica: %s Suono Click: %s\n\
+SETTINGS_SND_MENU = \
+[Grafica][Sound][Altri]\n\
+\n\
+Volume: <<< %d%% >>>\n\
+\n\
+Qualità: << %dHz >>\n\
+\n\
+Musica: %s\n\
+Suono Click: %s\n\
+\n\
+Applica
+
+SETTINGS_GFX_MENU = \
+[Grafica][Sound][Altri]\n\
+\n\
Risoluzione: <<%s>>\n\
Schermo intero: %s\n\
Dimensione dei Caratteri: <<%d>>\n\
+\n\
Evidenziazione dei Links: %s\n\
+Tema personalizzato del gioco: %s\n\
+\n\
+Applica
+
+SETTINGS_OTH_MENU = \
+[Grafica][Sound][Altri]\n\
+\n\
Modalità di Scorrimento: %s\n\
Filtro Mouse: %s\n\
Modalità Tastiera: %s\n\
+\n\
Lingua: <<%s>>\n\
-Tema personalizzato del gioco: %s\n\
Аutosalvataggio: %s\n\
\n\
Applica
diff --git a/lang/ru.ini b/lang/ru.ini
index 6858f71..1c99a84 100644
--- a/lang/ru.ini
+++ b/lang/ru.ini
@@ -52,19 +52,38 @@ KBD_MODE_SCROLL = Прокрутка
FROM_THEME = Тема
-SETTINGS_MENU = \
+SETTINGS_SND_MENU = \
+[Графика][Звук][Другое]\n\
+\n\
Громкость: <<< %d%% >>>\n\
-Качество звука: << %dГц >>\n\
-Музыка: %s Звук щелчка: %s\n\
+\n\
+Качество: << %dГц >>\n\
+\n\
+Музыка: %s\n\
+Звук щелчка: %s\n\
+\n\
+Применить
+
+SETTINGS_GFX_MENU = \
+[Графика][Звук][Другое]\n\
+\n\
Размер окна: <<%s>>\n\
Полный экран: %s\n\
Масштаб шрифта: <<%d>>\n\
+\n\
Подсветка ссылок: %s\n\
+Собственные темы игр: %s\n\
+\n\
+Применить
+
+SETTINGS_OTH_MENU = \
+[Графика][Звук][Другое]\n\
+\n\
Режим прокрутки: %s\n\
Фильтр мышки: %s\n\
Режим клавиатуры: %s\n\
+\n\
Язык: <<%s>>\n\
-Собственные темы игр: %s\n\
Автосохранение: %s\n\
\n\
Применить
diff --git a/src/sdl-instead/config.c b/src/sdl-instead/config.c
index 8a044ea..f8f3bdf 100644
--- a/src/sdl-instead/config.c
+++ b/src/sdl-instead/config.c
@@ -1,7 +1,11 @@
#include "externals.h"
#include "internals.h"
+#if defined(ANDROID) || defined(S60) || defined(_WIN32_WCE)
+int opt_fsize = 12;
+#else
int opt_fsize = 0;
+#endif
#if defined(MAEMO) || defined(ANDROID)
int opt_fs = 1;
int opt_owntheme = 0;
diff --git a/src/sdl-instead/menu.c b/src/sdl-instead/menu.c
index f63bdca..4563c84 100644
--- a/src/sdl-instead/menu.c
+++ b/src/sdl-instead/menu.c
@@ -21,7 +21,9 @@ char *SELECT_SAVE_MENU = NULL;
char *MAIN_MENU = NULL;
char *ABOUT_MENU = NULL;
char *BACK_MENU = NULL;
-char *SETTINGS_MENU = NULL;
+char *SETTINGS_SND_MENU = NULL;
+char *SETTINGS_GFX_MENU = NULL;
+char *SETTINGS_OTH_MENU = NULL;
char *CUSTOM_THEME_MENU = NULL;
char *OWN_THEME_MENU = NULL;
char *SELECT_GAME_MENU = NULL;
@@ -332,7 +334,7 @@ static char *opt_get_mode(void)
}
static int gtr = 0;
-
+static int menu_settings_num = 0;
char *game_menu_gen(void)
{
if (cur_menu == menu_main) {
@@ -341,10 +343,22 @@ char *game_menu_gen(void)
snprintf(menu_buff, sizeof(menu_buff), ABOUT_MENU, VERSION);
} else if (cur_menu == menu_settings) {
char *kbd [KBD_MAX] = { KBD_MODE_SMART, KBD_MODE_LINKS, KBD_MODE_SCROLL };
- snprintf(menu_buff, sizeof(menu_buff), SETTINGS_MENU,
- snd_vol_to_pcn(snd_volume_mus(-1)), snd_hz(), opt_music?ON:OFF, opt_click?ON:OFF,
- opt_get_mode(), opt_fs?ON:OFF, opt_fsize, opt_hl?ON:OFF, opt_motion?ON:OFF, opt_filter?ON:OFF, kbd[opt_kbd],
- langs[cur_lang].name, opt_owntheme?ON:OFF, opt_autosave?ON:OFF);
+
+ switch (menu_settings_num) {
+ case 0:
+ snprintf(menu_buff, sizeof(menu_buff), SETTINGS_GFX_MENU,
+ opt_get_mode(), opt_fs?ON:OFF, opt_fsize, opt_hl?ON:OFF, opt_owntheme?ON:OFF);
+ break;
+ case 1:
+ snprintf(menu_buff, sizeof(menu_buff), SETTINGS_SND_MENU,
+ snd_vol_to_pcn(snd_volume_mus(-1)), snd_hz(), opt_music?ON:OFF, opt_click?ON:OFF);
+ break;
+ case 2:
+ snprintf(menu_buff, sizeof(menu_buff), SETTINGS_OTH_MENU,
+ opt_motion?ON:OFF, opt_filter?ON:OFF, kbd[opt_kbd],
+ langs[cur_lang].name, opt_autosave?ON:OFF);
+ break;
+ }
} else if (cur_menu == menu_askquit) {
snprintf(menu_buff, sizeof(menu_buff), QUIT_MENU);
} else if (cur_menu == menu_saved) {
@@ -559,6 +573,15 @@ int game_menu_act(const char *a)
game_menu_box(0, NULL);
} else if (!strcmp(a, "/settings")) {
game_menu(menu_settings);
+ } else if (!strcmp(a, "/settings-gfx")) {
+ menu_settings_num = 0;
+ game_menu_box(1, game_menu_gen());
+ } else if (!strcmp(a, "/settings-snd")) {
+ menu_settings_num = 1;
+ game_menu_box(1, game_menu_gen());
+ } else if (!strcmp(a, "/settings-oth")) {
+ menu_settings_num = 2;
+ game_menu_box(1, game_menu_gen());
} else if (!strcmp(a, "/vol--")) {
game_change_vol(-10, 0);
game_menu_box(1, game_menu_gen());
@@ -679,7 +702,9 @@ static void lang_free(void)
FREE(MAIN_MENU);
FREE(ABOUT_MENU);
FREE(BACK_MENU);
- FREE(SETTINGS_MENU);
+ FREE(SETTINGS_SND_MENU);
+ FREE(SETTINGS_GFX_MENU);
+ FREE(SETTINGS_OTH_MENU);
FREE(CUSTOM_THEME_MENU);
FREE(OWN_THEME_MENU);
FREE(SELECT_GAME_MENU);
@@ -704,7 +729,7 @@ static int lang_ok(void)
{
if (UNKNOWN_ERROR && ERROR_MENU && WARNING_MENU && SAVE_SLOT_EMPTY &&
SELECT_LOAD_MENU && AUTOSAVE_SLOT && BROKEN_SLOT && SELECT_SAVE_MENU &&
- MAIN_MENU && ABOUT_MENU && BACK_MENU && SETTINGS_MENU &&
+ MAIN_MENU && ABOUT_MENU && BACK_MENU && SETTINGS_SND_MENU && SETTINGS_GFX_MENU && SETTINGS_OTH_MENU &&
CUSTOM_THEME_MENU && OWN_THEME_MENU && SELECT_GAME_MENU && SELECT_THEME_MENU &&
SAVED_MENU && NOGAMES_MENU && NOTHEMES_MENU && QUIT_MENU && REMOVE_MENU &&
ON && OFF && KBD_MODE_LINKS && KBD_MODE_SMART && KBD_MODE_SCROLL && CANCEL_MENU &&
@@ -725,7 +750,9 @@ struct parser lang_parser[] = {
{ "MAIN_MENU", parse_esc_string, &MAIN_MENU },
{ "ABOUT_MENU", parse_esc_string, &ABOUT_MENU },
{ "BACK_MENU", parse_esc_string, &BACK_MENU },
- { "SETTINGS_MENU", parse_esc_string, &SETTINGS_MENU },
+ { "SETTINGS_GFX_MENU", parse_esc_string, &SETTINGS_GFX_MENU },
+ { "SETTINGS_SND_MENU", parse_esc_string, &SETTINGS_SND_MENU },
+ { "SETTINGS_OTH_MENU", parse_esc_string, &SETTINGS_OTH_MENU },
{ "CUSTOM_THEME_MENU", parse_esc_string, &CUSTOM_THEME_MENU },
{ "OWN_THEME_MENU", parse_esc_string, &OWN_THEME_MENU },
{ "SELECT_GAME_MENU", parse_esc_string, &SELECT_GAME_MENU },
diff --git a/src/sdl-instead/menu.h b/src/sdl-instead/menu.h
index a21b98b..155a841 100644
--- a/src/sdl-instead/menu.h
+++ b/src/sdl-instead/menu.h
@@ -1,9 +1,15 @@
#ifndef __MENU_H_INCLUDED
#define __MENU_H_INCLUDED
+#if defined(ANDROID) || defined(S60) || defined(_WIN32_WCE)
+#define MENU_GAMES_MAX 5
+#define MENU_THEMES_MAX 5
+#define MENU_PER_PAGER 5
+#else
#define MENU_GAMES_MAX 8
#define MENU_THEMES_MAX 8
#define MENU_PER_PAGER 7
+#endif
#define FONT_MIN_SZ 8
#define FONT_MAX_SZ 64
@@ -11,7 +17,7 @@
#define MAX_SAVE_SLOTS 6
#define LANG_DEF "en"
-#define MAX_MENU_LINES 18
+#define MAX_MENU_LINES 16
extern int cur_menu;
extern char *game_menu_gen(void);