Properly hide the rectangle box in ghost track screen
This commit is contained in:
parent
f9d2d539ff
commit
e66c4eed35
@ -17,9 +17,9 @@
|
||||
<tabs width="100%" height="25" id="trackgroups"> </tabs>
|
||||
|
||||
<spacer width="100%" height="2%" />
|
||||
<box width="100%" height="20%" padding="15" layout="vertical-row">
|
||||
<box id="rect-box" width="100%" height="20%" padding="15" layout="vertical-row">
|
||||
<div width="100%" height="fit" layout="horizontal-row" >
|
||||
<label id="lap-text" proportion="1" I18N="In the track screen" text="Number of laps" text_align="right"/>
|
||||
<label id="lap-text" proportion="1" I18N="In the track screen" text_align="right"/>
|
||||
<spacer width="40"/>
|
||||
<div proportion="1" height="fit" layout="horizontal-row">
|
||||
<spinner id="lap-spinner" width="50%" min_value="1" max_value="20" align="center"
|
||||
@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<spacer height="10"/>
|
||||
<div width="100%" height="fit" layout="horizontal-row" >
|
||||
<label id="reverse-text" proportion="1" I18N="In the track screen" text="Drive in reverse" text_align="right"/>
|
||||
<label id="reverse-text" proportion="1" I18N="In the track screen" text_align="right"/>
|
||||
<spacer width="40"/>
|
||||
<div proportion="1" height="fit" layout="horizontal-row">
|
||||
<div width="50%" height="fit" text-align="center" layout="vertical-row" >
|
||||
|
@ -309,8 +309,9 @@ bool Widget::isVisible() const
|
||||
{
|
||||
if (m_element != NULL)
|
||||
{
|
||||
// repair mismatch
|
||||
if (m_element->isVisible() != m_is_visible)
|
||||
Log::warn("Widget", "Widget isVisible mismatch");
|
||||
m_element->setVisible(m_is_visible);
|
||||
}
|
||||
return m_is_visible;
|
||||
}
|
||||
|
@ -48,13 +48,7 @@ static const char ALL_TRACK_GROUPS_ID[] = "all";
|
||||
DEFINE_SCREEN_SINGLETON( TracksScreen );
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
void TracksScreen::loadedFromFile()
|
||||
{
|
||||
getWidget<CheckBoxWidget>("reverse")->setState(false);
|
||||
getWidget<SpinnerWidget>("lap-spinner")->setValue(1);
|
||||
} // loadedFromFile
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
void TracksScreen::eventCallback(Widget* widget, const std::string& name,
|
||||
const int playerID)
|
||||
{
|
||||
@ -97,12 +91,16 @@ void TracksScreen::eventCallback(Widget* widget, const std::string& name,
|
||||
{
|
||||
if (STKHost::existHost())
|
||||
{
|
||||
assert(m_laps);
|
||||
assert(m_reversed);
|
||||
// Remember reverse globally for each stk instance
|
||||
m_reverse_checked = m_reversed->getState();
|
||||
UserConfigParams::m_num_laps = m_laps->getValue();
|
||||
NetworkString vote(PROTOCOL_LOBBY_ROOM);
|
||||
vote.addUInt8(LobbyProtocol::LE_VOTE);
|
||||
vote.encodeString(track->getIdent()).addUInt8
|
||||
(getWidget<SpinnerWidget>("lap-spinner")->getValue())
|
||||
.addUInt8(
|
||||
getWidget<CheckBoxWidget>("reverse")->getState());
|
||||
vote.encodeString(track->getIdent())
|
||||
.addUInt8(m_laps->getValue())
|
||||
.addUInt8(m_reversed->getState());
|
||||
STKHost::get()->sendToServer(&vote, true);
|
||||
}
|
||||
else
|
||||
@ -143,11 +141,56 @@ void TracksScreen::tearDown()
|
||||
m_network_tracks = false;
|
||||
} // tearDown
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
void TracksScreen::loadedFromFile()
|
||||
{
|
||||
m_reversed = NULL;
|
||||
m_laps = NULL;
|
||||
} // loadedFromFile
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
void TracksScreen::beforeAddingWidget()
|
||||
{
|
||||
Screen::init();
|
||||
|
||||
Widget* rect_box = getWidget("rect-box");
|
||||
|
||||
if (m_bottom_box_height == -1)
|
||||
m_bottom_box_height = rect_box->m_h;
|
||||
|
||||
if (m_network_tracks)
|
||||
{
|
||||
rect_box->setVisible(true);
|
||||
rect_box->m_properties[GUIEngine::PROP_HEIGHT] = StringUtils::toString(m_bottom_box_height);
|
||||
getWidget("lap-text")->setVisible(true);
|
||||
//I18N: In track screen
|
||||
getWidget<LabelWidget>("lap-text")->setText(_("Number of laps"), false);
|
||||
m_laps = getWidget<SpinnerWidget>("lap-spinner");
|
||||
assert(m_laps != NULL);
|
||||
m_laps->setVisible(true);
|
||||
getWidget("reverse-text")->setVisible(true);
|
||||
//I18N: In track screen
|
||||
getWidget<LabelWidget>("reverse-text")->setText(_("Drive in reverse"), false);
|
||||
m_reversed = getWidget<CheckBoxWidget>("reverse");
|
||||
assert(m_reversed != NULL);
|
||||
m_reversed->m_properties[GUIEngine::PROP_ALIGN] = "center";
|
||||
calculateLayout();
|
||||
}
|
||||
else
|
||||
{
|
||||
rect_box->setVisible(false);
|
||||
rect_box->m_properties[GUIEngine::PROP_HEIGHT] = "0";
|
||||
m_laps = NULL;
|
||||
m_reversed = NULL;
|
||||
getWidget("lap-text")->setVisible(false);
|
||||
getWidget<LabelWidget>("lap-text")->setText(L"", false);
|
||||
getWidget("lap-spinner")->setVisible(false);
|
||||
getWidget("reverse-text")->setVisible(false);
|
||||
getWidget<LabelWidget>("reverse-text")->setText(L"", false);
|
||||
getWidget("reverse")->setVisible(false);
|
||||
calculateLayout();
|
||||
}
|
||||
|
||||
RibbonWidget* tabs = getWidget<RibbonWidget>("trackgroups");
|
||||
tabs->clearAllChildren();
|
||||
|
||||
@ -202,20 +245,15 @@ void TracksScreen::init()
|
||||
tracks_widget->setSelection(0, PLAYER_ID_GAME_MASTER, true);
|
||||
}
|
||||
STKTexManager::getInstance()->unsetTextureErrorMessage();
|
||||
if (!m_network_tracks)
|
||||
if (m_network_tracks)
|
||||
{
|
||||
getWidget("lap-text")->setVisible(false);
|
||||
getWidget("lap-spinner")->setVisible(false);
|
||||
getWidget("reverse-text")->setVisible(false);
|
||||
getWidget("reverse")->setVisible(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
getWidget("lap-text")->setVisible(true);
|
||||
getWidget("lap-spinner")->setVisible(true);
|
||||
getWidget("reverse-text")->setVisible(true);
|
||||
getWidget("reverse")->setVisible(true);
|
||||
if (UserConfigParams::m_num_laps == 0 ||
|
||||
UserConfigParams::m_num_laps > 20)
|
||||
UserConfigParams::m_num_laps = 1;
|
||||
m_laps->setValue(UserConfigParams::m_num_laps);
|
||||
m_reversed->setState(m_reverse_checked);
|
||||
}
|
||||
|
||||
if (NetworkConfig::get()->isAutoConnect() && m_network_tracks)
|
||||
{
|
||||
assert(!m_random_track_list.empty());
|
||||
|
@ -21,7 +21,11 @@
|
||||
#include "guiengine/screen.hpp"
|
||||
#include <deque>
|
||||
|
||||
namespace GUIEngine { class Widget; }
|
||||
namespace GUIEngine
|
||||
{
|
||||
class CheckBoxWidget;
|
||||
class SpinnerWidget;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief screen where the user can select a track
|
||||
@ -36,9 +40,14 @@ private:
|
||||
TracksScreen() : Screen("tracks.stkgui")
|
||||
{
|
||||
m_network_tracks = false;
|
||||
m_reverse_checked = false;
|
||||
}
|
||||
|
||||
bool m_network_tracks;
|
||||
GUIEngine::CheckBoxWidget* m_reversed;
|
||||
GUIEngine::SpinnerWidget* m_laps;
|
||||
bool m_network_tracks, m_reverse_checked;
|
||||
|
||||
int m_bottom_box_height = -1;
|
||||
|
||||
/** adds the tracks from the current track group into the tracks ribbon */
|
||||
void buildTrackList();
|
||||
|
Loading…
x
Reference in New Issue
Block a user