Skip to content

Commit e17ae47

Browse files
committedMar 30, 2013
GUI: Make singleplayer default tab, store selected serverlist, show title of serverlist
1 parent 6cf581e commit e17ae47

File tree

3 files changed

+46
-25
lines changed

3 files changed

+46
-25
lines changed
 

‎src/guiMainMenu.cpp

+35-10
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ enum
157157
GUI_ID_SERVERLIST,
158158
GUI_ID_SERVERLIST_TOGGLE,
159159
GUI_ID_SERVERLIST_DELETE,
160+
GUI_ID_SERVERLIST_TITLE,
160161
};
161162

162163
enum
@@ -427,16 +428,37 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
427428
changeCtype("");
428429
// Server List
429430
{
430-
core::rect<s32> rect(0, 0, 390, 160);
431-
rect += m_topleft_client + v2s32(50, 10);
431+
core::rect<s32> rect(0, 0, 390, 140);
432+
rect += m_topleft_client + v2s32(50, 30);
432433
gui::IGUIListBox *e = Environment->addListBox(rect, this,
433434
GUI_ID_SERVERLIST);
434435
e->setDrawBackground(true);
435-
if (m_data->serverlist_show_available == false)
436-
m_data->servers = ServerList::getLocal();
437436
#if USE_CURL
438-
else
437+
if(m_data->selected_serverlist == SERVERLIST_FAVORITES) {
438+
m_data->servers = ServerList::getLocal();
439+
{
440+
core::rect<s32> rect(0, 0, 110, 20);
441+
rect += m_topleft_client + v2s32(50, 10);
442+
Environment->addStaticText(wgettext("Favorites:"),
443+
rect, false, true, this, GUI_ID_SERVERLIST_TITLE);
444+
}
445+
} else {
439446
m_data->servers = ServerList::getOnline();
447+
{
448+
core::rect<s32> rect(0, 0, 110, 20);
449+
rect += m_topleft_client + v2s32(50, 10);
450+
Environment->addStaticText(wgettext("Public Server List:"),
451+
rect, false, true, this, GUI_ID_SERVERLIST_TITLE);
452+
}
453+
}
454+
#else
455+
m_data->servers = ServerList::getLocal();
456+
{
457+
core::rect<s32> rect(0, 0, 110, 20);
458+
rect += m_topleft_client + v2s32(50, 10);
459+
Environment->addStaticText(wgettext("Favorites:"),
460+
rect, false, true, this, GUI_ID_SERVERLIST_TITLE);
461+
}
440462
#endif
441463
updateGuiServerList();
442464
e->setSelected(0);
@@ -474,7 +496,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
474496
gui::IGUIButton *e = Environment->addButton(rect, this, GUI_ID_SERVERLIST_TOGGLE,
475497
wgettext("Show Public"));
476498
e->setIsPushButton(true);
477-
if (m_data->serverlist_show_available)
499+
if (m_data->selected_serverlist == SERVERLIST_PUBLIC)
478500
{
479501
e->setText(wgettext("Show Favorites"));
480502
e->setPressed();
@@ -487,7 +509,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
487509
rect += m_topleft_client + v2s32(50+260+10, 180);
488510
gui::IGUIButton *e = Environment->addButton(rect, this, GUI_ID_SERVERLIST_DELETE,
489511
wgettext("Delete"));
490-
if (m_data->serverlist_show_available) // Hidden on Show-Online mode
512+
if (m_data->selected_serverlist == SERVERLIST_PUBLIC) // Hidden when on public list
491513
e->setVisible(false);
492514
}
493515
// Start game button
@@ -1154,25 +1176,28 @@ bool GUIMainMenu::OnEvent(const SEvent& event)
11541176
gui::IGUIElement *togglebutton = getElementFromId(GUI_ID_SERVERLIST_TOGGLE);
11551177
gui::IGUIElement *deletebutton = getElementFromId(GUI_ID_SERVERLIST_DELETE);
11561178
gui::IGUIListBox *serverlist = (gui::IGUIListBox*)getElementFromId(GUI_ID_SERVERLIST);
1157-
if (m_data->serverlist_show_available) // switch to favorite list
1179+
gui::IGUIElement *title = getElementFromId(GUI_ID_SERVERLIST_TITLE);
1180+
if (m_data->selected_serverlist == SERVERLIST_PUBLIC) // switch to favorite list
11581181
{
11591182
m_data->servers = ServerList::getLocal();
11601183
togglebutton->setText(wgettext("Show Public"));
1184+
title->setText(wgettext("Favorites:"));
11611185
deletebutton->setVisible(true);
11621186
updateGuiServerList();
11631187
serverlist->setSelected(0);
1188+
m_data->selected_serverlist = SERVERLIST_FAVORITES;
11641189
}
11651190
else // switch to online list
11661191
{
11671192
m_data->servers = ServerList::getOnline();
11681193
togglebutton->setText(wgettext("Show Favorites"));
1194+
title->setText(wgettext("Public Server List:"));
11691195
deletebutton->setVisible(false);
11701196
updateGuiServerList();
11711197
serverlist->setSelected(0);
1198+
m_data->selected_serverlist = SERVERLIST_PUBLIC;
11721199
}
11731200
serverListOnSelected();
1174-
1175-
m_data->serverlist_show_available = !m_data->serverlist_show_available;
11761201
}
11771202
#endif
11781203
}

‎src/guiMainMenu.h

+8-15
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
2929

3030
class IGameCallback;
3131

32+
enum {
33+
SERVERLIST_FAVORITES,
34+
SERVERLIST_PUBLIC,
35+
};
36+
3237
struct MainMenuData
3338
{
3439
// These are in the native format of the gui elements
@@ -64,21 +69,15 @@ struct MainMenuData
6469
std::string create_world_gameid;
6570
bool only_refresh;
6671

67-
bool serverlist_show_available; // if false show local favorites only
72+
int selected_serverlist;
6873

6974
std::vector<WorldSpec> worlds;
7075
std::vector<SubgameSpec> games;
7176
std::vector<ServerListSpec> servers;
7277

7378
MainMenuData():
7479
// Generic
75-
selected_tab(
76-
#if USE_CURL
77-
1
78-
#else
79-
0
80-
#endif
81-
),
80+
selected_tab(0),
8281
// Client opts
8382
fancy_trees(false),
8483
smooth_lighting(false),
@@ -91,13 +90,7 @@ struct MainMenuData
9190
// Actions
9291
only_refresh(false),
9392

94-
serverlist_show_available(
95-
#if USE_CURL
96-
true
97-
#else
98-
false
99-
#endif
100-
)
93+
selected_serverlist(SERVERLIST_FAVORITES)
10194
{}
10295
};
10396

‎src/main.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -1556,6 +1556,8 @@ int main(int argc, char *argv[])
15561556
MainMenuData menudata;
15571557
if(g_settings->exists("selected_mainmenu_tab"))
15581558
menudata.selected_tab = g_settings->getS32("selected_mainmenu_tab");
1559+
if(g_settings->exists("selected_serverlist"))
1560+
menudata.selected_serverlist = g_settings->getS32("selected_serverlist");
15591561
menudata.address = narrow_to_wide(address);
15601562
menudata.name = narrow_to_wide(playername);
15611563
menudata.port = narrow_to_wide(itos(port));
@@ -1752,6 +1754,7 @@ int main(int argc, char *argv[])
17521754
simple_singleplayer_mode = menudata.simple_singleplayer_mode;
17531755
// Save settings
17541756
g_settings->setS32("selected_mainmenu_tab", menudata.selected_tab);
1757+
g_settings->setS32("selected_serverlist", menudata.selected_serverlist);
17551758
g_settings->set("new_style_leaves", itos(menudata.fancy_trees));
17561759
g_settings->set("smooth_lighting", itos(menudata.smooth_lighting));
17571760
g_settings->set("enable_3d_clouds", itos(menudata.clouds_3d));

0 commit comments

Comments
 (0)
Please sign in to comment.