diff --git a/lang/Czech.ini b/lang/Czech.ini index 0474af3d2..9a905997a 100644 --- a/lang/Czech.ini +++ b/lang/Czech.ini @@ -323,6 +323,7 @@ MISC_TITLE = "JINE" PAUSE_IN_SINGLEPLAYER = "Pauza v hře s jedním hráčem" DISABLE_POPUPS = "Vypnout vyskakovací okna" USE_STANDARD_KEY_BINDINGS_CHAT = "Použít ovládání chatu Terminal/CMD" +CHAT_WIDTH = "Šířka chatu" MENU_OPTIONS = "Nastavení hlavního menu" INFORMATION = "Informace" DEBUG = "Debug" diff --git a/lang/Dutch.ini b/lang/Dutch.ini index 0238ea1a7..0d6f4dfcf 100644 --- a/lang/Dutch.ini +++ b/lang/Dutch.ini @@ -323,6 +323,7 @@ MISC_TITLE = "MISC" PAUSE_IN_SINGLEPLAYER = "Pauzeer in een speler" DISABLE_POPUPS = "Popups uitzetten" USE_STANDARD_KEY_BINDINGS_CHAT = "Terminal/CMD Chatbox besturingen gebruiken" +CHAT_WIDTH = "Chatbreedte" MENU_OPTIONS = "Menu Instellingen" INFORMATION = "Informatie" DEBUG = "Debug" diff --git a/lang/English.ini b/lang/English.ini index b8676aa00..c57c0db68 100644 --- a/lang/English.ini +++ b/lang/English.ini @@ -323,6 +323,7 @@ MISC_TITLE = "MISC" PAUSE_IN_SINGLEPLAYER = "Pause In Singleplayer" DISABLE_POPUPS = "Disable Popups" USE_STANDARD_KEY_BINDINGS_CHAT = "Use Terminal/CMD Chatbox Controls" +CHAT_WIDTH = "Chat Width" MENU_OPTIONS = "Menu Options" INFORMATION = "Info" DEBUG = "Debug" diff --git a/lang/French.ini b/lang/French.ini index 1bd634124..7c371b68a 100644 --- a/lang/French.ini +++ b/lang/French.ini @@ -323,6 +323,7 @@ MISC_TITLE = "AUTRES" PAUSE_IN_SINGLEPLAYER = "Pause en Solo" DISABLE_POPUPS = "Désactiver les Pop-ups" USE_STANDARD_KEY_BINDINGS_CHAT = "Utiliser les contrôles de chat Terminal/CMD" +CHAT_WIDTH = "Largeur du chat" MENU_OPTIONS = "Options du menu" INFORMATION = "Information" DEBUG = "Débogage" diff --git a/lang/German.ini b/lang/German.ini index 29dd12abe..dfd581d2e 100644 --- a/lang/German.ini +++ b/lang/German.ini @@ -323,6 +323,7 @@ MISC_TITLE = "SONSTIGES" PAUSE_IN_SINGLEPLAYER = "Pause im Einzelspieler" DISABLE_POPUPS = "Pop-ups deaktivieren" USE_STANDARD_KEY_BINDINGS_CHAT = "Terminal/CMD Chatbox-Steuerung verwenden" +CHAT_WIDTH = "Chatbreite" MENU_OPTIONS = "Menüoptionen" INFORMATION = "Info" DEBUG = "Debug" diff --git a/lang/Italian.ini b/lang/Italian.ini index 7a62952a4..6ef6525da 100644 --- a/lang/Italian.ini +++ b/lang/Italian.ini @@ -321,6 +321,7 @@ MISC_TITLE = "VARIE" PAUSE_IN_SINGLEPLAYER = "Pausa in Giocatore Singolo" DISABLE_POPUPS = "Disabilita Popup" USE_STANDARD_KEY_BINDINGS_CHAT = "Usa controlli chat Terminale/CMD" +CHAT_WIDTH = "Larghezza chat" MENU_OPTIONS = "Opzioni Menù" INFORMATION = "Informazione" DEBUG = "Debug" diff --git a/lang/Japanese.ini b/lang/Japanese.ini index b04e8bbf2..a6984c171 100644 --- a/lang/Japanese.ini +++ b/lang/Japanese.ini @@ -324,6 +324,7 @@ MISC_TITLE = "MISC" PAUSE_IN_SINGLEPLAYER = "ソロプレイでの一時停止" DISABLE_POPUPS = "ポップアップを無効にする" USE_STANDARD_KEY_BINDINGS_CHAT = "ターミナル/CMDチャットボックスコントロールを使用" +CHAT_WIDTH = "チャット幅" MENU_OPTIONS = "メニューの設定" INFORMATION = "情報" DEBUG = "デバッグ" diff --git a/lang/Polish.ini b/lang/Polish.ini index d0b196bfe..d59b6e678 100644 --- a/lang/Polish.ini +++ b/lang/Polish.ini @@ -323,6 +323,7 @@ MISC_TITLE = "POZOSTAŁE OPCJE" PAUSE_IN_SINGLEPLAYER = "Pauza w Trybie Pojedynczego Gracza" DISABLE_POPUPS = "Wyłącz Dymki Powiadomień" USE_STANDARD_KEY_BINDINGS_CHAT = "Użyj sterowania czatu Terminal/CMD" +CHAT_WIDTH = "Szerokość czatu" MENU_OPTIONS = "Opcje Menu" INFORMATION = "Informacja" DEBUG = "Debugowanie" diff --git a/lang/Portuguese.ini b/lang/Portuguese.ini index e014f5add..5471ecba3 100644 --- a/lang/Portuguese.ini +++ b/lang/Portuguese.ini @@ -323,6 +323,7 @@ MISC_TITLE = "OUTROS" PAUSE_IN_SINGLEPLAYER = "Pausar com apenas um jogador" DISABLE_POPUPS = "Desativar pop-ups" USE_STANDARD_KEY_BINDINGS_CHAT = "Usar controles de chat Terminal/CMD" +CHAT_WIDTH = "Largura do chat" MENU_OPTIONS = "Opções de menu" INFORMATION = "Informações" DEBUG = "Debug" diff --git a/lang/Russian.ini b/lang/Russian.ini index baa79ef4f..43ee484ff 100644 --- a/lang/Russian.ini +++ b/lang/Russian.ini @@ -322,6 +322,7 @@ MISC_TITLE = "MISC" PAUSE_IN_SINGLEPLAYER = "Пауза в одиночной игре" DISABLE_POPUPS = "Отключить всплывающие окна" USE_STANDARD_KEY_BINDINGS_CHAT = "Использовать управление чатом Terminal/CMD" +CHAT_WIDTH = "Ширина чата" MENU_OPTIONS = "Параметры меню" INFORMATION = "Информация" DEBUG = "Отладка" diff --git a/lang/Spanish.ini b/lang/Spanish.ini index 15a8a317e..086442076 100644 --- a/lang/Spanish.ini +++ b/lang/Spanish.ini @@ -323,6 +323,7 @@ MISC_TITLE = "OTROS" PAUSE_IN_SINGLEPLAYER = "Pausa en modo de un jugador" DISABLE_POPUPS = "Deshabilitar mensajes emergentes" USE_STANDARD_KEY_BINDINGS_CHAT = "Usar controles de chat Terminal/CMD" +CHAT_WIDTH = "Ancho del chat" MENU_OPTIONS = "Opciones del menú" INFORMATION = "Información" DEBUG = "Depuración" diff --git a/src/pc/configfile.c b/src/pc/configfile.c index a3d495775..a7627b3b5 100644 --- a/src/pc/configfile.c +++ b/src/pc/configfile.c @@ -133,6 +133,7 @@ unsigned int configGamepadNumber = 0; bool configBackgroundGamepad = true; bool configDisableGamepads = false; bool configUseStandardKeyBindingsChat = true; +unsigned int configChatWidth = 800; bool configSmoothScrolling = false; // free camera settings bool configEnableFreeCamera = false; @@ -279,6 +280,7 @@ static const struct ConfigOption options[] = { {.name = "disable_gamepads", .type = CONFIG_TYPE_BOOL, .boolValue = &configDisableGamepads}, #endif {.name = "use_standard_key_bindings_chat", .type = CONFIG_TYPE_BOOL, .boolValue = &configUseStandardKeyBindingsChat}, + {.name = "chat_width", .type = CONFIG_TYPE_UINT, .uintValue = &configChatWidth}, {.name = "smooth_scrolling", .type = CONFIG_TYPE_BOOL, .boolValue = &configSmoothScrolling}, {.name = "stick_rotate_left", .type = CONFIG_TYPE_BOOL, .boolValue = &configStick.rotateLeft}, {.name = "stick_invert_left_x", .type = CONFIG_TYPE_BOOL, .boolValue = &configStick.invertLeftX}, diff --git a/src/pc/configfile.h b/src/pc/configfile.h index 755fe6ba9..1a4aaec59 100644 --- a/src/pc/configfile.h +++ b/src/pc/configfile.h @@ -96,6 +96,7 @@ extern unsigned int configGamepadNumber; extern bool configBackgroundGamepad; extern bool configDisableGamepads; extern bool configUseStandardKeyBindingsChat; +extern unsigned int configChatWidth; extern bool configSmoothScrolling; // free camera settings extern bool configEnableFreeCamera; diff --git a/src/pc/djui/djui_chat_box.c b/src/pc/djui/djui_chat_box.c index 9d8cdb558..d02aca227 100644 --- a/src/pc/djui/djui_chat_box.c +++ b/src/pc/djui/djui_chat_box.c @@ -645,7 +645,7 @@ struct DjuiChatBox* djui_chat_box_create(void) { djui_base_init(&gDjuiRoot->base, base, djui_chat_box_render, djui_chat_box_destroy); djui_base_set_size_type(base, DJUI_SVT_ABSOLUTE, DJUI_SVT_ABSOLUTE); - djui_base_set_size(base, 800, 400); + djui_base_set_size(base, configChatWidth, 400); djui_base_set_alignment(base, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); djui_base_set_color(base, 0, 0, 0, 0); djui_base_set_padding(base, 0, 8, 8, 8); diff --git a/src/pc/djui/djui_panel_controls.c b/src/pc/djui/djui_panel_controls.c index 8088580a9..ac6f63827 100644 --- a/src/pc/djui/djui_panel_controls.c +++ b/src/pc/djui/djui_panel_controls.c @@ -42,6 +42,28 @@ void djui_panel_controls_create(struct DjuiBase* caller) { #endif djui_checkbox_create(body, DLANG(MISC, USE_STANDARD_KEY_BINDINGS_CHAT), &configUseStandardKeyBindingsChat, NULL); + static unsigned int sChatWidthIndex = 3; + switch (configChatWidth) { + case 500: sChatWidthIndex = 0; break; + case 600: sChatWidthIndex = 1; break; + case 700: sChatWidthIndex = 2; break; + case 800: sChatWidthIndex = 3; break; + case 900: sChatWidthIndex = 4; break; + case 1000: sChatWidthIndex = 5; break; + default: sChatWidthIndex = 3; break; + } + + char* chatWidthChoices[] = { "500", "600", "700", "800", "900", "1000" }; + void on_chat_width_change(struct DjuiBase* b) { + unsigned int idx = sChatWidthIndex; + unsigned int widths[] = {500,600,700,800,900,1000}; + configChatWidth = widths[idx]; + if (gDjuiChatBox != NULL) { + djui_base_set_size(&gDjuiChatBox->base, configChatWidth, gDjuiChatBox->base.height.value); + } + } + djui_selectionbox_create(body, DLANG(MISC, CHAT_WIDTH), chatWidthChoices, 6, &sChatWidthIndex, on_chat_width_change); + #ifdef HAVE_SDL2 int numJoys = SDL_NumJoysticks(); if (numJoys == 0) { numJoys = 1; }