teditor_generate_map polishing.
This commit is contained in:
parent
0fa0eca73d
commit
f7a3c326ec
2 changed files with 52 additions and 23 deletions
|
@ -25,9 +25,30 @@
|
|||
|
||||
namespace gui2 {
|
||||
|
||||
/*WIKI
|
||||
* @page = GUIWindowDefinitionWML
|
||||
* @order = 2_editor_generate_map
|
||||
*
|
||||
* == Editor generate map ==
|
||||
*
|
||||
* This shows the dialog in the editor to select which random generator
|
||||
* should be used to generate a map.
|
||||
*
|
||||
* @start_table = container
|
||||
* current_generator (label) The label displaying the name of the
|
||||
* currently selected generator.
|
||||
* settings (button) When clicked this button opens the
|
||||
* generator settings dialog.
|
||||
* next_generator (button) Selects the next generator in the
|
||||
* list, this list wraps at the end.
|
||||
* @end_table
|
||||
*/
|
||||
|
||||
teditor_generate_map::teditor_generate_map()
|
||||
: map_generators_(), current_map_generator_(0),
|
||||
current_generator_label_(NULL), gui_(NULL)
|
||||
: map_generators_()
|
||||
, current_map_generator_(0)
|
||||
, current_generator_label_(NULL)
|
||||
, gui_(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -55,9 +76,11 @@ map_generator* teditor_generate_map::get_selected_map_generator()
|
|||
void teditor_generate_map::update_current_generator_label(twindow& window)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << lexical_cast<std::string>(current_map_generator_ + 1);
|
||||
ss << "/" << lexical_cast<std::string>(map_generators_.size());
|
||||
ss << ": " << get_selected_map_generator()->name() << ", " << get_selected_map_generator()->config_name();
|
||||
ss << lexical_cast<std::string>(current_map_generator_ + 1)
|
||||
<< "/" << lexical_cast<std::string>(map_generators_.size())
|
||||
<< ": " << get_selected_map_generator()->name()
|
||||
<< ", " << get_selected_map_generator()->config_name();
|
||||
|
||||
current_generator_label_->set_label(ss.str());
|
||||
|
||||
window.invalidate_layout();
|
||||
|
@ -72,18 +95,24 @@ void teditor_generate_map::pre_show(CVideo& /*video*/, twindow& window)
|
|||
{
|
||||
assert(!map_generators_.empty());
|
||||
assert(gui_);
|
||||
current_generator_label_ = &window.get_widget<tlabel>("current_generator", false);
|
||||
tbutton& settings_button = window.get_widget<tbutton>("settings", false);
|
||||
|
||||
current_generator_label_ =
|
||||
&NEW_find_widget<tlabel>(&window, "current_generator", false);
|
||||
|
||||
tbutton& settings_button =
|
||||
NEW_find_widget<tbutton>(&window, "settings", false);
|
||||
settings_button.set_callback_mouse_left_click(
|
||||
dialog_callback<teditor_generate_map, &teditor_generate_map::do_settings>);
|
||||
tbutton& next_generator_button = window.get_widget<tbutton>("next_generator", false);
|
||||
dialog_callback<teditor_generate_map
|
||||
, &teditor_generate_map::do_settings>);
|
||||
|
||||
tbutton& next_generator_button =
|
||||
NEW_find_widget<tbutton>(&window, "next_generator", false);
|
||||
next_generator_button.set_callback_mouse_left_click(
|
||||
dialog_callback<teditor_generate_map, &teditor_generate_map::do_next_generator>);
|
||||
dialog_callback<teditor_generate_map
|
||||
, &teditor_generate_map::do_next_generator>);
|
||||
|
||||
update_current_generator_label(window);
|
||||
}
|
||||
|
||||
void teditor_generate_map::post_show(twindow& /*window*/)
|
||||
{
|
||||
}
|
||||
|
||||
} // namespace gui2
|
||||
|
||||
|
|
|
@ -17,17 +17,16 @@
|
|||
|
||||
#include "gui/dialogs/dialog.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class map_generator;
|
||||
|
||||
class display;
|
||||
|
||||
namespace gui2 {
|
||||
|
||||
class tlabel;
|
||||
|
||||
class teditor_generate_map : public tdialog
|
||||
/** The dialog for selecting which random generator to use in the editor. */
|
||||
class teditor_generate_map
|
||||
: public tdialog
|
||||
{
|
||||
public:
|
||||
teditor_generate_map();
|
||||
|
@ -38,7 +37,11 @@ public:
|
|||
/** Callback for the next generator button */
|
||||
void do_next_generator(twindow& window);
|
||||
|
||||
void set_map_generators(std::vector<map_generator*> mg) { map_generators_ = mg; }
|
||||
void set_map_generators(std::vector<map_generator*> mg)
|
||||
{
|
||||
map_generators_ = mg;
|
||||
}
|
||||
|
||||
std::vector<map_generator*> get_map_generators() { return map_generators_; }
|
||||
|
||||
map_generator* get_selected_map_generator();
|
||||
|
@ -55,9 +58,6 @@ private:
|
|||
/** Inherited from tdialog. */
|
||||
void pre_show(CVideo& video, twindow& window);
|
||||
|
||||
/** Inherited from tdialog. */
|
||||
void post_show(twindow& window);
|
||||
|
||||
/** Available map generators */
|
||||
std::vector<map_generator*> map_generators_;
|
||||
|
||||
|
@ -67,7 +67,6 @@ private:
|
|||
/** Label for the current map generator */
|
||||
tlabel* current_generator_label_;
|
||||
|
||||
|
||||
/** Needed for the old-style map generator settings dialog */
|
||||
display* gui_;
|
||||
};
|
||||
|
@ -75,3 +74,4 @@ private:
|
|||
} // namespace gui2
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue