src/settings_gui.cpp
changeset 8321 96c331ee5ac3
parent 8319 80dc5454487b
child 8323 d5531c7645a7
equal deleted inserted replaced
8320:5a41b1329cdf 8321:96c331ee5ac3
    22 #include "window_func.h"
    22 #include "window_func.h"
    23 #include "vehicle_base.h"
    23 #include "vehicle_base.h"
    24 #include "core/alloc_func.hpp"
    24 #include "core/alloc_func.hpp"
    25 #include "string_func.h"
    25 #include "string_func.h"
    26 #include "gfx_func.h"
    26 #include "gfx_func.h"
       
    27 #include "widgets/dropdown_type.h"
    27 #include "widgets/dropdown_func.h"
    28 #include "widgets/dropdown_func.h"
    28 
    29 
    29 #include "table/sprites.h"
    30 #include "table/sprites.h"
    30 #include "table/strings.h"
    31 #include "table/strings.h"
    31 
    32 
   155 	GAMEOPT_FULLSCREEN,
   156 	GAMEOPT_FULLSCREEN,
   156 	GAMEOPT_SCREENSHOT_TXT  = 30,
   157 	GAMEOPT_SCREENSHOT_TXT  = 30,
   157 	GAMEOPT_SCREENSHOT_BTN,
   158 	GAMEOPT_SCREENSHOT_BTN,
   158 };
   159 };
   159 
   160 
       
   161 /**
       
   162  * Update/redraw the languages dropdown
       
   163  * @param w   the window the dropdown belongs to
       
   164  */
       
   165 static void ShowLangDropdown(Window *w)
       
   166 {
       
   167 	typedef std::map<StringID, int, StringIDCompare> LangList;
       
   168 
       
   169 	/* Sort language names */
       
   170 	LangList langs;
       
   171 	for (int i = 0; i < _dynlang.num; i++) langs[SPECSTR_LANGUAGE_START + i] = i;
       
   172 
       
   173 	DropDownList *list = new DropDownList();
       
   174 	for (LangList::iterator it = langs.begin(); it != langs.end(); it++) {
       
   175 		list->push_back(new DropDownListStringItem((*it).first, (*it).second, false));
       
   176 	}
       
   177 
       
   178 	ShowDropDownList(w, list, _dynlang.curr, GAMEOPT_LANG_BTN);
       
   179 }
       
   180 
   160 static void ShowCustCurrency();
   181 static void ShowCustCurrency();
   161 
   182 
   162 static void GameOptionsWndProc(Window *w, WindowEvent *e)
   183 static void GameOptionsWndProc(Window *w, WindowEvent *e)
   163 {
   184 {
   164 	switch (e->event) {
   185 	switch (e->event) {
   226 
   247 
   227 				case GAMEOPT_VEHICLENAME_SAVE: /* Save customized vehicle-names to disk */
   248 				case GAMEOPT_VEHICLENAME_SAVE: /* Save customized vehicle-names to disk */
   228 					break;  // not implemented
   249 					break;  // not implemented
   229 
   250 
   230 				case GAMEOPT_LANG_TXT: case GAMEOPT_LANG_BTN: /* Setup interface language dropdown */
   251 				case GAMEOPT_LANG_TXT: case GAMEOPT_LANG_BTN: /* Setup interface language dropdown */
   231 					ShowDropDownMenu(w, _dynlang.dropdown, _dynlang.curr, GAMEOPT_LANG_BTN, 0, 0);
   252 					ShowLangDropdown(w);
   232 					break;
   253 					break;
   233 
   254 
   234 				case GAMEOPT_RESOLUTION_TXT: case GAMEOPT_RESOLUTION_BTN: /* Setup resolution dropdown */
   255 				case GAMEOPT_RESOLUTION_TXT: case GAMEOPT_RESOLUTION_BTN: /* Setup resolution dropdown */
   235 					ShowDropDownMenu(w, BuildDynamicDropdown(SPECSTR_RESOLUTION_START, _num_resolutions), GetCurRes(), GAMEOPT_RESOLUTION_BTN, 0, 0);
   256 					ShowDropDownMenu(w, BuildDynamicDropdown(SPECSTR_RESOLUTION_START, _num_resolutions), GetCurRes(), GAMEOPT_RESOLUTION_BTN, 0, 0);
   236 					break;
   257 					break;