Skip to content

Commit d4245e6

Browse files
sapiersapier
sapier
authored and
sapier
committedJun 21, 2014
Support for scalable font and gui elements
Fix positioning of tabheader in order to be usable for scaling GUIs WARNING: this changes position of current tabheaders, mods have to adjust!
1 parent a0097c6 commit d4245e6

9 files changed

+143
-57
lines changed
 

‎builtin/mainmenu/init.lua

+6-6
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ local function init_globals()
8383

8484
menudata.worldlist:add_sort_mechanism("alphabetic",sort_worlds_alphabetic)
8585
menudata.worldlist:set_sortmode("alphabetic")
86-
86+
8787
mm_texture.init()
88-
88+
8989
--create main tabview
90-
local tv_main = tabview_create("maintab",{x=12,y=5.2},{x=-0.3,y=-0.99})
90+
local tv_main = tabview_create("maintab",{x=12,y=5.2},{x=0,y=0})
9191
tv_main:set_autosave_tab(true)
9292
tv_main:add(tab_singleplayer)
9393
tv_main:add(tab_multiplayer)
@@ -96,9 +96,9 @@ local function init_globals()
9696
tv_main:add(tab_texturepacks)
9797
tv_main:add(tab_mods)
9898
tv_main:add(tab_credits)
99-
99+
100100
tv_main:set_global_event_handler(main_event_handler)
101-
101+
102102
tv_main:set_tab(core.setting_get("maintab_LAST"))
103103
ui.set_default("maintab")
104104
tv_main:show()
@@ -107,7 +107,7 @@ local function init_globals()
107107
modstore.init({x=12,y=8},4,3)
108108

109109
ui.update()
110-
110+
111111
core.sound_play("main_menu", true)
112112
end
113113

‎builtin/mainmenu/store.lua

+3-3
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ function modstore.init(size, unsortedmods, searchmods)
7878

7979
modstore.current_list = nil
8080

81-
modstore.tv_store = tabview_create("modstore",size,{x=-0.3,y=-0.99})
82-
81+
modstore.tv_store = tabview_create("modstore",size,{x=0,y=0})
82+
8383
modstore.tv_store:set_global_event_handler(modstore.handle_events)
8484

8585
modstore.tv_store:add(
@@ -307,7 +307,7 @@ function modstore.handle_buttons(parent, fields, name, data)
307307
return true
308308
end
309309
end
310-
310+
311311
return false
312312
end
313313

‎src/constants.h

+9
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
8989
// Maximum hit points of a player
9090
#define PLAYER_MAX_HP 20
9191

92+
/*
93+
* GUI related things
94+
*/
95+
#define LEGACY_SCALING (2./3.)
96+
#define DEFAULT_FONT_SIZE (13.0 / LEGACY_SCALING)
97+
#define DEFAULT_IMGSIZE (48.0)
98+
#define DEFAULT_XSPACING ((15.0 + (1.0 / 3.0)))
99+
#define DEFAULT_YSPACING (9.0)
100+
92101
#endif
93102

‎src/defaultsettings.cpp

+20-4
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
2121
#include "porting.h"
2222
#include "filesys.h"
2323
#include "config.h"
24+
#include "constants.h"
25+
#include "porting.h"
2426

2527
void set_default_settings(Settings *settings)
2628
{
@@ -164,13 +166,11 @@ void set_default_settings(Settings *settings)
164166
#if USE_FREETYPE
165167
settings->setDefault("freetype", "true");
166168
settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "liberationsans.ttf"));
167-
settings->setDefault("font_size", "13");
168169
settings->setDefault("font_shadow", "1");
169170
settings->setDefault("font_shadow_alpha", "128");
170171
settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "liberationmono.ttf"));
171-
settings->setDefault("mono_font_size", "13");
172172
settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "DroidSansFallbackFull.ttf"));
173-
settings->setDefault("fallback_font_size", "13");
173+
174174
settings->setDefault("fallback_font_shadow", "1");
175175
settings->setDefault("fallback_font_shadow_alpha", "128");
176176
#else
@@ -234,7 +234,7 @@ void set_default_settings(Settings *settings)
234234
settings->setDefault("emergequeue_limit_diskonly", "32");
235235
settings->setDefault("emergequeue_limit_generate", "32");
236236
settings->setDefault("num_emerge_threads", "1");
237-
237+
238238
// physics stuff
239239
settings->setDefault("movement_acceleration_default", "3");
240240
settings->setDefault("movement_acceleration_air", "2");
@@ -278,6 +278,22 @@ void set_default_settings(Settings *settings)
278278
settings->setDefault("language", "");
279279
}
280280

281+
void late_init_default_settings(Settings* settings)
282+
{
283+
#ifndef SERVER
284+
std::stringstream fontsize;
285+
fontsize << floor(
286+
DEFAULT_FONT_SIZE *
287+
porting::getDisplayDensity() *
288+
settings->getFloat("gui_scaling")
289+
);
290+
291+
settings->setDefault("font_size", fontsize.str());
292+
settings->setDefault("mono_font_size", fontsize.str());
293+
settings->setDefault("fallback_font_size", fontsize.str());
294+
#endif
295+
}
296+
281297
void override_default_settings(Settings *settings, Settings *from)
282298
{
283299
std::vector<std::string> names = from->getNames();

‎src/defaultsettings.h

+16
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,23 @@ with this program; if not, write to the Free Software Foundation, Inc.,
2222

2323
class Settings;
2424

25+
/**
26+
* initialize basic default settings
27+
* @param settings pointer to settings
28+
*/
2529
void set_default_settings(Settings *settings);
30+
31+
/**
32+
* initialize default values which require knowledge about gui
33+
* @param settings pointer to settings
34+
*/
35+
void late_init_default_settings(Settings* settings);
36+
37+
/**
38+
* override a default settings by settings from another settings element
39+
* @param settings target settings pointer
40+
* @param from source settings pointer
41+
*/
2642
void override_default_settings(Settings *settings, Settings *from);
2743

2844
#endif

0 commit comments

Comments
 (0)
Please sign in to comment.