Skip to content

Commit

Permalink
GUI2: implemented a Unit Preview Pane widget
Browse files Browse the repository at this point in the history
  • Loading branch information
Vultraz committed Mar 9, 2016
1 parent c7de7ce commit 29e19cd
Show file tree
Hide file tree
Showing 11 changed files with 702 additions and 0 deletions.
175 changes: 175 additions & 0 deletions data/gui/default/widget/unit_preview_pane.cfg
@@ -0,0 +1,175 @@
#textdomain wesnoth-lib

#define _GUI_UNIT_PREVIEW_PANE_FULL
[grid]
vertical_grow = "true"
horizontal_grow = "true"

[row]
grow_factor = 0
[column]
border = "bottom"
border_size = 5
vertical_grow = "true"
horizontal_grow = "true"

[label]
id = "type_name"
wrap = "true"
[/label]

[/column]

[/row]

[row]
grow_factor = 0

[column]
border = "bottom"
border_size = 5
horizontal_alignment = "center"
vertical_alignment = "center"

[image]
id = "type_image"
definition = "default"
[/image]

[/column]

[/row]

[row]
grow_factor = 0

[column]
border = "bottom"
border_size = 5
horizontal_alignment = "center"

[button]
id = "type_profile"
definition = "default"

label = _ "Profile"
[/button]

[/column]

[/row]

[row]
grow_factor = 0

[column]
horizontal_grow = "true"

[grid]

[row]
grow_factor = 1

[column]
border = "right,bottom"
border_size = 5
horizontal_alignment = "left"

[label]
id = "type_level"
[/label]

[/column]

[column]
border = "right,bottom"
border_size = 5
horizontal_alignment = "left"

[image]
id = "type_race"
[/image]

[/column]

[column]
border = "bottom"
border_size = 5
horizontal_alignment = "left"

[image]
id = "type_alignment"
[/image]

[/column]

[/row]

[/grid]

[/column]

[/row]

[row]
grow_factor = 1

[column]
vertical_grow = "true"
horizontal_alignment = "left"

[label]
id = "type_details"
definition = "default_small"
wrap = "true"
[/label]

[/column]

[/row]

[/grid]
#enddef

#define _GUI_RESOLUTION DEFINITION_GRID
[resolution]

min_width = 0
min_height = 0

default_width = 0
default_height = 0

max_width = 0
max_height = 0

[background]

[draw]

[/draw]

[/background]

[foreground]

[draw]

[/draw]

[/foreground]

{DEFINITION_GRID}

[/resolution]
#enddef

[unit_preview_pane_definition]
id = "default"
description = "A fully detailed preview area for unit stats."

{_GUI_RESOLUTION ({_GUI_UNIT_PREVIEW_PANE_FULL})}
[/unit_preview_pane_definition]

#undef _GUI_UNIT_PREVIEW_PANE_FULL
#undef _GUI_RESOLUTION
6 changes: 6 additions & 0 deletions projectfiles/CodeBlocks/wesnoth.cbp
Expand Up @@ -533,6 +533,8 @@
<Unit filename="../../src/gui/auxiliary/widget_definition/toggle_panel.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/tree_view.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/tree_view.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/unit_preview_pane.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/unit_preview_pane.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/vertical_scrollbar.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/vertical_scrollbar.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/window.cpp" />
Expand Down Expand Up @@ -595,6 +597,8 @@
<Unit filename="../../src/gui/auxiliary/window_builder/toggle_panel.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/tree_view.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/tree_view.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/unit_preview_pane.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/unit_preview_pane.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/vertical_scrollbar.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/vertical_scrollbar.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/viewport.cpp" />
Expand Down Expand Up @@ -819,6 +823,8 @@
<Unit filename="../../src/gui/widgets/tree_view.hpp" />
<Unit filename="../../src/gui/widgets/tree_view_node.cpp" />
<Unit filename="../../src/gui/widgets/tree_view_node.hpp" />
<Unit filename="../../src/gui/widgets/unit_preview_pane.cpp" />
<Unit filename="../../src/gui/widgets/unit_preview_pane.hpp" />
<Unit filename="../../src/gui/widgets/vertical_scrollbar.cpp" />
<Unit filename="../../src/gui/widgets/vertical_scrollbar.hpp" />
<Unit filename="../../src/gui/widgets/viewport.cpp" />
Expand Down
3 changes: 3 additions & 0 deletions src/CMakeLists.txt
Expand Up @@ -604,6 +604,7 @@ set(wesnoth-gui_widget_SRC
gui/widgets/toggle_panel.cpp
gui/widgets/tree_view.cpp
gui/widgets/tree_view_node.cpp
gui/widgets/unit_preview_pane.cpp
gui/widgets/vertical_scrollbar.cpp
gui/widgets/viewport.cpp
gui/widgets/widget.cpp
Expand Down Expand Up @@ -637,6 +638,7 @@ set(wesnoth-gui_widget_SRC
gui/auxiliary/window_builder/toggle_button.cpp
gui/auxiliary/window_builder/toggle_panel.cpp
gui/auxiliary/window_builder/tree_view.cpp
gui/auxiliary/window_builder/unit_preview_pane.cpp
gui/auxiliary/window_builder/vertical_scrollbar.cpp
gui/auxiliary/window_builder/viewport.cpp
)
Expand Down Expand Up @@ -685,6 +687,7 @@ set(wesnoth-gui_widget_definition_SRC
gui/auxiliary/widget_definition/toggle_button.cpp
gui/auxiliary/widget_definition/toggle_panel.cpp
gui/auxiliary/widget_definition/tree_view.cpp
gui/auxiliary/widget_definition/unit_preview_pane.cpp
gui/auxiliary/widget_definition/vertical_scrollbar.cpp
gui/auxiliary/widget_definition/window.cpp
)
Expand Down
3 changes: 3 additions & 0 deletions src/SConscript
Expand Up @@ -367,6 +367,7 @@ wesnoth_sources = Split("""
gui/auxiliary/widget_definition/toggle_button.cpp
gui/auxiliary/widget_definition/toggle_panel.cpp
gui/auxiliary/widget_definition/tree_view.cpp
gui/auxiliary/widget_definition/unit_preview_pane.cpp
gui/auxiliary/widget_definition/vertical_scrollbar.cpp
gui/auxiliary/widget_definition/window.cpp
gui/auxiliary/window_builder.cpp
Expand Down Expand Up @@ -398,6 +399,7 @@ wesnoth_sources = Split("""
gui/auxiliary/window_builder/toggle_button.cpp
gui/auxiliary/window_builder/toggle_panel.cpp
gui/auxiliary/window_builder/tree_view.cpp
gui/auxiliary/window_builder/unit_preview_pane.cpp
gui/auxiliary/window_builder/vertical_scrollbar.cpp
gui/auxiliary/window_builder/viewport.cpp
gui/dialogs/addon/description.cpp
Expand Down Expand Up @@ -504,6 +506,7 @@ wesnoth_sources = Split("""
gui/widgets/toggle_panel.cpp
gui/widgets/tree_view.cpp
gui/widgets/tree_view_node.cpp
gui/widgets/unit_preview_pane.cpp
gui/widgets/vertical_scrollbar.cpp
gui/widgets/viewport.cpp
gui/widgets/widget.cpp
Expand Down
45 changes: 45 additions & 0 deletions src/gui/auxiliary/widget_definition/unit_preview_pane.cpp
@@ -0,0 +1,45 @@
/*
Copyright (C) 2016 by the Battle for Wesnoth Project http://www.wesnoth.org/
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY.
See the COPYING file for more details.
*/

#define GETTEXT_DOMAIN "wesnoth-lib"

#include "gui/auxiliary/widget_definition/unit_preview_pane.hpp"

#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"

namespace gui2
{

tunit_preview_pane_definition::tunit_preview_pane_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing unit preview pane " << id << '\n';

load_resolutions<tresolution>(cfg);
}

tunit_preview_pane_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid()
{
state.push_back(tstate_definition(cfg.child("background")));
state.push_back(tstate_definition(cfg.child("foreground")));

const config& child = cfg.child("grid");
VALIDATE(child, _("No grid defined."));

grid = new tbuilder_grid(child);
}

}
38 changes: 38 additions & 0 deletions src/gui/auxiliary/widget_definition/unit_preview_pane.hpp
@@ -0,0 +1,38 @@
/*
Copyright (C) 2016 by the Battle for Wesnoth Project http://www.wesnoth.org/
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY.
See the COPYING file for more details.
*/

#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_UNIT_PREVIEW_PANE_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_UNIT_PREVIEW_PANE_HPP_INCLUDED

#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"

namespace gui2
{

struct tunit_preview_pane_definition : public tcontrol_definition
{

explicit tunit_preview_pane_definition(const config& cfg);

struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);

tbuilder_grid_ptr grid;
};
};

} // namespace gui2

#endif
2 changes: 2 additions & 0 deletions src/gui/auxiliary/window_builder.cpp
Expand Up @@ -39,6 +39,7 @@
#include "gui/auxiliary/window_builder/pane.hpp"
#include "gui/auxiliary/window_builder/password_box.hpp"
#include "gui/auxiliary/window_builder/viewport.hpp"
#include "gui/auxiliary/window_builder/unit_preview_pane.hpp"
#endif
#include "gui/auxiliary/window_builder/instance.hpp"
#include "gui/widgets/settings.hpp"
Expand Down Expand Up @@ -227,6 +228,7 @@ tbuilder_widget_ptr create_builder_widget(const config& cfg)
TRY(combobox);
TRY(drawing);
TRY(password_box);
TRY(unit_preview_pane);
#undef TRY
#endif

Expand Down

0 comments on commit 29e19cd

Please sign in to comment.