From bfb25386e10fd62e1d92ec40bd3709441ca16ba4 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Sat, 10 Jun 2017 15:12:59 +1100 Subject: [PATCH] Added static prototype for GUI2 in-game theme --- data/core/images/themes/classic/menubar.png | Bin 23216 -> 31078 bytes data/gui/window/game_ui.cfg | 534 ++++++++++++++++++++ projectfiles/CodeBlocks/wesnoth.cbp | 2 + source_lists/wesnoth | 1 + src/gui/dialogs/game_ui.cpp | 56 ++ src/gui/dialogs/game_ui.hpp | 57 +++ src/playsingle_controller.cpp | 5 + 7 files changed, 655 insertions(+) create mode 100644 data/gui/window/game_ui.cfg create mode 100644 src/gui/dialogs/game_ui.cpp create mode 100644 src/gui/dialogs/game_ui.hpp diff --git a/data/core/images/themes/classic/menubar.png b/data/core/images/themes/classic/menubar.png index 4f5f454b5cb3c98bce4f1671ac7f8d50942b710c..9e2543d08c8cf7899dd925421442bc8c0bb98383 100644 GIT binary patch literal 31078 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 diff --git a/data/gui/window/game_ui.cfg b/data/gui/window/game_ui.cfg new file mode 100644 index 000000000000..17ce7493ec4e --- /dev/null +++ b/data/gui/window/game_ui.cfg @@ -0,0 +1,534 @@ +#textdomain wesnoth-lib +### +### Definition of the main game interface. +### + +# GUI_FORCE_WIDGET_MINIMUM_SIZE + +#define _GUI_MENUBAR_STATUS_DISPLAY _ID _ICON _LABEL + [column] + grow_factor = 0 + horizontal_grow = true + + {GUI_FORCE_WIDGET_MINIMUM_SIZE 120 0 ( + [grid] + + [row] + + [column] + grow_factor = 0 + border = "all" + border_size = 5 + horizontal_alignment = "left" + + [image] + definition = "default" + label = {_ICON} + ".png" + [/image] + + [/column] + + [column] + grow_factor = 1 + border = "all" + border_size = 5 + horizontal_grow = true + + [label] + id = {_ID} + definition = "default_small" + label = {_LABEL} + [/label] + + [/column] + + [/row] + + [/grid] + )} + [/column] +#enddef + +#define _GUI_MENUBAR + [stacked_widget] + id = "menubar_stack" + + [layer] + + [row] + grow_factor = 1 + + [column] + grow_factor = 1 + horizontal_grow = true + vertical_alignment = "top" + + [image] + id = "menubar_bg" + definition = "tiled_to_size" + label = "themes/classic/menubar.png" + [/image] + + [/column] + + [/row] + + [/layer] + + [layer] + + [row] + grow_factor = 1 + + # + # Menu buttons + # + + [column] + grow_factor = 0 + border = "right" + border_size = 5 + horizontal_alignment = "left" + + [button] + id = "menu" + definition = "default" + label = "Menu" + [/button] + + [/column] + + [column] + grow_factor = 0 + border = "right" + border_size = 5 + horizontal_alignment = "left" + + [button] + id = "actions" + definition = "default" + label = "Actions" + [/button] + + [/column] + + # + # Status panels + # + + # TODO: remove hardcoded label examples + {_GUI_MENUBAR_STATUS_DISPLAY "turns" "flags/loyalist-flag-icon" "0/00" } + {_GUI_MENUBAR_STATUS_DISPLAY "gold" "themes/gold" "000" } + {_GUI_MENUBAR_STATUS_DISPLAY "villages" "themes/villages" "0/00" } + {_GUI_MENUBAR_STATUS_DISPLAY "units" "themes/units" "00" } + {_GUI_MENUBAR_STATUS_DISPLAY "upkeep" "themes/upkeep" "00" } + {_GUI_MENUBAR_STATUS_DISPLAY "income" "themes/income" "00" } + {_GUI_MENUBAR_STATUS_DISPLAY "time" "themes/sand-clock" "00:00"} + + [column] + grow_factor = 1 + + [spacer] + [/spacer] + + [/column] + + [/row] + + [/layer] + + [/stacked_widget] +#enddef + +#define _GUI_MINIMAP_PANEL + [stacked_widget] + id = "menubar_stack" + + [layer] + + [row] + grow_factor = 1 + + [column] + grow_factor = 1 + horizontal_grow = true + vertical_alignment = "top" + + [image] + id = "minmap_panel_bg" + definition = "default" + label = "themes/classic/minimap.png" + [/image] + + [/column] + + [/row] + + [/layer] + + [layer] + + [row] + grow_factor = 1 + + [column] + border = "all" + border_size = 5 + horizontal_grow = true + vertical_grow = true + + [minimap] + id = "minimap" + definition = "default" + [/minimap] + + [/column] + + [/row] + + [row] + grow_factor = 0 + + [column] + horizontal_grow = true + + [grid] + + [row] + + [column] + grow_factor = 1 + + [toggle_button] + id = "" + definition = "icon_medium" + icon = "icons/action/zoomdefault_25.png" + [/toggle_button] + + [/column] + + [column] + grow_factor = 0 + + [toggle_button] + id = "" + definition = "icon_medium" + icon = "icons/action/minimap-draw-terrain_25.png" + [/toggle_button] + + [/column] + + [column] + grow_factor = 0 + + [toggle_button] + id = "" + definition = "icon_medium" + icon = "icons/action/editor-tool-unit_25.png" + [/toggle_button] + + [/column] + + [column] + grow_factor = 0 + + [toggle_button] + id = "" + definition = "icon_medium" + icon = "icons/action/editor-tool-village_25.png" + [/toggle_button] + + [/column] + + [column] + grow_factor = 0 + + [toggle_button] + id = "" + definition = "icon_medium" + icon = "icons/action/minimap-unit-coding_25.png" + [/toggle_button] + + [/column] + + [column] + grow_factor = 1 + + [toggle_button] + id = "" + definition = "icon_medium" + icon = "icons/action/minimap-terrain-coding_25.png" + [/toggle_button] + + [/column] + + [/row] + + [/grid] + + [/column] + + [/row] + + [/layer] + + [/stacked_widget] +#enddef + +#define _GUI_SIDEBAR_DATA_PANEL _WIDTH _HEIGHT _WML + [column] + border = "all" + border_size = 10 + horizontal_grow = true + vertical_alignment = "top" + + {GUI_FORCE_WIDGET_SIZE {_WIDTH} {_HEIGHT} ( + [panel] + # TODO: nicer definition + definition = "box_display_no_blur_no_border" + + [grid] + {_WML} + [/grid] + + [/panel] + )} + + [/column] +#enddef + +#define _GUI_SIDEBAR + [stacked_widget] + id = "sidebar_stack" + + [layer] + + [row] + grow_factor = 1 + + [column] + grow_factor = 1 + horizontal_alignment = "right" + vertical_grow = true + + [image] + id = "sidebar_bg" + definition = "tiled_to_size" + label = "themes/classic/sidebar.png" + [/image] + + [/column] + + [/row] + + [/layer] + + [layer] + + [row] + grow_factor = 0 + + [column] + grow_factor = 1 + border = "top,bottom" + border_size = 5 + horizontal_grow = true + vertical_alignment = "top" + + {_GUI_MINIMAP_PANEL} + + [/column] + + [/row] + + [row] + grow_factor = 0 + + {_GUI_SIDEBAR_DATA_PANEL 0 50 ()} + + [/row] + + [row] + grow_factor = 0 + + {_GUI_SIDEBAR_DATA_PANEL 0 60 ( + + [row] + grow_factor = 1 + + [column] + horizontal_grow = true + vertical_grow = true + + [image] + definition = "scaled_to_size" + label = "misc/time-schedules/default/schedule-dawn.png" + [/image] + + [/column] + + [/row] + + )} + + [/row] + + [row] + grow_factor = 1 + + # FIXME.. + [column] + border = "all" + border_size = 10 + horizontal_alignment = "left" + vertical_alignment = "top" + + {GUI_FORCE_WIDGET_SIZE 74 74 ( + [panel] + definition = "box_display_no_blur_no_border" + + [grid] + [/grid] + + [/panel] + )} + + [/column] + + [/row] + + [/layer] + + [/stacked_widget] +#enddef + +[window_definition] + id = "game_ui_window" + description = "Main game UI window definition." + + [resolution] + + [background] + + [draw] + + [image] + x = 0 + y = 0 + w = "(width)" + h = "(height)" + + # TODO: use WFL variable if we want to import theme. + name = "terrain/off-map/background.png" + resize_mode = "tile" + [/image] + + [/draw] + + [/background] + + [foreground] + + [draw] + + [/draw] + + [/foreground] + + [/resolution] + +[/window_definition] + +[window] + id = "game_ui" + description = "Main game UI." + + [resolution] + definition = "game_ui_window" + + {GUI_WINDOW_FULLSCREEN} + + [tooltip] + id = "tooltip_large" + [/tooltip] + + [helptip] + id = "tooltip_large" + [/helptip] + + [grid] + + [row] + + [column] + grow_factor = 1 + horizontal_grow = true + vertical_grow = true + + [grid] + + [row] + grow_factor = 0 + + [column] + grow_factor = 1 + horizontal_grow = true + vertical_alignment = "top" + + {_GUI_MENUBAR} + + [/column] + + [/row] + + [row] + grow_factor = 1 + + [column] + horizontal_grow = true + vertical_grow = true + + [viewport] + definition = "default" + + [widget] + + # TODO: actual gamemap goes here. + [spacer] + definition = "default" + [/spacer] + + [/widget] + + [/viewport] + + [/column] + + [/row] + + [/grid] + + [/column] + + [column] + grow_factor = 0 + horizontal_alignment = "right" + vertical_grow = true + + {_GUI_SIDEBAR} + + [/column] + + [/row] + + [/grid] + + [/resolution] + +[/window] + +#undef _GUI_MENUBAR +#undef _GUI_MENUBAR_STATUS_DISPLAY +#undef _GUI_MINIMAP_PANEL +#undef _GUI_SIDEBAR +#undef _GUI_SIDEBAR_DATA_PANEL diff --git a/projectfiles/CodeBlocks/wesnoth.cbp b/projectfiles/CodeBlocks/wesnoth.cbp index 0e729e4121ca..0eb9f3752fc7 100644 --- a/projectfiles/CodeBlocks/wesnoth.cbp +++ b/projectfiles/CodeBlocks/wesnoth.cbp @@ -582,6 +582,8 @@ + + diff --git a/source_lists/wesnoth b/source_lists/wesnoth index 6ce15a3a2fa6..fb6237a0d071 100644 --- a/source_lists/wesnoth +++ b/source_lists/wesnoth @@ -195,6 +195,7 @@ gui/dialogs/game_delete.cpp gui/dialogs/game_load.cpp gui/dialogs/game_save.cpp gui/dialogs/game_stats.cpp +gui/dialogs/game_ui.cpp gui/dialogs/game_version.cpp gui/dialogs/gamestate_inspector.cpp gui/dialogs/help_browser.cpp diff --git a/src/gui/dialogs/game_ui.cpp b/src/gui/dialogs/game_ui.cpp new file mode 100644 index 000000000000..b8496660af2b --- /dev/null +++ b/src/gui/dialogs/game_ui.cpp @@ -0,0 +1,56 @@ +/* + Copyright (C) 2017 by Charles Dang + Part of 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/dialogs/game_ui.hpp" + +#include "gui/auxiliary/find_widget.hpp" +#include "gui/widgets/label.hpp" +#include "gui/widgets/minimap.hpp" +#include "gui/widgets/settings.hpp" +#include "gui/widgets/window.hpp" + +#include "display.hpp" +#include "formula/variant.hpp" +#include "game_config_manager.hpp" +#include "gettext.hpp" + +namespace gui2 +{ +namespace dialogs +{ +REGISTER_DIALOG(game_ui) + +game_ui::game_ui() + : disp_(display::get_singleton()) + , game_config_(game_config_manager::get()->game_config()) + , scenario_(game_config_.child("scenario")) +{ +} + +void game_ui::pre_show(window& window) +{ + minimap& mmap = find_widget(&window, "minimap", false); + + mmap.set_config(&game_config_); + mmap.set_map_data(scenario_["map_data"].str()); +} + +void game_ui::post_show(window& /*window*/) +{ +} + +} // namespace dialogs +} // namespace gui2 diff --git a/src/gui/dialogs/game_ui.hpp b/src/gui/dialogs/game_ui.hpp new file mode 100644 index 000000000000..2eaee76c3cad --- /dev/null +++ b/src/gui/dialogs/game_ui.hpp @@ -0,0 +1,57 @@ +/* + Copyright (C) 2017 by Charles Dang + Part of 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. +*/ + +#pragma once + +#include "gui/dialogs/modal_dialog.hpp" + +class config; +class CVideo; +class display; + +namespace gui2 +{ +namespace dialogs +{ +class game_ui : public modal_dialog +{ +public: + game_ui(); + + static void display(CVideo& video) + { + game_ui().show(video); + } + +private: + /** Inherited from modal_dialog, implemented by REGISTER_DIALOG. */ + virtual const std::string& window_id() const override; + + /** Inherited from modal_dialog. */ + virtual void pre_show(window& window) override; + + /** Inherited from modal_dialog. */ + virtual void post_show(window& window) override; + + ::display* disp_; // TODO: needed? + + /** Reference to the entire master game config object. */ + const config& game_config_; + + /** Reference to the current scenario's config. */ + const config& scenario_; +}; + +} // namespace dialogs +} // namespace gui2 diff --git a/src/playsingle_controller.cpp b/src/playsingle_controller.cpp index 2a15e0f45fdd..49517eaca679 100644 --- a/src/playsingle_controller.cpp +++ b/src/playsingle_controller.cpp @@ -29,6 +29,7 @@ #include "game_events/pump.hpp" #include "preferences/game.hpp" #include "gettext.hpp" +#include "gui/dialogs/game_ui.hpp" #include "gui/dialogs/story_viewer.hpp" #include "gui/dialogs/transient_message.hpp" #include "hotkey/hotkey_handler_sp.hpp" @@ -249,6 +250,10 @@ LEVEL_RESULT playsingle_controller::play_scenario(const config& level) gui2::dialogs::story_viewer::display(get_scenario_name(), cfg, gui_->video()); } } + + // FIXME + gui2::dialogs::game_ui::display(gui_->video()); + gui_->labels().read(level); // Read sound sources