Add the capability to set a sort object on a dialog to set_menu,
...and use it to rewrite the recall dialog as an instantiation of dialog.
This commit is contained in:
parent
c87e038988
commit
63c59d44d0
4 changed files with 21 additions and 20 deletions
|
@ -261,7 +261,6 @@ reduced_editor_sources = \
|
|||
animated_editor.cpp \
|
||||
astarnode.cpp \
|
||||
astarsearch.cpp \
|
||||
basic_dialog.cpp \
|
||||
builder.cpp \
|
||||
cavegen.cpp \
|
||||
checksum.cpp \
|
||||
|
@ -422,7 +421,6 @@ noinst_HEADERS = \
|
|||
array.hpp \
|
||||
astarnode.hpp \
|
||||
attack_prediction.hpp \
|
||||
basic_dialog.hpp \
|
||||
builder.hpp \
|
||||
cavegen.hpp \
|
||||
checksum.hpp \
|
||||
|
|
|
@ -242,10 +242,10 @@ void dialog::set_textbox(const std::string& text_widget_label,
|
|||
text_widget_->set_wrap(!editable_textbox);
|
||||
}
|
||||
|
||||
void dialog::set_menu(const std::vector<std::string> &menu_items)
|
||||
void dialog::set_menu(const std::vector<std::string> &menu_items, menu::sorter* sorter)
|
||||
{
|
||||
set_menu(new gui::menu(disp_.video(), menu_items, (type_==MESSAGE),
|
||||
-1, dialog::max_menu_width, NULL, &menu::default_style, false));
|
||||
-1, dialog::max_menu_width, sorter, &menu::default_style, false));
|
||||
}
|
||||
|
||||
menu& dialog::get_menu()
|
||||
|
|
|
@ -194,7 +194,7 @@ public:
|
|||
void set_image(dialog_image *const img) { delete image_; image_ = img; }
|
||||
void set_image(surface surf, const std::string &caption="");
|
||||
void set_menu(menu *const m) { if(menu_ != empty_menu) delete menu_; menu_ = m; }
|
||||
void set_menu(const std::vector<std::string> & menu_items);
|
||||
void set_menu(const std::vector<std::string> & menu_items, menu::sorter* sorter=NULL);
|
||||
//add_pane - preview panes are not currently memory managed (for backwards compat)
|
||||
|
||||
void add_pane(preview_pane *const pp) { preview_panes_.push_back(pp); }
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "global.hpp"
|
||||
|
||||
#include "construct_dialog.hpp"
|
||||
#include "dialogs.hpp"
|
||||
#include "game_display.hpp"
|
||||
#include "game_config.hpp"
|
||||
|
@ -749,10 +750,14 @@ namespace events{
|
|||
std::vector<gui::preview_pane*> preview_panes;
|
||||
preview_panes.push_back(&unit_preview);
|
||||
|
||||
recruit_res = gui::show_dialog(*gui_,NULL,_("Recruit"),
|
||||
_("Select unit:") + std::string("\n"),
|
||||
gui::OK_CANCEL,&items,&preview_panes,"",NULL,-1,NULL,-1,-1,
|
||||
NULL,NULL,"recruit_and_recall");
|
||||
gui::dialog rmenu(*gui_,_("Recruit"),
|
||||
_("Select unit:") + std::string("\n"),
|
||||
gui::OK_CANCEL,
|
||||
&gui::dialog::default_style,
|
||||
"recruit_and_recall");
|
||||
rmenu.set_menu(items);
|
||||
rmenu.set_panes(preview_panes);
|
||||
recruit_res = rmenu.show();
|
||||
}
|
||||
|
||||
if(recruit_res != -1) {
|
||||
|
@ -889,21 +894,19 @@ namespace events{
|
|||
|
||||
delete_recall_unit recall_deleter(*gui_,recall_list);
|
||||
gui::dialog_button_info delete_button(&recall_deleter,_("Dismiss Unit"));
|
||||
std::vector<gui::dialog_button_info> buttons;
|
||||
buttons.push_back(delete_button);
|
||||
|
||||
int res = 0;
|
||||
|
||||
{
|
||||
dialogs::unit_preview_pane unit_preview(*gui_,&map_,recall_list);
|
||||
std::vector<gui::preview_pane*> preview_panes;
|
||||
preview_panes.push_back(&unit_preview);
|
||||
|
||||
res = gui::show_dialog(*gui_,NULL,_("Recall"),
|
||||
_("Select unit:") + std::string("\n"),
|
||||
gui::OK_CANCEL,&options,
|
||||
&preview_panes,"",NULL,-1,
|
||||
NULL,-1,-1,NULL,&buttons,"",&sorter);
|
||||
gui::dialog rmenu(*gui_,_("Recall"),
|
||||
_("Select unit:") + std::string("\n"),
|
||||
gui::OK_CANCEL,
|
||||
&gui::dialog::default_style,
|
||||
"recruit_and_recall");
|
||||
rmenu.set_menu(options, &sorter);
|
||||
rmenu.add_pane(&unit_preview);
|
||||
rmenu.add_button(delete_button);
|
||||
res = rmenu.show();
|
||||
}
|
||||
|
||||
if(res >= 0) {
|
||||
|
|
Loading…
Add table
Reference in a new issue