From 47ee5fbe8e3b252196119ad8c5f5cf4f565ec583 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Tue, 11 Apr 2017 05:42:52 +1100 Subject: [PATCH] Help Browser: properly implement toggling by clicking the book icons --- data/gui/widget/toggle_button_help_topic.cfg | 109 +++++++++++++++++ data/gui/window/help_browser.cfg | 122 +++++++++++-------- src/gui/dialogs/help_browser.cpp | 28 ++--- 3 files changed, 193 insertions(+), 66 deletions(-) create mode 100644 data/gui/widget/toggle_button_help_topic.cfg diff --git a/data/gui/widget/toggle_button_help_topic.cfg b/data/gui/widget/toggle_button_help_topic.cfg new file mode 100644 index 000000000000..36dac6895659 --- /dev/null +++ b/data/gui/widget/toggle_button_help_topic.cfg @@ -0,0 +1,109 @@ +#textdomain wesnoth-lib +### +### Definition of a toggle button to toggle sections in the help browser. +### + +#define _GUI_ICON ICON + [image] + x = 0 + y = 1 # The images are 24px high + w = "(image_width)" + h = "(image_height)" + name = {ICON} + [/image] +#enddef + +[toggle_button_definition] + + id = "help_section_toggle" + description = "This toggle button is meant to be used in topic tree in the help browser" + + [resolution] + + {GUI_NORMAL__RESOLUTION} + + min_width = 26 + min_height = 26 + + default_width = 26 + default_height = 26 + + max_width = 26 + max_height = 26 + + text_extra_width = 0 + text_font_size = 0 + + [state] + [enabled] + + [draw] + + {_GUI_ICON ("help/closed_section.png")} + + [/draw] + + [/enabled] + + [disabled] + + [draw] + + {_GUI_ICON ("help/closed_section.png~GS()")} + + [/draw] + + [/disabled] + + [focused] + + [draw] + + {_GUI_ICON ("help/closed_section.png")} + + [/draw] + + [/focused] + [/state] + +### +### Selected +### + + [state] + [enabled] + + [draw] + + {_GUI_ICON ("help/open_section.png")} + + [/draw] + + [/enabled] + + [disabled] + + [draw] + + {_GUI_ICON ("help/open_section.png~GS()")} + + [/draw] + + [/disabled] + + [focused] + + [draw] + + {_GUI_ICON ("help/open_section.png")} + + [/draw] + + [/focused] + [/state] + + [/resolution] + +[/toggle_button_definition] + +#undef _GUI_ICON diff --git a/data/gui/window/help_browser.cfg b/data/gui/window/help_browser.cfg index ffd8af1077d6..77d8b9de8091 100644 --- a/data/gui/window/help_browser.cfg +++ b/data/gui/window/help_browser.cfg @@ -1,79 +1,96 @@ #textdomain wesnoth-lib -#define _GUI_TOPIC_TREE - [tree_view] - id = "topic_tree" - definition = "default" +#define _GUI_NODE _ID _TOGGLE_OR_IMAGE_WML + [node] + id = {_ID} - horizontal_scrollbar_mode = "never" - vertical_scrollbar_mode = "always" + [node_definition] - indentation_step_size = 20 + [row] + + [column] + horizontal_grow = true - [node] - id = "topic" + [toggle_panel] + id = "tree_view_node_label" - [node_definition] + [grid] - [row] + [row] - [column] - horizontal_grow = true + [column] + grow_factor = 0 + border = "all" + border_size = 5 - [toggle_panel] - id = "tree_view_node_label" + {_TOGGLE_OR_IMAGE_WML} - [grid] + [/column] - [row] + [column] + grow_factor = 1 + border = "all" + border_size = 5 + horizontal_grow = true - [column] - grow_factor = 0 - border = "all" - border_size = 5 + [label] + id = "topic_name" + linked_group = "names" + definition = "default_small" + [/label] + [/column] - [image] - id = "topic_icon" - linked_group = "images" - [/image] - [/column] + [column] + grow_factor = 0 + border = "all" + border_size = 5 - [column] - grow_factor = 1 - border = "all" - border_size = 5 - horizontal_grow = true + [spacer] + width = 5 + [/spacer] + [/column] - [label] - id = "topic_name" - linked_group = "names" - definition = "default_small" - [/label] - [/column] + [/row] - [column] - grow_factor = 0 - border = "all" - border_size = 5 + [/grid] - [spacer] - width = 5 - [/spacer] - [/column] + [/toggle_panel] - [/row] + [/column] - [/grid] + [/row] - [/toggle_panel] + [/node_definition] - [/column] + [/node] +#enddef - [/row] +#define _GUI_TOPIC_TREE + [tree_view] + id = "topic_tree" + definition = "default" - [/node_definition] + horizontal_scrollbar_mode = "never" + vertical_scrollbar_mode = "always" + + indentation_step_size = 20 - [/node] + {_GUI_NODE "section" ( + [toggle_button] + id = "tree_view_node_icon" + definition = "help_section_toggle" + linked_group = "images" + [/toggle_button] + )} + + {_GUI_NODE "topic" ( + [image] + id = "topic_image" + definition = "default" + label = "help/topic.png" + linked_group = "images" + [/image] + )} [/tree_view] #enddef @@ -250,3 +267,4 @@ [/window] #undef _GUI_TOPIC_TREE +#undef _GUI_NODE diff --git a/src/gui/dialogs/help_browser.cpp b/src/gui/dialogs/help_browser.cpp index 9ab9f219cb8f..fef53c59936f 100644 --- a/src/gui/dialogs/help_browser.cpp +++ b/src/gui/dialogs/help_browser.cpp @@ -56,10 +56,13 @@ help_browser::help_browser() void help_browser::pre_show(window& window) { tree_view& topic_tree = find_widget(&window, "topic_tree", false); + button& back_button = find_widget