forked from 0ad/0ad
Adds player settings shortcut to Atlas map panel. Fixes #874
Tweaks some control positions and layouts for consistency This was SVN commit r9649.
This commit is contained in:
parent
bd80c1ea42
commit
195c7a00e9
@ -68,6 +68,8 @@ public:
|
||||
|
||||
ToolManager& GetToolManager() { return m_ToolManager; }
|
||||
|
||||
void SelectPage(const wxString& classname) { m_SectionLayout.SelectPage(classname); }
|
||||
|
||||
private:
|
||||
ScriptInterface& m_ScriptInterface;
|
||||
|
||||
|
@ -230,10 +230,10 @@ EnvironmentSidebar::EnvironmentSidebar(ScenarioEditor& scenarioEditor, wxWindow*
|
||||
sunSizer->Add(m_LightingModelList = new VariableListBox(this, _("Light model"), g_EnvironmentSettings.lightingmodel), wxSizerFlags().Expand());
|
||||
|
||||
m_MainSizer->Add(new LightControl(this, wxSize(150, 150), g_EnvironmentSettings));
|
||||
m_MainSizer->Add(m_SkyList = new VariableListBox(this, _("Sky set"), g_EnvironmentSettings.skyset));
|
||||
m_MainSizer->Add(new VariableColourBox(this, _("Sun colour"), g_EnvironmentSettings.suncolour));
|
||||
m_MainSizer->Add(new VariableColourBox(this, _("Terrain ambient colour"), g_EnvironmentSettings.terraincolour));
|
||||
m_MainSizer->Add(new VariableColourBox(this, _("Object ambient colour"), g_EnvironmentSettings.unitcolour));
|
||||
m_MainSizer->Add(m_SkyList = new VariableListBox(this, _("Sky set"), g_EnvironmentSettings.skyset), wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(new VariableColourBox(this, _("Sun colour"), g_EnvironmentSettings.suncolour), wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(new VariableColourBox(this, _("Terrain ambient colour"), g_EnvironmentSettings.terraincolour), wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(new VariableColourBox(this, _("Object ambient colour"), g_EnvironmentSettings.unitcolour), wxSizerFlags().Expand());
|
||||
|
||||
m_Conn = g_EnvironmentSettings.RegisterObserver(0, &SendToGame);
|
||||
}
|
||||
|
@ -46,7 +46,8 @@ enum
|
||||
ID_SimFast,
|
||||
ID_SimSlow,
|
||||
ID_SimPause,
|
||||
ID_SimReset
|
||||
ID_SimReset,
|
||||
ID_OpenPlayerPanel
|
||||
};
|
||||
|
||||
enum
|
||||
@ -122,6 +123,8 @@ void MapSettingsControl::CreateWidgets()
|
||||
{
|
||||
wxSizer* sizer = GetSizer();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Map settings
|
||||
wxBoxSizer* nameSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
nameSizer->Add(new wxStaticText(this, wxID_ANY, _("Name")), wxSizerFlags().Align(wxALIGN_CENTER_VERTICAL));
|
||||
nameSizer->Add(8, 0);
|
||||
@ -172,55 +175,71 @@ void MapSettingsControl::ReadFromEngine()
|
||||
m_MapSettings = AtlasObject::LoadFromJSON(m_ScenarioEditor.GetScriptInterface().GetContext(), *qry.settings);
|
||||
}
|
||||
|
||||
m_MapSettingsKeywords.clear();
|
||||
for (AtIter keyword = m_MapSettings["Keywords"]["item"]; keyword.defined(); ++keyword)
|
||||
m_MapSettingsKeywords.insert(std::wstring(keyword));
|
||||
|
||||
// map name
|
||||
wxDynamicCast(FindWindow(ID_MapName), wxTextCtrl)->ChangeValue(wxString(m_MapSettings["Name"]));
|
||||
|
||||
// map description
|
||||
wxDynamicCast(FindWindow(ID_MapDescription), wxTextCtrl)->ChangeValue(wxString(m_MapSettings["Description"]));
|
||||
|
||||
// reveal map
|
||||
wxDynamicCast(FindWindow(ID_MapReveal), wxCheckBox)->SetValue(wxString(m_MapSettings["RevealMap"]) == L"true");
|
||||
|
||||
// game type / victory conditions
|
||||
if (m_MapSettings["GameType"].defined())
|
||||
wxDynamicCast(FindWindow(ID_MapType), wxChoice)->SetStringSelection(wxString(m_MapSettings["GameType"]));
|
||||
else
|
||||
wxDynamicCast(FindWindow(ID_MapType), wxChoice)->SetSelection(0);
|
||||
|
||||
// lock teams
|
||||
wxDynamicCast(FindWindow(ID_MapTeams), wxCheckBox)->SetValue(wxString(m_MapSettings["LockTeams"]) == L"true");
|
||||
|
||||
wxDynamicCast(FindWindow(ID_MapKW_Demo), wxCheckBox)->SetValue(m_MapSettingsKeywords.count(L"demo") != 0);
|
||||
wxDynamicCast(FindWindow(ID_MapKW_Hidden), wxCheckBox)->SetValue(m_MapSettingsKeywords.count(L"hidden") != 0);
|
||||
// keywords
|
||||
{
|
||||
m_MapSettingsKeywords.clear();
|
||||
for (AtIter keyword = m_MapSettings["Keywords"]["item"]; keyword.defined(); ++keyword)
|
||||
m_MapSettingsKeywords.insert(std::wstring(keyword));
|
||||
|
||||
wxDynamicCast(FindWindow(ID_MapKW_Demo), wxCheckBox)->SetValue(m_MapSettingsKeywords.count(L"demo") != 0);
|
||||
wxDynamicCast(FindWindow(ID_MapKW_Hidden), wxCheckBox)->SetValue(m_MapSettingsKeywords.count(L"hidden") != 0);
|
||||
}
|
||||
}
|
||||
|
||||
AtObj MapSettingsControl::UpdateSettingsObject()
|
||||
{
|
||||
// map name
|
||||
m_MapSettings.set("Name", wxDynamicCast(FindWindow(ID_MapName), wxTextCtrl)->GetValue());
|
||||
|
||||
// map description
|
||||
m_MapSettings.set("Description", wxDynamicCast(FindWindow(ID_MapDescription), wxTextCtrl)->GetValue());
|
||||
|
||||
// reveal map
|
||||
m_MapSettings.setBool("RevealMap", wxDynamicCast(FindWindow(ID_MapReveal), wxCheckBox)->GetValue());
|
||||
|
||||
// game type / victory conditions
|
||||
m_MapSettings.set("GameType", wxDynamicCast(FindWindow(ID_MapType), wxChoice)->GetStringSelection());
|
||||
|
||||
if (wxDynamicCast(FindWindow(ID_MapKW_Demo), wxCheckBox)->GetValue())
|
||||
m_MapSettingsKeywords.insert(L"demo");
|
||||
else
|
||||
m_MapSettingsKeywords.erase(L"demo");
|
||||
// keywords
|
||||
{
|
||||
if (wxDynamicCast(FindWindow(ID_MapKW_Demo), wxCheckBox)->GetValue())
|
||||
m_MapSettingsKeywords.insert(L"demo");
|
||||
else
|
||||
m_MapSettingsKeywords.erase(L"demo");
|
||||
|
||||
if (wxDynamicCast(FindWindow(ID_MapKW_Hidden), wxCheckBox)->GetValue())
|
||||
m_MapSettingsKeywords.insert(L"hidden");
|
||||
else
|
||||
m_MapSettingsKeywords.erase(L"hidden");
|
||||
if (wxDynamicCast(FindWindow(ID_MapKW_Hidden), wxCheckBox)->GetValue())
|
||||
m_MapSettingsKeywords.insert(L"hidden");
|
||||
else
|
||||
m_MapSettingsKeywords.erase(L"hidden");
|
||||
|
||||
AtObj keywords;
|
||||
keywords.set("@array", L"");
|
||||
for (std::set<std::wstring>::iterator it = m_MapSettingsKeywords.begin(); it != m_MapSettingsKeywords.end(); ++it)
|
||||
keywords.add("item", it->c_str());
|
||||
m_MapSettings.set("Keywords", keywords);
|
||||
}
|
||||
|
||||
// teams locked
|
||||
m_MapSettings.setBool("LockTeams", wxDynamicCast(FindWindow(ID_MapTeams), wxCheckBox)->GetValue());
|
||||
|
||||
AtObj keywords;
|
||||
keywords.set("@array", L"");
|
||||
for (std::set<std::wstring>::iterator it = m_MapSettingsKeywords.begin(); it != m_MapSettingsKeywords.end(); ++it)
|
||||
keywords.add("item", it->c_str());
|
||||
m_MapSettings.set("Keywords", keywords);
|
||||
|
||||
return m_MapSettings;
|
||||
}
|
||||
|
||||
@ -242,7 +261,11 @@ MapSidebar::MapSidebar(ScenarioEditor& scenarioEditor, wxWindow* sidebarContaine
|
||||
m_MapSettingsCtrl = new MapSettingsControl(this, m_ScenarioEditor);
|
||||
m_MainSizer->Add(m_MapSettingsCtrl, wxSizerFlags().Expand());
|
||||
|
||||
m_MainSizer->Add(new wxButton(this, ID_OpenPlayerPanel, _T("Player settings")), wxSizerFlags().Expand().Border(wxTOP, 16));
|
||||
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Random map settings
|
||||
wxStaticBoxSizer* sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Random map"));
|
||||
|
||||
sizer->Add(new wxChoice(this, ID_RandomScript), wxSizerFlags().Expand());
|
||||
@ -272,6 +295,8 @@ MapSidebar::MapSidebar(ScenarioEditor& scenarioEditor, wxWindow* sidebarContaine
|
||||
}
|
||||
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Simulation buttons
|
||||
wxStaticBoxSizer* sizer = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Simulation test"));
|
||||
sizer->Add(new wxButton(this, ID_SimPlay, _("Play")), wxSizerFlags().Proportion(1));
|
||||
sizer->Add(new wxButton(this, ID_SimFast, _("Fast")), wxSizerFlags().Proportion(1));
|
||||
@ -466,6 +491,11 @@ void MapSidebar::OnRandomGenerate(wxCommandEvent& WXUNUSED(evt))
|
||||
m_ScenarioEditor.NotifyOnMapReload();
|
||||
}
|
||||
|
||||
void MapSidebar::OnOpenPlayerPanel(wxCommandEvent& WXUNUSED(evt))
|
||||
{
|
||||
m_ScenarioEditor.SelectPage(_T("PlayerSidebar"));
|
||||
}
|
||||
|
||||
BEGIN_EVENT_TABLE(MapSidebar, Sidebar)
|
||||
EVT_COLLAPSIBLEPANE_CHANGED(wxID_ANY, MapSidebar::OnCollapse)
|
||||
EVT_BUTTON(ID_SimPlay, MapSidebar::OnSimPlay)
|
||||
@ -475,4 +505,5 @@ BEGIN_EVENT_TABLE(MapSidebar, Sidebar)
|
||||
EVT_BUTTON(ID_SimReset, MapSidebar::OnSimReset)
|
||||
EVT_BUTTON(ID_RandomReseed, MapSidebar::OnRandomReseed)
|
||||
EVT_BUTTON(ID_RandomGenerate, MapSidebar::OnRandomGenerate)
|
||||
EVT_BUTTON(ID_OpenPlayerPanel, MapSidebar::OnOpenPlayerPanel)
|
||||
END_EVENT_TABLE();
|
||||
|
@ -40,6 +40,7 @@ private:
|
||||
void OnSimReset(wxCommandEvent& evt);
|
||||
void OnRandomReseed(wxCommandEvent& evt);
|
||||
void OnRandomGenerate(wxCommandEvent& evt);
|
||||
void OnOpenPlayerPanel(wxCommandEvent& evt);
|
||||
void UpdateSimButtons();
|
||||
|
||||
int m_SimState;
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
m_Controls.ai = aiChoice;
|
||||
|
||||
playerInfoSizer->Add(gridSizer, wxSizerFlags(1).Expand());
|
||||
sizer->Add(playerInfoSizer, wxSizerFlags().Expand());
|
||||
sizer->Add(playerInfoSizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Resources
|
||||
@ -120,7 +120,7 @@ public:
|
||||
m_Controls.pop = popCtrl;
|
||||
|
||||
resourceSizer->Add(gridSizer, wxSizerFlags(1).Expand());
|
||||
sizer->Add(resourceSizer, wxSizerFlags().Expand());
|
||||
sizer->Add(resourceSizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Diplomacy
|
||||
@ -143,7 +143,7 @@ public:
|
||||
wxWindow* pane = advPane->GetPane();
|
||||
diplomacySizer->Add(advPane, 0, wxGROW | wxALL, 2);*/
|
||||
|
||||
sizer->Add(diplomacySizer, wxSizerFlags().Expand());
|
||||
sizer->Add(diplomacySizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Camera
|
||||
@ -157,7 +157,7 @@ public:
|
||||
cameraClear->Enable(false);
|
||||
cameraSizer->Add(Tooltipped(cameraClear, _("Clear player camera")), wxSizerFlags(1));
|
||||
|
||||
sizer->Add(cameraSizer, wxSizerFlags().Expand());
|
||||
sizer->Add(cameraSizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
|
||||
Layout();
|
||||
Thaw();
|
||||
@ -616,7 +616,7 @@ void PlayerSettingsControl::ReadFromEngine()
|
||||
|
||||
// team
|
||||
if (player["Team"].defined())
|
||||
controls.team->SetSelection((*player["Team"]).getInt());
|
||||
controls.team->SetSelection((*player["Team"]).getInt() + 1);
|
||||
else
|
||||
controls.team->SetSelection(0);
|
||||
|
||||
|
@ -57,35 +57,43 @@ TerrainSidebar::TerrainSidebar(ScenarioEditor& scenarioEditor, wxWindow* sidebar
|
||||
Sidebar(scenarioEditor, sidebarContainer, bottomBarContainer)
|
||||
{
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Terrain elevation
|
||||
wxSizer* sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Elevation tools"));
|
||||
wxSizer* gridSizer = new wxGridSizer(3);
|
||||
gridSizer->Add(new ToolButton(scenarioEditor.GetToolManager(), this, _("Modify"), _T("AlterElevation")), wxSizerFlags().Expand());
|
||||
gridSizer->Add(new ToolButton(scenarioEditor.GetToolManager(), this, _("Smooth"), _T("SmoothElevation")), wxSizerFlags().Expand());
|
||||
gridSizer->Add(new ToolButton(scenarioEditor.GetToolManager(), this, _("Flatten"), _T("FlattenElevation")), wxSizerFlags().Expand());
|
||||
sizer->Add(gridSizer, wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
}
|
||||
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Terrain texture
|
||||
wxSizer* sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Texture tools"));
|
||||
wxSizer* gridSizer = new wxGridSizer(3);
|
||||
gridSizer->Add(new ToolButton(scenarioEditor.GetToolManager(), this, _("Paint"), _T("PaintTerrain")), wxSizerFlags().Expand());
|
||||
gridSizer->Add(new ToolButton(scenarioEditor.GetToolManager(), this, _("Replace"), _T("ReplaceTerrain")), wxSizerFlags().Expand());
|
||||
sizer->Add(gridSizer, wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
}
|
||||
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Brush settings
|
||||
wxSizer* sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Brush"));
|
||||
g_Brush_Elevation.CreateUI(this, sizer);
|
||||
m_MainSizer->Add(sizer);
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
}
|
||||
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Visualise
|
||||
wxSizer* sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Visualise"));
|
||||
m_MainSizer->Add(sizer);
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
|
||||
wxSizer* visSizer = new wxFlexGridSizer(2);
|
||||
wxSizer* visSizer = new wxFlexGridSizer(2, 2, 5, 5);
|
||||
sizer->Add(visSizer);
|
||||
|
||||
wxArrayString defaultChoices;
|
||||
@ -93,17 +101,19 @@ TerrainSidebar::TerrainSidebar(ScenarioEditor& scenarioEditor, wxWindow* sidebar
|
||||
m_PassabilityChoice = new wxChoice(this, ID_Passability, wxDefaultPosition, wxDefaultSize, defaultChoices);
|
||||
m_PassabilityChoice->SetSelection(0);
|
||||
|
||||
visSizer->Add(new wxStaticText(this, wxID_ANY, _("Passability")), wxSizerFlags().Right());
|
||||
visSizer->Add(new wxStaticText(this, wxID_ANY, _("Passability")), wxSizerFlags().Align(wxALIGN_CENTER|wxALIGN_RIGHT));
|
||||
visSizer->Add(m_PassabilityChoice);
|
||||
|
||||
visSizer->Add(new wxStaticText(this, wxID_ANY, _("Priorities")), wxSizerFlags().Right());
|
||||
visSizer->Add(new wxStaticText(this, wxID_ANY, _("Priorities")), wxSizerFlags().Align(wxALIGN_CENTER|wxALIGN_RIGHT));
|
||||
visSizer->Add(new wxCheckBox(this, ID_ShowPriorities, _("")));
|
||||
}
|
||||
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Misc tools
|
||||
wxSizer* sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Misc tools"));
|
||||
sizer->Add(new wxButton(this, ID_ResizeMap, _("Resize map")), wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand());
|
||||
m_MainSizer->Add(sizer, wxSizerFlags().Expand().Border(wxTOP, 10));
|
||||
}
|
||||
|
||||
m_BottomBar = new TerrainBottomBar(scenarioEditor, bottomBarContainer);
|
||||
|
@ -211,15 +211,17 @@ void Brush::CreateUI(wxWindow* parent, wxSizer* sizer)
|
||||
shapes.Add(_("Circle"));
|
||||
shapes.Add(_("Square"));
|
||||
// TODO (maybe): get rid of the extra static box, by not using wxRadioBox
|
||||
sizer->Add(new BrushShapeCtrl(parent, shapes, *this));
|
||||
sizer->Add(new BrushShapeCtrl(parent, shapes, *this), wxSizerFlags().Expand());
|
||||
|
||||
sizer->AddSpacer(5);
|
||||
|
||||
// TODO: These are yucky
|
||||
wxSizer* spinnerSizer = new wxFlexGridSizer(2);
|
||||
spinnerSizer->Add(new wxStaticText(parent, wxID_ANY, _("Size")), wxSizerFlags().Right());
|
||||
wxSizer* spinnerSizer = new wxFlexGridSizer(2, 2, 5, 5);
|
||||
spinnerSizer->Add(new wxStaticText(parent, wxID_ANY, _("Size")), wxSizerFlags().Align(wxALIGN_CENTER|wxALIGN_RIGHT));
|
||||
spinnerSizer->Add(new BrushSizeCtrl(parent, *this));
|
||||
spinnerSizer->Add(new wxStaticText(parent, wxID_ANY, _("Strength")), wxSizerFlags().Right());
|
||||
spinnerSizer->Add(new wxStaticText(parent, wxID_ANY, _("Strength")), wxSizerFlags().Align(wxALIGN_CENTER|wxALIGN_RIGHT));
|
||||
spinnerSizer->Add(new BrushStrengthCtrl(parent, *this));
|
||||
sizer->Add(spinnerSizer);
|
||||
sizer->Add(spinnerSizer, wxSizerFlags().Expand());
|
||||
}
|
||||
|
||||
void Brush::MakeActive()
|
||||
|
Loading…
Reference in New Issue
Block a user