Add the preview pane for the campaign dialog.
The pane still needs quite a bit tuning and the extra layout phase looks rather bad.
This commit is contained in:
parent
fb6ea9965e
commit
978aa913ad
3 changed files with 73 additions and 2 deletions
|
@ -95,10 +95,46 @@
|
|||
|
||||
border = "all"
|
||||
border_size = 5
|
||||
vertical_alignment = "top"
|
||||
|
||||
# FIXME show the addon pane.
|
||||
[spacer]
|
||||
[/spacer]
|
||||
[panel]
|
||||
definition = "default"
|
||||
[grid]
|
||||
|
||||
[row]
|
||||
grow_factor = 0
|
||||
|
||||
[column]
|
||||
|
||||
[scroll_label]
|
||||
id = "description"
|
||||
definition = "default"
|
||||
[/scroll_label]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[row]
|
||||
grow_factor = 1
|
||||
|
||||
[column]
|
||||
horizontal_alignment = "center"
|
||||
vertical_alignment = "top"
|
||||
|
||||
[image]
|
||||
id = "image"
|
||||
definition = "default"
|
||||
[/image]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[/grid]
|
||||
|
||||
[/panel]
|
||||
|
||||
[/column]
|
||||
|
||||
|
|
|
@ -16,12 +16,40 @@
|
|||
|
||||
#include "gui/dialogs/campaign_selection.hpp"
|
||||
|
||||
#include "gui/dialogs/helper.hpp"
|
||||
#include "gui/widgets/image.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/scroll_label.hpp"
|
||||
#include "gui/widgets/settings.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
||||
namespace gui2 {
|
||||
|
||||
void tcampaign_selection::campaign_selected(twindow& window)
|
||||
{
|
||||
tlistbox* list = dynamic_cast<tlistbox*>(
|
||||
window.find_widget("campaign_list", false));
|
||||
VALIDATE(list, missing_widget("campaign_list"));
|
||||
|
||||
// Get the selected row
|
||||
config::child_list::const_iterator itor = begin_
|
||||
+ list->get_selected_row();
|
||||
|
||||
tscroll_label* scroll_label = dynamic_cast<tscroll_label*>(
|
||||
window.find_widget("description", false));
|
||||
if(scroll_label) {
|
||||
scroll_label->set_label((**itor)["description"]);
|
||||
}
|
||||
|
||||
timage* image = dynamic_cast<timage*>(
|
||||
window.find_widget("image", false));
|
||||
if(image) {
|
||||
image->set_label((**itor)["image"]);
|
||||
}
|
||||
|
||||
window.invalidate_layout();
|
||||
}
|
||||
|
||||
twindow* tcampaign_selection::build_window(CVideo& video)
|
||||
{
|
||||
return build(video, get_id(CAMPAIGN_SELECTION));
|
||||
|
@ -33,6 +61,9 @@ void tcampaign_selection::pre_show(CVideo& /*video*/, twindow& window)
|
|||
window.find_widget("campaign_list", false));
|
||||
VALIDATE(list, missing_widget("campaign_list"));
|
||||
|
||||
list->set_callback_value_change(dialog_callback
|
||||
<tcampaign_selection, &tcampaign_selection::campaign_selected>);
|
||||
|
||||
for(config::child_list::const_iterator itor = begin_;
|
||||
itor != end_; ++itor) {
|
||||
|
||||
|
@ -42,6 +73,7 @@ void tcampaign_selection::pre_show(CVideo& /*video*/, twindow& window)
|
|||
list->add_row(item);
|
||||
}
|
||||
|
||||
campaign_selected(window);
|
||||
}
|
||||
|
||||
void tcampaign_selection::post_show(twindow& window)
|
||||
|
|
|
@ -37,6 +37,9 @@ public:
|
|||
|
||||
int get_choice() const { return choice_; }
|
||||
|
||||
/** Called when another campaign is selected. */
|
||||
void campaign_selected(twindow& window);
|
||||
|
||||
private:
|
||||
|
||||
/** Inherited from tdialog. */
|
||||
|
|
Loading…
Add table
Reference in a new issue