Consolidate GUI2 widget files

Now every GUI2 widget requires only two source files, instead of six (or in rare cases four).
This commit is contained in:
Celtic Minstrel 2016-03-20 19:49:20 -04:00
parent d1e972b318
commit 040b4ca49a
178 changed files with 4890 additions and 10882 deletions

View file

@ -491,120 +491,12 @@
<Unit filename="../../src/gui/auxiliary/tips.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/button.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/button.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/combobox.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/combobox.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/drawing.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/drawing.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/horizontal_scrollbar.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/horizontal_scrollbar.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/image.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/image.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/label.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/label.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/listbox.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/listbox.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/matrix.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/matrix.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/minimap.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/minimap.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/multi_page.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/multi_page.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/panel.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/panel.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/progress_bar.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/progress_bar.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/repeating_button.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/repeating_button.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/scroll_label.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/scroll_label.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/scrollbar_panel.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/scrollbar_panel.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/slider.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/slider.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/spacer.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/spacer.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/stacked_widget.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/stacked_widget.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/text_box.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/text_box.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/toggle_button.cpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/toggle_button.hpp" />
<Unit filename="../../src/gui/auxiliary/widget_definition/toggle_panel.cpp" />
<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" />
<Unit filename="../../src/gui/auxiliary/widget_definition/window.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/button.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/button.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/combobox.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/combobox.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/control.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/control.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/drawing.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/drawing.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/helper.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/helper.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/horizontal_listbox.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/horizontal_listbox.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/horizontal_scrollbar.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/horizontal_scrollbar.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/image.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/image.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/instance.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/instance.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/label.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/label.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/listbox.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/listbox.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/matrix.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/matrix.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/minimap.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/minimap.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/multi_page.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/multi_page.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/pane.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/pane.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/panel.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/panel.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/password_box.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/password_box.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/progress_bar.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/progress_bar.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/repeating_button.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/repeating_button.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/scroll_label.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/scroll_label.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/scrollbar_panel.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/scrollbar_panel.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/slider.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/slider.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/spacer.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/spacer.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/stacked_widget.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/stacked_widget.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/text_box.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/text_box.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/toggle_button.cpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/toggle_button.hpp" />
<Unit filename="../../src/gui/auxiliary/window_builder/toggle_panel.cpp" />
<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" />
<Unit filename="../../src/gui/auxiliary/window_builder/viewport.hpp" />
<Unit filename="../../src/gui/dialogs/addon/description.cpp" />
<Unit filename="../../src/gui/dialogs/addon/description.hpp" />
<Unit filename="../../src/gui/dialogs/addon/filter_options.cpp" />

File diff suppressed because it is too large Load diff

View file

@ -9,14 +9,12 @@
/* Begin PBXBuildFile section */
1EF6CE8214D9846D00ECBE58 /* mp_host_game_prompt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1EF6CE8014D9846D00ECBE58 /* mp_host_game_prompt.cpp */; };
4944F4071354FB410027E614 /* game_errors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F4041354FB410027E614 /* game_errors.cpp */; };
4944F40B1354FB610027E614 /* drawing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F40A1354FB610027E614 /* drawing.cpp */; };
4944F40D1354FB760027E614 /* drawing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F40C1354FB760027E614 /* drawing.cpp */; };
4944F4121354FB970027E614 /* debug_clock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F40E1354FB970027E614 /* debug_clock.cpp */; };
4944F4131354FB970027E614 /* mp_login.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F40F1354FB970027E614 /* mp_login.cpp */; };
4944F4141354FB970027E614 /* popup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F4101354FB970027E614 /* popup.cpp */; };
4944F4151354FB970027E614 /* tip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F4111354FB970027E614 /* tip.cpp */; };
4944F4171354FBB20027E614 /* description.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F4161354FBB20027E614 /* description.cpp */; };
4944F4191354FBCD0027E614 /* drawing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F4181354FBCD0027E614 /* drawing.cpp */; };
4944F41B1354FBFF0027E614 /* teleport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4944F41A1354FBFF0027E614 /* teleport.cpp */; };
49478714172FF6F8002B7ABA /* tristate_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49478712172FF6F8002B7ABA /* tristate_button.cpp */; };
497455CE174066A800E89E30 /* edit_text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 497455CC174066A800E89E30 /* edit_text.cpp */; };
@ -40,10 +38,7 @@
62114CC91750B9AF00CA42C7 /* item_palette.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62114CC71750B9AF00CA42C7 /* item_palette.cpp */; };
6216A91D1551CCF700E13C2D /* viewport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6216A91B1551CCF700E13C2D /* viewport.cpp */; };
621DEB8415A7BA1F00FEE18A /* highlighter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 621DEB8215A7BA1F00FEE18A /* highlighter.cpp */; };
62579C771573E682003089D5 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62579C751573E682003089D5 /* matrix.cpp */; };
62579C7E1573E70C003089D5 /* instance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62579C781573E70C003089D5 /* instance.cpp */; };
62579C7F1573E70C003089D5 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62579C7A1573E70C003089D5 /* matrix.cpp */; };
62579C801573E70C003089D5 /* pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62579C7C1573E70C003089D5 /* pane.cpp */; };
62579C831573E797003089D5 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62579C811573E797003089D5 /* matrix.cpp */; };
627F1EDB175AF35C000042E0 /* unit_advancements_aspect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 627F1ED9175AF35C000042E0 /* unit_advancements_aspect.cpp */; };
6295C3B5150FC95C0077D8C5 /* action.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6295C3A7150FC95C0077D8C5 /* action.cpp */; };
@ -111,7 +106,6 @@
919B37F81BAF789E00E0094C /* synced_user_choice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B37F71BAF789D00E0094C /* synced_user_choice.cpp */; };
919B37FC1BAF7A9D00E0094C /* synced_choice_wait.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B37FA1BAF7A9D00E0094C /* synced_choice_wait.cpp */; };
91B6217C1B74E6D200B00E0F /* label_settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B6217A1B74E6D100B00E0F /* label_settings.cpp */; };
91B6219F1B7673D800B00E0F /* portrait.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B6219E1B7673D800B00E0F /* portrait.cpp */; };
91B621A21B76A3CC00B00E0F /* build_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B621A11B76A3CC00B00E0F /* build_info.cpp */; };
91B621BA1B76B2C900B00E0F /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B621B91B76B2C900B00E0F /* version.cpp */; };
91B622011B76C0A600B00E0F /* libboost_filesystemw.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = ECF9D43F19F4026D00E6C9D9 /* libboost_filesystemw.dylib */; };
@ -150,10 +144,6 @@
91B622221B76C0F400B00E0F /* libboost_regexw.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F4EF0D5313AD4E35003C701D /* libboost_regexw.dylib */; };
91B622231B76C0F400B00E0F /* libboost_systemw.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F4EF0D5413AD4E35003C701D /* libboost_systemw.dylib */; };
91B622241B76C0F400B00E0F /* libboost_threadw.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F4EF0D5B13AD4E6D003C701D /* libboost_threadw.dylib */; };
91DCA6811C90668E0030F8D0 /* unit_preview_pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA67F1C90668E0030F8D0 /* unit_preview_pane.cpp */; };
91DCA6821C90668E0030F8D0 /* unit_preview_pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA67F1C90668E0030F8D0 /* unit_preview_pane.cpp */; };
91DCA6851C9066A60030F8D0 /* unit_preview_pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA6831C9066A60030F8D0 /* unit_preview_pane.cpp */; };
91DCA6861C9066A60030F8D0 /* unit_preview_pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA6831C9066A60030F8D0 /* unit_preview_pane.cpp */; };
91DCA6891C9066CC0030F8D0 /* unit_preview_pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA6871C9066CC0030F8D0 /* unit_preview_pane.cpp */; };
91DCA68A1C9066CC0030F8D0 /* unit_preview_pane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA6871C9066CC0030F8D0 /* unit_preview_pane.cpp */; };
91DCA68D1C9066EC0030F8D0 /* unit_recruit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91DCA68B1C9066EC0030F8D0 /* unit_recruit.cpp */; };
@ -166,10 +156,6 @@
91F462851C71139C0050A9C9 /* preferences_dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F462821C71139B0050A9C9 /* preferences_dialog.cpp */; };
91F462881C7115C50050A9C9 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F462861C7115C50050A9C9 /* combobox.cpp */; };
91F462891C7115C50050A9C9 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F462861C7115C50050A9C9 /* combobox.cpp */; };
91F4628C1C7116C40050A9C9 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F4628A1C7116C40050A9C9 /* combobox.cpp */; };
91F4628D1C7116C40050A9C9 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F4628A1C7116C40050A9C9 /* combobox.cpp */; };
91F462901C7116E30050A9C9 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F4628E1C7116E30050A9C9 /* combobox.cpp */; };
91F462911C7116E30050A9C9 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F4628E1C7116E30050A9C9 /* combobox.cpp */; };
91F462941C7117400050A9C9 /* drop_down_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F462921C7117400050A9C9 /* drop_down_list.cpp */; };
91F462951C7117400050A9C9 /* drop_down_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F462921C7117400050A9C9 /* drop_down_list.cpp */; };
B504B94C1284C06B00261FE9 /* tips.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B504B94A1284C06B00261FE9 /* tips.cpp */; };
@ -180,25 +166,7 @@
B508D193100146E300B12852 /* engine_fai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D191100146E300B12852 /* engine_fai.cpp */; };
B508D194100146E300B12852 /* engine_fai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D191100146E300B12852 /* engine_fai.cpp */; };
B508D1FB100155F300B12852 /* helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1E7100155F300B12852 /* helper.cpp */; };
B508D1FC100155F300B12852 /* horizontal_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1E9100155F300B12852 /* horizontal_scrollbar.cpp */; };
B508D1FD100155F300B12852 /* listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1EB100155F300B12852 /* listbox.cpp */; };
B508D1FE100155F300B12852 /* multi_page.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1ED100155F300B12852 /* multi_page.cpp */; };
B508D1FF100155F300B12852 /* scroll_label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1EF100155F300B12852 /* scroll_label.cpp */; };
B508D200100155F300B12852 /* scrollbar_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F1100155F300B12852 /* scrollbar_panel.cpp */; };
B508D201100155F300B12852 /* slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F3100155F300B12852 /* slider.cpp */; };
B508D202100155F300B12852 /* stacked_widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F5100155F300B12852 /* stacked_widget.cpp */; };
B508D203100155F300B12852 /* toggle_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F7100155F300B12852 /* toggle_button.cpp */; };
B508D204100155F300B12852 /* vertical_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F9100155F300B12852 /* vertical_scrollbar.cpp */; };
B508D205100155F300B12852 /* helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1E7100155F300B12852 /* helper.cpp */; };
B508D206100155F300B12852 /* horizontal_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1E9100155F300B12852 /* horizontal_scrollbar.cpp */; };
B508D207100155F300B12852 /* listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1EB100155F300B12852 /* listbox.cpp */; };
B508D208100155F300B12852 /* multi_page.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1ED100155F300B12852 /* multi_page.cpp */; };
B508D209100155F300B12852 /* scroll_label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1EF100155F300B12852 /* scroll_label.cpp */; };
B508D20A100155F300B12852 /* scrollbar_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F1100155F300B12852 /* scrollbar_panel.cpp */; };
B508D20B100155F300B12852 /* slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F3100155F300B12852 /* slider.cpp */; };
B508D20C100155F300B12852 /* stacked_widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F5100155F300B12852 /* stacked_widget.cpp */; };
B508D20D100155F300B12852 /* toggle_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F7100155F300B12852 /* toggle_button.cpp */; };
B508D20E100155F300B12852 /* vertical_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D1F9100155F300B12852 /* vertical_scrollbar.cpp */; };
B508D2161001560100B12852 /* stacked_widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D2141001560100B12852 /* stacked_widget.cpp */; };
B508D2171001560100B12852 /* stacked_widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B508D2141001560100B12852 /* stacked_widget.cpp */; };
B513B1E70ED345EB0006E551 /* pango.modules in Resources */ = {isa = PBXBuildFile; fileRef = B513B1C80ED345EA0006E551 /* pango.modules */; };
@ -212,10 +180,6 @@
B52EE88C1213589100CFBDAB /* unit_attack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE8891213589100CFBDAB /* unit_attack.cpp */; };
B52EE88D1213589100CFBDAB /* data_manage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE8871213589100CFBDAB /* data_manage.cpp */; };
B52EE88E1213589100CFBDAB /* unit_attack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE8891213589100CFBDAB /* unit_attack.cpp */; };
B52EE893121358E100CFBDAB /* progress_bar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE891121358E100CFBDAB /* progress_bar.cpp */; };
B52EE894121358E100CFBDAB /* progress_bar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE891121358E100CFBDAB /* progress_bar.cpp */; };
B52EE897121358EF00CFBDAB /* progress_bar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE895121358EF00CFBDAB /* progress_bar.cpp */; };
B52EE898121358EF00CFBDAB /* progress_bar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE895121358EF00CFBDAB /* progress_bar.cpp */; };
B52EE89D1213590500CFBDAB /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE8991213590500CFBDAB /* list.cpp */; };
B52EE89E1213590500CFBDAB /* progress_bar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE89B1213590500CFBDAB /* progress_bar.cpp */; };
B52EE89F1213590500CFBDAB /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52EE8991213590500CFBDAB /* list.cpp */; };
@ -310,8 +274,6 @@
B54AC6E60FEA9EB5006F6FBD /* ca.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6C10FEA9EB5006F6FBD /* ca.cpp */; };
B54AC6E70FEA9EB5006F6FBD /* stage_fallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6C30FEA9EB5006F6FBD /* stage_fallback.cpp */; };
B54AC6E80FEA9EB5006F6FBD /* stage_rca.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6C50FEA9EB5006F6FBD /* stage_rca.cpp */; };
B54AC6ED0FEA9F7A006F6FBD /* control.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6EB0FEA9F7A006F6FBD /* control.cpp */; };
B54AC6EE0FEA9F7A006F6FBD /* control.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6EB0FEA9F7A006F6FBD /* control.cpp */; };
B54AC6F30FEA9F92006F6FBD /* lobby_main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6EF0FEA9F92006F6FBD /* lobby_main.cpp */; };
B54AC6F40FEA9F92006F6FBD /* transient_message.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6F10FEA9F92006F6FBD /* transient_message.cpp */; };
B54AC6F50FEA9F92006F6FBD /* lobby_main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6EF0FEA9F92006F6FBD /* lobby_main.cpp */; };
@ -320,24 +282,6 @@
B54AC6FF0FEA9FA5006F6FBD /* scrollbar_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6FB0FEA9FA5006F6FBD /* scrollbar_panel.cpp */; };
B54AC7000FEA9FA5006F6FBD /* multi_page.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6F80FEA9FA5006F6FBD /* multi_page.cpp */; };
B54AC7010FEA9FA5006F6FBD /* scrollbar_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC6FB0FEA9FA5006F6FBD /* scrollbar_panel.cpp */; };
B54AC7500FEC3CF9006F6FBD /* button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC7480FEC3CF9006F6FBD /* button.cpp */; };
B54AC7510FEC3CF9006F6FBD /* image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC74A0FEC3CF9006F6FBD /* image.cpp */; };
B54AC7520FEC3CF9006F6FBD /* label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC74C0FEC3CF9006F6FBD /* label.cpp */; };
B54AC7530FEC3CF9006F6FBD /* minimap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC74E0FEC3CF9006F6FBD /* minimap.cpp */; };
B54AC7540FEC3CF9006F6FBD /* button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC7480FEC3CF9006F6FBD /* button.cpp */; };
B54AC7550FEC3CF9006F6FBD /* image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC74A0FEC3CF9006F6FBD /* image.cpp */; };
B54AC7560FEC3CF9006F6FBD /* label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC74C0FEC3CF9006F6FBD /* label.cpp */; };
B54AC7570FEC3CF9006F6FBD /* minimap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC74E0FEC3CF9006F6FBD /* minimap.cpp */; };
B54AC83D0FF7F122006F6FBD /* panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8320FF7F122006F6FBD /* panel.cpp */; };
B54AC83E0FF7F122006F6FBD /* password_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8340FF7F122006F6FBD /* password_box.cpp */; };
B54AC83F0FF7F122006F6FBD /* spacer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8360FF7F122006F6FBD /* spacer.cpp */; };
B54AC8400FF7F122006F6FBD /* text_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8380FF7F122006F6FBD /* text_box.cpp */; };
B54AC8410FF7F122006F6FBD /* toggle_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC83A0FF7F122006F6FBD /* toggle_panel.cpp */; };
B54AC8430FF7F122006F6FBD /* panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8320FF7F122006F6FBD /* panel.cpp */; };
B54AC8440FF7F122006F6FBD /* password_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8340FF7F122006F6FBD /* password_box.cpp */; };
B54AC8450FF7F122006F6FBD /* spacer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8360FF7F122006F6FBD /* spacer.cpp */; };
B54AC8460FF7F122006F6FBD /* text_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC8380FF7F122006F6FBD /* text_box.cpp */; };
B54AC8470FF7F122006F6FBD /* toggle_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B54AC83A0FF7F122006F6FBD /* toggle_panel.cpp */; };
B552D92410869477002D8F86 /* distributor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B552D92210869477002D8F86 /* distributor.cpp */; };
B552D92510869477002D8F86 /* distributor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B552D92210869477002D8F86 /* distributor.cpp */; };
B552D92D108694BB002D8F86 /* ca_testing_move_to_targets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B552D92A108694BB002D8F86 /* ca_testing_move_to_targets.cpp */; };
@ -476,23 +420,15 @@
B55BE05411234B3300154E6C /* tree_view.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE05111234B3300154E6C /* tree_view.cpp */; };
B55BE05511234B3300154E6C /* tree_view_node.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE04F11234B3300154E6C /* tree_view_node.cpp */; };
B55BE05611234B3300154E6C /* tree_view.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE05111234B3300154E6C /* tree_view.cpp */; };
B55BE05911234B5600154E6C /* tree_view.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE05711234B5600154E6C /* tree_view.cpp */; };
B55BE05A11234B5600154E6C /* tree_view.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE05711234B5600154E6C /* tree_view.cpp */; };
B55BE05D11234B6B00154E6C /* tree_view.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE05B11234B6B00154E6C /* tree_view.cpp */; };
B55BE05E11234B6B00154E6C /* tree_view.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55BE05B11234B6B00154E6C /* tree_view.cpp */; };
B561F368104B1042001369F5 /* component.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F366104B1042001369F5 /* component.cpp */; };
B561F369104B1042001369F5 /* component.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F366104B1042001369F5 /* component.cpp */; };
B561F370104B11B6001369F5 /* formula_debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F36E104B11B6001369F5 /* formula_debugger.cpp */; };
B561F371104B11B6001369F5 /* formula_debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F36E104B11B6001369F5 /* formula_debugger.cpp */; };
B561F374104B11D4001369F5 /* horizontal_listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F372104B11D4001369F5 /* horizontal_listbox.cpp */; };
B561F375104B11D4001369F5 /* horizontal_listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F372104B11D4001369F5 /* horizontal_listbox.cpp */; };
B561F391104B11F7001369F5 /* editor_preferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F38F104B11F7001369F5 /* editor_preferences.cpp */; };
B561F392104B11F7001369F5 /* editor_preferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B561F38F104B11F7001369F5 /* editor_preferences.cpp */; };
B5795A680F05858100EB190E /* horizontal_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5795A610F05858100EB190E /* horizontal_scrollbar.cpp */; };
B5795A690F05858100EB190E /* scrollbar_container.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5795A640F05858100EB190E /* scrollbar_container.cpp */; };
B5795A6A0F05858100EB190E /* generator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5795A670F05858100EB190E /* generator.cpp */; };
B59271F710E956D600A13911 /* repeating_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B59271F510E956D600A13911 /* repeating_button.cpp */; };
B59271F810E956D600A13911 /* repeating_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B59271F510E956D600A13911 /* repeating_button.cpp */; };
B59271FB10E9577800A13911 /* repeating_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B59271F910E9577800A13911 /* repeating_button.cpp */; };
B59271FC10E9577800A13911 /* repeating_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B59271F910E9577800A13911 /* repeating_button.cpp */; };
B5951A8F1013BB0800C10B66 /* resources.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5951A841013BB0800C10B66 /* resources.cpp */; };
@ -811,44 +747,6 @@
B5DBABF412AFF7F200B5B8DC /* mp_create_game_set_password.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5DBABF112AFF7F200B5B8DC /* mp_create_game_set_password.cpp */; };
B5F4D7180F5B3B25005E204A /* campaign_selection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5F4D7170F5B3B25005E204A /* campaign_selection.cpp */; };
B5F9C5950F93BB0B00C02205 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B5F9C5930F93BB0B00C02205 /* InfoPlist.strings */; };
B5FCE9111104C2A50081F1DF /* button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8E71104C2A50081F1DF /* button.cpp */; };
B5FCE9121104C2A50081F1DF /* horizontal_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8E91104C2A50081F1DF /* horizontal_scrollbar.cpp */; };
B5FCE9131104C2A50081F1DF /* image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8EB1104C2A50081F1DF /* image.cpp */; };
B5FCE9141104C2A50081F1DF /* label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8ED1104C2A50081F1DF /* label.cpp */; };
B5FCE9151104C2A50081F1DF /* listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8EF1104C2A50081F1DF /* listbox.cpp */; };
B5FCE9171104C2A50081F1DF /* minimap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F31104C2A50081F1DF /* minimap.cpp */; };
B5FCE9181104C2A50081F1DF /* multi_page.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F51104C2A50081F1DF /* multi_page.cpp */; };
B5FCE9191104C2A50081F1DF /* panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F71104C2A50081F1DF /* panel.cpp */; };
B5FCE91A1104C2A50081F1DF /* repeating_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F91104C2A50081F1DF /* repeating_button.cpp */; };
B5FCE91B1104C2A50081F1DF /* scroll_label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8FB1104C2A50081F1DF /* scroll_label.cpp */; };
B5FCE91C1104C2A50081F1DF /* scrollbar_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8FD1104C2A50081F1DF /* scrollbar_panel.cpp */; };
B5FCE91D1104C2A50081F1DF /* slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8FF1104C2A50081F1DF /* slider.cpp */; };
B5FCE91E1104C2A50081F1DF /* spacer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9011104C2A50081F1DF /* spacer.cpp */; };
B5FCE91F1104C2A50081F1DF /* stacked_widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9031104C2A50081F1DF /* stacked_widget.cpp */; };
B5FCE9201104C2A50081F1DF /* text_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9051104C2A50081F1DF /* text_box.cpp */; };
B5FCE9211104C2A50081F1DF /* toggle_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9071104C2A50081F1DF /* toggle_button.cpp */; };
B5FCE9221104C2A50081F1DF /* toggle_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9091104C2A50081F1DF /* toggle_panel.cpp */; };
B5FCE9241104C2A50081F1DF /* vertical_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE90D1104C2A50081F1DF /* vertical_scrollbar.cpp */; };
B5FCE9251104C2A50081F1DF /* window.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE90F1104C2A50081F1DF /* window.cpp */; };
B5FCE9261104C2A50081F1DF /* button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8E71104C2A50081F1DF /* button.cpp */; };
B5FCE9271104C2A50081F1DF /* horizontal_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8E91104C2A50081F1DF /* horizontal_scrollbar.cpp */; };
B5FCE9281104C2A50081F1DF /* image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8EB1104C2A50081F1DF /* image.cpp */; };
B5FCE9291104C2A50081F1DF /* label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8ED1104C2A50081F1DF /* label.cpp */; };
B5FCE92A1104C2A50081F1DF /* listbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8EF1104C2A50081F1DF /* listbox.cpp */; };
B5FCE92C1104C2A50081F1DF /* minimap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F31104C2A50081F1DF /* minimap.cpp */; };
B5FCE92D1104C2A50081F1DF /* multi_page.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F51104C2A50081F1DF /* multi_page.cpp */; };
B5FCE92E1104C2A50081F1DF /* panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F71104C2A50081F1DF /* panel.cpp */; };
B5FCE92F1104C2A50081F1DF /* repeating_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8F91104C2A50081F1DF /* repeating_button.cpp */; };
B5FCE9301104C2A50081F1DF /* scroll_label.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8FB1104C2A50081F1DF /* scroll_label.cpp */; };
B5FCE9311104C2A50081F1DF /* scrollbar_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8FD1104C2A50081F1DF /* scrollbar_panel.cpp */; };
B5FCE9321104C2A50081F1DF /* slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE8FF1104C2A50081F1DF /* slider.cpp */; };
B5FCE9331104C2A50081F1DF /* spacer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9011104C2A50081F1DF /* spacer.cpp */; };
B5FCE9341104C2A50081F1DF /* stacked_widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9031104C2A50081F1DF /* stacked_widget.cpp */; };
B5FCE9351104C2A50081F1DF /* text_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9051104C2A50081F1DF /* text_box.cpp */; };
B5FCE9361104C2A50081F1DF /* toggle_button.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9071104C2A50081F1DF /* toggle_button.cpp */; };
B5FCE9371104C2A50081F1DF /* toggle_panel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE9091104C2A50081F1DF /* toggle_panel.cpp */; };
B5FCE9391104C2A50081F1DF /* vertical_scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE90D1104C2A50081F1DF /* vertical_scrollbar.cpp */; };
B5FCE93A1104C2A50081F1DF /* window.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5FCE90F1104C2A50081F1DF /* window.cpp */; };
EC08023C194D0A80009E0050 /* formula_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC08023A194D0A80009E0050 /* formula_manager.cpp */; };
EC19E6F018B7F24B003B4B81 /* screenshot_notification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC19E6EE18B7F24B003B4B81 /* screenshot_notification.cpp */; };
EC1CB20819524AD600B0FA78 /* recall_list_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC1CB20619524AD600B0FA78 /* recall_list_manager.cpp */; };
@ -1082,7 +980,6 @@
F4D5AFEC1571208B0062EAFC /* placer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4D5AFEA1571208B0062EAFC /* placer.cpp */; };
F4D5AFF4157120B30062EAFC /* horizontal_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4D5AFF0157120B30062EAFC /* horizontal_list.cpp */; };
F4D5AFF5157120B30062EAFC /* vertical_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4D5AFF2157120B30062EAFC /* vertical_list.cpp */; };
F4D5AFFA157120E60062EAFC /* viewport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4D5AFF8157120E60062EAFC /* viewport.cpp */; };
F4D5DF39149CE9B500294046 /* chat_log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4D5DF37149CE9B500294046 /* chat_log.cpp */; };
F4E4E0B11367241E001C7528 /* suppose_dead.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4E4E0AF1367241E001C7528 /* suppose_dead.cpp */; };
F4E4E0B41367244F001C7528 /* image_modifications.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4E4E0B21367244F001C7528 /* image_modifications.cpp */; };
@ -1203,14 +1100,12 @@
1EF6CE8114D9846D00ECBE58 /* mp_host_game_prompt.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = mp_host_game_prompt.hpp; sourceTree = "<group>"; };
32CA4F630368D1EE00C91783 /* Wesnoth_Prefix.pch */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp; fileEncoding = 4; includeInIndex = 0; name = Wesnoth_Prefix.pch; path = "Mac Sources/Wesnoth_Prefix.pch"; sourceTree = "<group>"; };
4944F4041354FB410027E614 /* game_errors.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = game_errors.cpp; sourceTree = "<group>"; };
4944F40A1354FB610027E614 /* drawing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawing.cpp; sourceTree = "<group>"; };
4944F40C1354FB760027E614 /* drawing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawing.cpp; sourceTree = "<group>"; };
4944F40E1354FB970027E614 /* debug_clock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug_clock.cpp; sourceTree = "<group>"; };
4944F40F1354FB970027E614 /* mp_login.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp_login.cpp; sourceTree = "<group>"; };
4944F4101354FB970027E614 /* popup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = popup.cpp; sourceTree = "<group>"; };
4944F4111354FB970027E614 /* tip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tip.cpp; sourceTree = "<group>"; };
4944F4161354FBB20027E614 /* description.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = description.cpp; sourceTree = "<group>"; };
4944F4181354FBCD0027E614 /* drawing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawing.cpp; sourceTree = "<group>"; };
4944F41A1354FBFF0027E614 /* teleport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = teleport.cpp; sourceTree = "<group>"; };
49478712172FF6F8002B7ABA /* tristate_button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tristate_button.cpp; sourceTree = "<group>"; };
49478713172FF6F8002B7ABA /* tristate_button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = tristate_button.hpp; sourceTree = "<group>"; };
@ -1262,14 +1157,8 @@
62579C721573E535003089D5 /* walker_grid.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = walker_grid.hpp; path = iterator/walker_grid.hpp; sourceTree = "<group>"; };
62579C731573E535003089D5 /* walker_widget.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = walker_widget.hpp; path = iterator/walker_widget.hpp; sourceTree = "<group>"; };
62579C741573E535003089D5 /* walker.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = walker.hpp; path = iterator/walker.hpp; sourceTree = "<group>"; };
62579C751573E682003089D5 /* matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = matrix.cpp; sourceTree = "<group>"; };
62579C761573E682003089D5 /* matrix.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = matrix.hpp; sourceTree = "<group>"; };
62579C781573E70C003089D5 /* instance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instance.cpp; sourceTree = "<group>"; };
62579C791573E70C003089D5 /* instance.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = instance.hpp; sourceTree = "<group>"; };
62579C7A1573E70C003089D5 /* matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = matrix.cpp; sourceTree = "<group>"; };
62579C7B1573E70C003089D5 /* matrix.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = matrix.hpp; sourceTree = "<group>"; };
62579C7C1573E70C003089D5 /* pane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pane.cpp; sourceTree = "<group>"; };
62579C7D1573E70C003089D5 /* pane.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = pane.hpp; sourceTree = "<group>"; };
62579C811573E797003089D5 /* matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = matrix.cpp; sourceTree = "<group>"; };
62579C821573E797003089D5 /* matrix.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = matrix.hpp; sourceTree = "<group>"; };
627F1ED9175AF35C000042E0 /* unit_advancements_aspect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unit_advancements_aspect.cpp; sourceTree = "<group>"; };
@ -1391,10 +1280,10 @@
91B6218B1B7670D300B00E0F /* help_menu.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = help_menu.hpp; sourceTree = "<group>"; };
91B6218C1B7670D900B00E0F /* help_text_area.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = help_text_area.hpp; sourceTree = "<group>"; };
91B6218D1B7670DE00B00E0F /* help_topic_generators.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = help_topic_generators.hpp; sourceTree = "<group>"; };
91B6218F1B76717400B00E0F /* hotkey_handler.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = hotkey_handler.hpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler.hpp; sourceTree = "<absolute>"; };
91B621901B76717B00B00E0F /* hotkey_handler_sp.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = hotkey_handler_sp.hpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler_sp.hpp; sourceTree = "<absolute>"; };
91B621911B76718000B00E0F /* hotkey_handler_replay.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = hotkey_handler_replay.hpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler_replay.hpp; sourceTree = "<absolute>"; };
91B621921B76718700B00E0F /* hotkey_handler_mp.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = hotkey_handler_mp.hpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler_mp.hpp; sourceTree = "<absolute>"; };
91B6218F1B76717400B00E0F /* hotkey_handler.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = hotkey_handler.hpp; sourceTree = "<group>"; };
91B621901B76717B00B00E0F /* hotkey_handler_sp.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = hotkey_handler_sp.hpp; sourceTree = "<group>"; };
91B621911B76718000B00E0F /* hotkey_handler_replay.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = hotkey_handler_replay.hpp; sourceTree = "<group>"; };
91B621921B76718700B00E0F /* hotkey_handler_mp.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = hotkey_handler_mp.hpp; sourceTree = "<group>"; };
91B621931B76720B00B00E0F /* make_enum.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = make_enum.hpp; sourceTree = "<group>"; };
91B621941B76722E00B00E0F /* mp_ui_alerts.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = mp_ui_alerts.hpp; sourceTree = "<group>"; };
91B621951B76723300B00E0F /* mt_rng.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = mt_rng.hpp; sourceTree = "<group>"; };
@ -1406,7 +1295,6 @@
91B6219B1B76733900B00E0F /* attack_type.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = attack_type.hpp; sourceTree = "<group>"; };
91B6219C1B76735200B00E0F /* ptr.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ptr.hpp; sourceTree = "<group>"; };
91B6219D1B76737200B00E0F /* variable_info_detail.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = variable_info_detail.hpp; sourceTree = "<group>"; };
91B6219E1B7673D800B00E0F /* portrait.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = portrait.cpp; sourceTree = "<group>"; };
91B621A11B76A3CC00B00E0F /* build_info.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = build_info.cpp; sourceTree = "<group>"; };
91B621A31B76A5FA00B00E0F /* build_info.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = build_info.hpp; sourceTree = "<group>"; };
91B621A51B76A77400B00E0F /* countdown_clock.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = countdown_clock.hpp; sourceTree = "<group>"; };
@ -1452,7 +1340,6 @@
91B621D21B76B4DE00B00E0F /* lua_map_generator.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = lua_map_generator.hpp; sourceTree = "<group>"; };
91B621D31B76B4DE00B00E0F /* map_generator.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = map_generator.hpp; sourceTree = "<group>"; };
91B621D41B76B51600B00E0F /* find_widget.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = find_widget.hpp; sourceTree = "<group>"; };
91B621D51B76B57F00B00E0F /* drawing.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = drawing.hpp; sourceTree = "<group>"; };
91B621D61B76B5BC00B00E0F /* advanced_graphics_options.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = advanced_graphics_options.hpp; sourceTree = "<group>"; };
91B621D71B76B5C500B00E0F /* campaign_settings.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = campaign_settings.hpp; sourceTree = "<group>"; };
91B621D81B76B6DB00B00E0F /* debug_clock.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = debug_clock.hpp; sourceTree = "<group>"; };
@ -1487,10 +1374,6 @@
91B621F51B76BCB000B00E0F /* unicode_cast.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = unicode_cast.hpp; sourceTree = "<group>"; };
91B621F61B76BCB000B00E0F /* unicode_types.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = unicode_types.hpp; sourceTree = "<group>"; };
91B621F71B76BD4600B00E0F /* multimenu.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = multimenu.hpp; sourceTree = "<group>"; };
91DCA67F1C90668E0030F8D0 /* unit_preview_pane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unit_preview_pane.cpp; sourceTree = "<group>"; };
91DCA6801C90668E0030F8D0 /* unit_preview_pane.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = unit_preview_pane.hpp; sourceTree = "<group>"; };
91DCA6831C9066A60030F8D0 /* unit_preview_pane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unit_preview_pane.cpp; sourceTree = "<group>"; };
91DCA6841C9066A60030F8D0 /* unit_preview_pane.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = unit_preview_pane.hpp; sourceTree = "<group>"; };
91DCA6871C9066CC0030F8D0 /* unit_preview_pane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unit_preview_pane.cpp; sourceTree = "<group>"; };
91DCA6881C9066CC0030F8D0 /* unit_preview_pane.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = unit_preview_pane.hpp; sourceTree = "<group>"; };
91DCA68B1C9066EC0030F8D0 /* unit_recruit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unit_recruit.cpp; sourceTree = "<group>"; };
@ -1513,10 +1396,6 @@
91F462831C71139B0050A9C9 /* preferences_dialog.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = preferences_dialog.hpp; sourceTree = "<group>"; };
91F462861C7115C50050A9C9 /* combobox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combobox.cpp; sourceTree = "<group>"; };
91F462871C7115C50050A9C9 /* combobox.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = combobox.hpp; sourceTree = "<group>"; };
91F4628A1C7116C40050A9C9 /* combobox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combobox.cpp; sourceTree = "<group>"; };
91F4628B1C7116C40050A9C9 /* combobox.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = combobox.hpp; sourceTree = "<group>"; };
91F4628E1C7116E30050A9C9 /* combobox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combobox.cpp; sourceTree = "<group>"; };
91F4628F1C7116E30050A9C9 /* combobox.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = combobox.hpp; sourceTree = "<group>"; };
91F462921C7117400050A9C9 /* drop_down_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drop_down_list.cpp; sourceTree = "<group>"; };
91F462931C7117400050A9C9 /* drop_down_list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = drop_down_list.hpp; sourceTree = "<group>"; };
91FAC70B1C80168600DAB2C3 /* group.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = group.hpp; sourceTree = "<group>"; };
@ -1528,24 +1407,6 @@
B508D192100146E300B12852 /* engine_fai.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = engine_fai.hpp; sourceTree = "<group>"; };
B508D1E7100155F300B12852 /* helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = helper.cpp; sourceTree = "<group>"; };
B508D1E8100155F300B12852 /* helper.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = helper.hpp; sourceTree = "<group>"; };
B508D1E9100155F300B12852 /* horizontal_scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = horizontal_scrollbar.cpp; sourceTree = "<group>"; };
B508D1EA100155F300B12852 /* horizontal_scrollbar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = horizontal_scrollbar.hpp; sourceTree = "<group>"; };
B508D1EB100155F300B12852 /* listbox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = listbox.cpp; sourceTree = "<group>"; };
B508D1EC100155F300B12852 /* listbox.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = listbox.hpp; sourceTree = "<group>"; };
B508D1ED100155F300B12852 /* multi_page.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multi_page.cpp; sourceTree = "<group>"; };
B508D1EE100155F300B12852 /* multi_page.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = multi_page.hpp; sourceTree = "<group>"; };
B508D1EF100155F300B12852 /* scroll_label.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scroll_label.cpp; sourceTree = "<group>"; };
B508D1F0100155F300B12852 /* scroll_label.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scroll_label.hpp; sourceTree = "<group>"; };
B508D1F1100155F300B12852 /* scrollbar_panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scrollbar_panel.cpp; sourceTree = "<group>"; };
B508D1F2100155F300B12852 /* scrollbar_panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scrollbar_panel.hpp; sourceTree = "<group>"; };
B508D1F3100155F300B12852 /* slider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slider.cpp; sourceTree = "<group>"; };
B508D1F4100155F300B12852 /* slider.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = slider.hpp; sourceTree = "<group>"; };
B508D1F5100155F300B12852 /* stacked_widget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stacked_widget.cpp; sourceTree = "<group>"; };
B508D1F6100155F300B12852 /* stacked_widget.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = stacked_widget.hpp; sourceTree = "<group>"; };
B508D1F7100155F300B12852 /* toggle_button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = toggle_button.cpp; sourceTree = "<group>"; };
B508D1F8100155F300B12852 /* toggle_button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = toggle_button.hpp; sourceTree = "<group>"; };
B508D1F9100155F300B12852 /* vertical_scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vertical_scrollbar.cpp; sourceTree = "<group>"; };
B508D1FA100155F300B12852 /* vertical_scrollbar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vertical_scrollbar.hpp; sourceTree = "<group>"; };
B508D2141001560100B12852 /* stacked_widget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stacked_widget.cpp; sourceTree = "<group>"; };
B508D2151001560100B12852 /* stacked_widget.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = stacked_widget.hpp; sourceTree = "<group>"; };
B513B1C80ED345EA0006E551 /* pango.modules */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = pango.modules; path = Resources/pango.modules; sourceTree = "<group>"; };
@ -1562,10 +1423,6 @@
B52EE88A1213589100CFBDAB /* unit_attack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = unit_attack.hpp; sourceTree = "<group>"; };
B52EE88F121358D700CFBDAB /* notifiee.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = notifiee.hpp; sourceTree = "<group>"; };
B52EE890121358D700CFBDAB /* notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = notifier.hpp; sourceTree = "<group>"; };
B52EE891121358E100CFBDAB /* progress_bar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = progress_bar.cpp; sourceTree = "<group>"; };
B52EE892121358E100CFBDAB /* progress_bar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = progress_bar.hpp; sourceTree = "<group>"; };
B52EE895121358EF00CFBDAB /* progress_bar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = progress_bar.cpp; sourceTree = "<group>"; };
B52EE896121358EF00CFBDAB /* progress_bar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = progress_bar.hpp; sourceTree = "<group>"; };
B52EE8991213590500CFBDAB /* list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = list.cpp; sourceTree = "<group>"; };
B52EE89A1213590500CFBDAB /* list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = list.hpp; sourceTree = "<group>"; };
B52EE89B1213590500CFBDAB /* progress_bar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = progress_bar.cpp; sourceTree = "<group>"; };
@ -1666,8 +1523,6 @@
B54AC6C40FEA9EB5006F6FBD /* stage_fallback.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = stage_fallback.hpp; sourceTree = "<group>"; };
B54AC6C50FEA9EB5006F6FBD /* stage_rca.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stage_rca.cpp; sourceTree = "<group>"; };
B54AC6C60FEA9EB5006F6FBD /* stage_rca.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = stage_rca.hpp; sourceTree = "<group>"; };
B54AC6EB0FEA9F7A006F6FBD /* control.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = control.cpp; sourceTree = "<group>"; };
B54AC6EC0FEA9F7A006F6FBD /* control.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = control.hpp; sourceTree = "<group>"; };
B54AC6EF0FEA9F92006F6FBD /* lobby_main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lobby_main.cpp; sourceTree = "<group>"; };
B54AC6F00FEA9F92006F6FBD /* lobby_main.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = lobby_main.hpp; sourceTree = "<group>"; };
B54AC6F10FEA9F92006F6FBD /* transient_message.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transient_message.cpp; sourceTree = "<group>"; };
@ -1679,24 +1534,6 @@
B54AC6FB0FEA9FA5006F6FBD /* scrollbar_panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scrollbar_panel.cpp; sourceTree = "<group>"; };
B54AC6FC0FEA9FA5006F6FBD /* scrollbar_panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scrollbar_panel.hpp; sourceTree = "<group>"; };
B54AC6FD0FEA9FA5006F6FBD /* window_private.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = window_private.hpp; sourceTree = "<group>"; };
B54AC7480FEC3CF9006F6FBD /* button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = button.cpp; sourceTree = "<group>"; };
B54AC7490FEC3CF9006F6FBD /* button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = button.hpp; sourceTree = "<group>"; };
B54AC74A0FEC3CF9006F6FBD /* image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = image.cpp; sourceTree = "<group>"; };
B54AC74B0FEC3CF9006F6FBD /* image.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = image.hpp; sourceTree = "<group>"; };
B54AC74C0FEC3CF9006F6FBD /* label.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = label.cpp; sourceTree = "<group>"; };
B54AC74D0FEC3CF9006F6FBD /* label.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = label.hpp; sourceTree = "<group>"; };
B54AC74E0FEC3CF9006F6FBD /* minimap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minimap.cpp; sourceTree = "<group>"; };
B54AC74F0FEC3CF9006F6FBD /* minimap.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = minimap.hpp; sourceTree = "<group>"; };
B54AC8320FF7F122006F6FBD /* panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = panel.cpp; sourceTree = "<group>"; };
B54AC8330FF7F122006F6FBD /* panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = panel.hpp; sourceTree = "<group>"; };
B54AC8340FF7F122006F6FBD /* password_box.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = password_box.cpp; sourceTree = "<group>"; };
B54AC8350FF7F122006F6FBD /* password_box.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = password_box.hpp; sourceTree = "<group>"; };
B54AC8360FF7F122006F6FBD /* spacer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spacer.cpp; sourceTree = "<group>"; };
B54AC8370FF7F122006F6FBD /* spacer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = spacer.hpp; sourceTree = "<group>"; };
B54AC8380FF7F122006F6FBD /* text_box.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_box.cpp; sourceTree = "<group>"; };
B54AC8390FF7F122006F6FBD /* text_box.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = text_box.hpp; sourceTree = "<group>"; };
B54AC83A0FF7F122006F6FBD /* toggle_panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = toggle_panel.cpp; sourceTree = "<group>"; };
B54AC83B0FF7F122006F6FBD /* toggle_panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = toggle_panel.hpp; sourceTree = "<group>"; };
B552D92210869477002D8F86 /* distributor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = distributor.cpp; sourceTree = "<group>"; };
B552D92310869477002D8F86 /* distributor.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = distributor.hpp; sourceTree = "<group>"; };
B552D92A108694BB002D8F86 /* ca_testing_move_to_targets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ca_testing_move_to_targets.cpp; sourceTree = "<group>"; };
@ -1955,16 +1792,10 @@
B55BE05011234B3300154E6C /* tree_view_node.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = tree_view_node.hpp; sourceTree = "<group>"; };
B55BE05111234B3300154E6C /* tree_view.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tree_view.cpp; sourceTree = "<group>"; };
B55BE05211234B3300154E6C /* tree_view.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = tree_view.hpp; sourceTree = "<group>"; };
B55BE05711234B5600154E6C /* tree_view.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tree_view.cpp; sourceTree = "<group>"; };
B55BE05811234B5600154E6C /* tree_view.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = tree_view.hpp; sourceTree = "<group>"; };
B55BE05B11234B6B00154E6C /* tree_view.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tree_view.cpp; sourceTree = "<group>"; };
B55BE05C11234B6B00154E6C /* tree_view.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = tree_view.hpp; sourceTree = "<group>"; };
B561F366104B1042001369F5 /* component.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = component.cpp; sourceTree = "<group>"; };
B561F367104B1042001369F5 /* component.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = component.hpp; sourceTree = "<group>"; };
B561F36E104B11B6001369F5 /* formula_debugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = formula_debugger.cpp; sourceTree = "<group>"; };
B561F36F104B11B6001369F5 /* formula_debugger.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = formula_debugger.hpp; sourceTree = "<group>"; };
B561F372104B11D4001369F5 /* horizontal_listbox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = horizontal_listbox.cpp; sourceTree = "<group>"; };
B561F373104B11D4001369F5 /* horizontal_listbox.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = horizontal_listbox.hpp; sourceTree = "<group>"; };
B561F38F104B11F7001369F5 /* editor_preferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = editor_preferences.cpp; sourceTree = "<group>"; };
B561F390104B11F7001369F5 /* editor_preferences.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = editor_preferences.hpp; sourceTree = "<group>"; };
B5795A5E0F05858100EB190E /* horizontal_scrollbar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = horizontal_scrollbar.hpp; sourceTree = "<group>"; };
@ -1977,8 +1808,6 @@
B5795A650F05858100EB190E /* generator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = generator.hpp; sourceTree = "<group>"; };
B5795A660F05858100EB190E /* selectable.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = selectable.hpp; sourceTree = "<group>"; };
B5795A670F05858100EB190E /* generator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = generator.cpp; sourceTree = "<group>"; };
B59271F510E956D600A13911 /* repeating_button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = repeating_button.cpp; sourceTree = "<group>"; };
B59271F610E956D600A13911 /* repeating_button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = repeating_button.hpp; sourceTree = "<group>"; };
B59271F910E9577800A13911 /* repeating_button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = repeating_button.cpp; sourceTree = "<group>"; };
B59271FA10E9577800A13911 /* repeating_button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = repeating_button.hpp; sourceTree = "<group>"; };
B5951A811013BB0800C10B66 /* chat_events.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = chat_events.hpp; path = ../src/chat_events.hpp; sourceTree = "<group>"; };
@ -2215,44 +2044,6 @@
B5F4D7160F5B3B25005E204A /* campaign_selection.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = campaign_selection.hpp; sourceTree = "<group>"; };
B5F4D7170F5B3B25005E204A /* campaign_selection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = campaign_selection.cpp; sourceTree = "<group>"; };
B5F9C5940F93BB0B00C02205 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
B5FCE8E71104C2A50081F1DF /* button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = button.cpp; sourceTree = "<group>"; };
B5FCE8E81104C2A50081F1DF /* button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = button.hpp; sourceTree = "<group>"; };
B5FCE8E91104C2A50081F1DF /* horizontal_scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = horizontal_scrollbar.cpp; sourceTree = "<group>"; };
B5FCE8EA1104C2A50081F1DF /* horizontal_scrollbar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = horizontal_scrollbar.hpp; sourceTree = "<group>"; };
B5FCE8EB1104C2A50081F1DF /* image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = image.cpp; sourceTree = "<group>"; };
B5FCE8EC1104C2A50081F1DF /* image.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = image.hpp; sourceTree = "<group>"; };
B5FCE8ED1104C2A50081F1DF /* label.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = label.cpp; sourceTree = "<group>"; };
B5FCE8EE1104C2A50081F1DF /* label.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = label.hpp; sourceTree = "<group>"; };
B5FCE8EF1104C2A50081F1DF /* listbox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = listbox.cpp; sourceTree = "<group>"; };
B5FCE8F01104C2A50081F1DF /* listbox.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = listbox.hpp; sourceTree = "<group>"; };
B5FCE8F31104C2A50081F1DF /* minimap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minimap.cpp; sourceTree = "<group>"; };
B5FCE8F41104C2A50081F1DF /* minimap.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = minimap.hpp; sourceTree = "<group>"; };
B5FCE8F51104C2A50081F1DF /* multi_page.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multi_page.cpp; sourceTree = "<group>"; };
B5FCE8F61104C2A50081F1DF /* multi_page.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = multi_page.hpp; sourceTree = "<group>"; };
B5FCE8F71104C2A50081F1DF /* panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = panel.cpp; sourceTree = "<group>"; };
B5FCE8F81104C2A50081F1DF /* panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = panel.hpp; sourceTree = "<group>"; };
B5FCE8F91104C2A50081F1DF /* repeating_button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = repeating_button.cpp; sourceTree = "<group>"; };
B5FCE8FA1104C2A50081F1DF /* repeating_button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = repeating_button.hpp; sourceTree = "<group>"; };
B5FCE8FB1104C2A50081F1DF /* scroll_label.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scroll_label.cpp; sourceTree = "<group>"; };
B5FCE8FC1104C2A50081F1DF /* scroll_label.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scroll_label.hpp; sourceTree = "<group>"; };
B5FCE8FD1104C2A50081F1DF /* scrollbar_panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scrollbar_panel.cpp; sourceTree = "<group>"; };
B5FCE8FE1104C2A50081F1DF /* scrollbar_panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scrollbar_panel.hpp; sourceTree = "<group>"; };
B5FCE8FF1104C2A50081F1DF /* slider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slider.cpp; sourceTree = "<group>"; };
B5FCE9001104C2A50081F1DF /* slider.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = slider.hpp; sourceTree = "<group>"; };
B5FCE9011104C2A50081F1DF /* spacer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spacer.cpp; sourceTree = "<group>"; };
B5FCE9021104C2A50081F1DF /* spacer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = spacer.hpp; sourceTree = "<group>"; };
B5FCE9031104C2A50081F1DF /* stacked_widget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stacked_widget.cpp; sourceTree = "<group>"; };
B5FCE9041104C2A50081F1DF /* stacked_widget.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = stacked_widget.hpp; sourceTree = "<group>"; };
B5FCE9051104C2A50081F1DF /* text_box.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_box.cpp; sourceTree = "<group>"; };
B5FCE9061104C2A50081F1DF /* text_box.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = text_box.hpp; sourceTree = "<group>"; };
B5FCE9071104C2A50081F1DF /* toggle_button.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = toggle_button.cpp; sourceTree = "<group>"; };
B5FCE9081104C2A50081F1DF /* toggle_button.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = toggle_button.hpp; sourceTree = "<group>"; };
B5FCE9091104C2A50081F1DF /* toggle_panel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = toggle_panel.cpp; sourceTree = "<group>"; };
B5FCE90A1104C2A50081F1DF /* toggle_panel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = toggle_panel.hpp; sourceTree = "<group>"; };
B5FCE90D1104C2A50081F1DF /* vertical_scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vertical_scrollbar.cpp; sourceTree = "<group>"; };
B5FCE90E1104C2A50081F1DF /* vertical_scrollbar.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vertical_scrollbar.hpp; sourceTree = "<group>"; };
B5FCE90F1104C2A50081F1DF /* window.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = window.cpp; sourceTree = "<group>"; };
B5FCE9101104C2A50081F1DF /* window.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = window.hpp; sourceTree = "<group>"; };
EC08023A194D0A80009E0050 /* formula_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = formula_manager.cpp; sourceTree = "<group>"; };
EC08023B194D0A80009E0050 /* formula_manager.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = formula_manager.hpp; sourceTree = "<group>"; };
EC19E6EE18B7F24B003B4B81 /* screenshot_notification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = screenshot_notification.cpp; sourceTree = "<group>"; };
@ -2440,10 +2231,10 @@
ECA4A6781A1EC319006BCCF2 /* lua_fileops.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lua_fileops.cpp; sourceTree = "<group>"; };
ECA4A6791A1EC319006BCCF2 /* lua_map_location_ops.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lua_map_location_ops.cpp; sourceTree = "<group>"; };
ECA4A67A1A1EC319006BCCF2 /* lua_rng.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lua_rng.cpp; sourceTree = "<group>"; };
ECA563831A47BA36006278A5 /* hotkey_handler_mp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hotkey_handler_mp.cpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler_mp.cpp; sourceTree = "<absolute>"; };
ECA563841A47BA36006278A5 /* hotkey_handler_replay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hotkey_handler_replay.cpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler_replay.cpp; sourceTree = "<absolute>"; };
ECA563851A47BA36006278A5 /* hotkey_handler_sp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hotkey_handler_sp.cpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler_sp.cpp; sourceTree = "<absolute>"; };
ECA563861A47BA36006278A5 /* hotkey_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hotkey_handler.cpp; path = /Users/seanachi/Documents/Programming/wesnoth/src/hotkey/hotkey_handler.cpp; sourceTree = "<absolute>"; };
ECA563831A47BA36006278A5 /* hotkey_handler_mp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hotkey_handler_mp.cpp; sourceTree = "<group>"; };
ECA563841A47BA36006278A5 /* hotkey_handler_replay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hotkey_handler_replay.cpp; sourceTree = "<group>"; };
ECA563851A47BA36006278A5 /* hotkey_handler_sp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hotkey_handler_sp.cpp; sourceTree = "<group>"; };
ECA563861A47BA36006278A5 /* hotkey_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hotkey_handler.cpp; sourceTree = "<group>"; };
ECAA3FE518E0E4EF002E8998 /* unicode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unicode.cpp; sourceTree = "<group>"; };
ECAA3FE618E0E4EF002E8998 /* unicode.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = unicode.hpp; sourceTree = "<group>"; };
ECAB844E1B0C1933001A3EB7 /* shroud_clearing_action.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shroud_clearing_action.cpp; sourceTree = "<group>"; };
@ -2512,10 +2303,8 @@
F419E43E13354E220031448A /* teleport.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = teleport.hpp; sourceTree = "<group>"; };
F419E44313354E620031448A /* lua_jailbreak_exception.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = lua_jailbreak_exception.hpp; sourceTree = "<group>"; };
F419E44413354E620031448A /* lua_jailbreak_exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lua_jailbreak_exception.cpp; sourceTree = "<group>"; };
F419E44A13354E890031448A /* portrait.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = portrait.hpp; sourceTree = "<group>"; };
F419E46213354F8D0031448A /* ca_global_fallback.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ca_global_fallback.hpp; sourceTree = "<group>"; };
F419E485133550FB0031448A /* drawing.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = drawing.hpp; sourceTree = "<group>"; };
F419E48A133551170031448A /* drawing.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = drawing.hpp; sourceTree = "<group>"; };
F444907513C5483E003B6442 /* joystick.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = joystick.cpp; sourceTree = "<group>"; };
F444907613C5483E003B6442 /* joystick.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = joystick.hpp; sourceTree = "<group>"; };
F44490B413C5483F003B6442 /* network_asio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = network_asio.cpp; sourceTree = "<group>"; };
@ -2560,8 +2349,6 @@
F4D5AFF1157120B30062EAFC /* horizontal_list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = horizontal_list.hpp; sourceTree = "<group>"; };
F4D5AFF2157120B30062EAFC /* vertical_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vertical_list.cpp; sourceTree = "<group>"; };
F4D5AFF3157120B30062EAFC /* vertical_list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vertical_list.hpp; sourceTree = "<group>"; };
F4D5AFF8157120E60062EAFC /* viewport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = viewport.cpp; sourceTree = "<group>"; };
F4D5AFF9157120E60062EAFC /* viewport.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = viewport.hpp; sourceTree = "<group>"; };
F4D5DF37149CE9B500294046 /* chat_log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chat_log.cpp; sourceTree = "<group>"; };
F4D5DF38149CE9B500294046 /* chat_log.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = chat_log.hpp; sourceTree = "<group>"; };
F4E4E0AF1367241E001C7528 /* suppose_dead.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = suppose_dead.cpp; sourceTree = "<group>"; };
@ -2904,8 +2691,6 @@
B55999C70EC62181008DD061 /* playturn.hpp */,
EC51DB7618F8BFA4004621D9 /* playturn_network_adapter.cpp */,
EC51DB7718F8BFA4004621D9 /* playturn_network_adapter.hpp */,
91B6219E1B7673D800B00E0F /* portrait.cpp */,
F419E44A13354E890031448A /* portrait.hpp */,
B55999C40EC62181008DD061 /* preferences.cpp */,
B55999C30EC62181008DD061 /* preferences.hpp */,
B55999C20EC62181008DD061 /* preferences_display.cpp */,
@ -3714,68 +3499,10 @@
B54AC6EA0FEA9F7A006F6FBD /* window_builder */ = {
isa = PBXGroup;
children = (
B54AC7480FEC3CF9006F6FBD /* button.cpp */,
B54AC7490FEC3CF9006F6FBD /* button.hpp */,
91F4628A1C7116C40050A9C9 /* combobox.cpp */,
91F4628B1C7116C40050A9C9 /* combobox.hpp */,
B54AC6EB0FEA9F7A006F6FBD /* control.cpp */,
B54AC6EC0FEA9F7A006F6FBD /* control.hpp */,
4944F40A1354FB610027E614 /* drawing.cpp */,
91B621D51B76B57F00B00E0F /* drawing.hpp */,
B508D1E7100155F300B12852 /* helper.cpp */,
B508D1E8100155F300B12852 /* helper.hpp */,
B561F372104B11D4001369F5 /* horizontal_listbox.cpp */,
B561F373104B11D4001369F5 /* horizontal_listbox.hpp */,
B508D1E9100155F300B12852 /* horizontal_scrollbar.cpp */,
B508D1EA100155F300B12852 /* horizontal_scrollbar.hpp */,
B54AC74A0FEC3CF9006F6FBD /* image.cpp */,
B54AC74B0FEC3CF9006F6FBD /* image.hpp */,
62579C781573E70C003089D5 /* instance.cpp */,
62579C791573E70C003089D5 /* instance.hpp */,
B54AC74C0FEC3CF9006F6FBD /* label.cpp */,
B54AC74D0FEC3CF9006F6FBD /* label.hpp */,
B508D1EB100155F300B12852 /* listbox.cpp */,
B508D1EC100155F300B12852 /* listbox.hpp */,
62579C7A1573E70C003089D5 /* matrix.cpp */,
62579C7B1573E70C003089D5 /* matrix.hpp */,
B54AC74E0FEC3CF9006F6FBD /* minimap.cpp */,
B54AC74F0FEC3CF9006F6FBD /* minimap.hpp */,
B508D1ED100155F300B12852 /* multi_page.cpp */,
B508D1EE100155F300B12852 /* multi_page.hpp */,
62579C7C1573E70C003089D5 /* pane.cpp */,
62579C7D1573E70C003089D5 /* pane.hpp */,
B54AC8320FF7F122006F6FBD /* panel.cpp */,
B54AC8330FF7F122006F6FBD /* panel.hpp */,
B54AC8340FF7F122006F6FBD /* password_box.cpp */,
B54AC8350FF7F122006F6FBD /* password_box.hpp */,
B52EE895121358EF00CFBDAB /* progress_bar.cpp */,
B52EE896121358EF00CFBDAB /* progress_bar.hpp */,
B59271F510E956D600A13911 /* repeating_button.cpp */,
B59271F610E956D600A13911 /* repeating_button.hpp */,
B508D1EF100155F300B12852 /* scroll_label.cpp */,
B508D1F0100155F300B12852 /* scroll_label.hpp */,
B508D1F1100155F300B12852 /* scrollbar_panel.cpp */,
B508D1F2100155F300B12852 /* scrollbar_panel.hpp */,
B508D1F3100155F300B12852 /* slider.cpp */,
B508D1F4100155F300B12852 /* slider.hpp */,
B54AC8360FF7F122006F6FBD /* spacer.cpp */,
B54AC8370FF7F122006F6FBD /* spacer.hpp */,
B508D1F5100155F300B12852 /* stacked_widget.cpp */,
B508D1F6100155F300B12852 /* stacked_widget.hpp */,
B54AC8380FF7F122006F6FBD /* text_box.cpp */,
B54AC8390FF7F122006F6FBD /* text_box.hpp */,
B508D1F7100155F300B12852 /* toggle_button.cpp */,
B508D1F8100155F300B12852 /* toggle_button.hpp */,
B54AC83A0FF7F122006F6FBD /* toggle_panel.cpp */,
B54AC83B0FF7F122006F6FBD /* toggle_panel.hpp */,
B55BE05B11234B6B00154E6C /* tree_view.cpp */,
B55BE05C11234B6B00154E6C /* tree_view.hpp */,
91DCA67F1C90668E0030F8D0 /* unit_preview_pane.cpp */,
91DCA6801C90668E0030F8D0 /* unit_preview_pane.hpp */,
B508D1F9100155F300B12852 /* vertical_scrollbar.cpp */,
B508D1FA100155F300B12852 /* vertical_scrollbar.hpp */,
F4D5AFF8157120E60062EAFC /* viewport.cpp */,
F4D5AFF9157120E60062EAFC /* viewport.hpp */,
);
path = window_builder;
sourceTree = "<group>";
@ -4069,7 +3796,6 @@
B5CF7BBB10D55F5A00A8BEB5 /* timer.hpp */,
B504B94A1284C06B00261FE9 /* tips.cpp */,
B504B94B1284C06B00261FE9 /* tips.hpp */,
B5FCE8E61104C2A50081F1DF /* widget_definition */,
B5B4692E107118B200327599 /* widget_definition.cpp */,
B5B4692F107118B200327599 /* widget_definition.hpp */,
B54AC6EA0FEA9F7A006F6FBD /* window_builder */,
@ -4436,63 +4162,6 @@
path = ../../src/server;
sourceTree = "<group>";
};
B5FCE8E61104C2A50081F1DF /* widget_definition */ = {
isa = PBXGroup;
children = (
B5FCE8E71104C2A50081F1DF /* button.cpp */,
B5FCE8E81104C2A50081F1DF /* button.hpp */,
91F4628E1C7116E30050A9C9 /* combobox.cpp */,
91F4628F1C7116E30050A9C9 /* combobox.hpp */,
4944F4181354FBCD0027E614 /* drawing.cpp */,
F419E48A133551170031448A /* drawing.hpp */,
B5FCE8E91104C2A50081F1DF /* horizontal_scrollbar.cpp */,
B5FCE8EA1104C2A50081F1DF /* horizontal_scrollbar.hpp */,
B5FCE8EB1104C2A50081F1DF /* image.cpp */,
B5FCE8EC1104C2A50081F1DF /* image.hpp */,
B5FCE8ED1104C2A50081F1DF /* label.cpp */,
B5FCE8EE1104C2A50081F1DF /* label.hpp */,
B5FCE8EF1104C2A50081F1DF /* listbox.cpp */,
B5FCE8F01104C2A50081F1DF /* listbox.hpp */,
62579C751573E682003089D5 /* matrix.cpp */,
62579C761573E682003089D5 /* matrix.hpp */,
B5FCE8F31104C2A50081F1DF /* minimap.cpp */,
B5FCE8F41104C2A50081F1DF /* minimap.hpp */,
B5FCE8F51104C2A50081F1DF /* multi_page.cpp */,
B5FCE8F61104C2A50081F1DF /* multi_page.hpp */,
B5FCE8F71104C2A50081F1DF /* panel.cpp */,
B5FCE8F81104C2A50081F1DF /* panel.hpp */,
B52EE891121358E100CFBDAB /* progress_bar.cpp */,
B52EE892121358E100CFBDAB /* progress_bar.hpp */,
B5FCE8F91104C2A50081F1DF /* repeating_button.cpp */,
B5FCE8FA1104C2A50081F1DF /* repeating_button.hpp */,
B5FCE8FB1104C2A50081F1DF /* scroll_label.cpp */,
B5FCE8FC1104C2A50081F1DF /* scroll_label.hpp */,
B5FCE8FD1104C2A50081F1DF /* scrollbar_panel.cpp */,
B5FCE8FE1104C2A50081F1DF /* scrollbar_panel.hpp */,
B5FCE8FF1104C2A50081F1DF /* slider.cpp */,
B5FCE9001104C2A50081F1DF /* slider.hpp */,
B5FCE9011104C2A50081F1DF /* spacer.cpp */,
B5FCE9021104C2A50081F1DF /* spacer.hpp */,
B5FCE9031104C2A50081F1DF /* stacked_widget.cpp */,
B5FCE9041104C2A50081F1DF /* stacked_widget.hpp */,
B5FCE9051104C2A50081F1DF /* text_box.cpp */,
B5FCE9061104C2A50081F1DF /* text_box.hpp */,
B5FCE9071104C2A50081F1DF /* toggle_button.cpp */,
B5FCE9081104C2A50081F1DF /* toggle_button.hpp */,
B5FCE9091104C2A50081F1DF /* toggle_panel.cpp */,
B5FCE90A1104C2A50081F1DF /* toggle_panel.hpp */,
B55BE05711234B5600154E6C /* tree_view.cpp */,
B55BE05811234B5600154E6C /* tree_view.hpp */,
91DCA6831C9066A60030F8D0 /* unit_preview_pane.cpp */,
91DCA6841C9066A60030F8D0 /* unit_preview_pane.hpp */,
B5FCE90D1104C2A50081F1DF /* vertical_scrollbar.cpp */,
B5FCE90E1104C2A50081F1DF /* vertical_scrollbar.hpp */,
B5FCE90F1104C2A50081F1DF /* window.cpp */,
B5FCE9101104C2A50081F1DF /* window.hpp */,
);
path = widget_definition;
sourceTree = "<group>";
};
F480CD2D14035038007175D6 /* tools */ = {
isa = PBXGroup;
children = (
@ -4728,8 +4397,6 @@
62D24F2D1519982500350848 /* brush.cpp in Sources */,
B5599AD40EC62181008DD061 /* button.cpp in Sources */,
B5A9BD5B0ECA805A002BE442 /* button.cpp in Sources */,
B54AC7540FEC3CF9006F6FBD /* button.cpp in Sources */,
B5FCE9111104C2A50081F1DF /* button.cpp in Sources */,
49DA0D3613550F27000AFEBD /* ca_global_fallback.cpp in Sources */,
B552D92D108694BB002D8F86 /* ca_testing_move_to_targets.cpp in Sources */,
B5CE46FD12A041CE00D665EE /* ca_testing_recruitment.cpp in Sources */,
@ -4766,7 +4433,6 @@
B54AC6D90FEA9EB5006F6FBD /* contexts.cpp in Sources */,
B54AC6E00FEA9EB5006F6FBD /* contexts.cpp in Sources */,
B5A9BD5E0ECA805A002BE442 /* control.cpp in Sources */,
B54AC6EE0FEA9F7A006F6FBD /* control.cpp in Sources */,
B5599B790EC62181008DD061 /* controller_base.cpp in Sources */,
B597EC140FC0835900CE81F5 /* controller.cpp in Sources */,
ECBBD7401928F41500E434C6 /* core_selection.cpp in Sources */,
@ -4791,9 +4457,7 @@
ECD39895194B844A00CF2125 /* display_context.cpp in Sources */,
B5599B760EC62181008DD061 /* display.cpp in Sources */,
B552D92410869477002D8F86 /* distributor.cpp in Sources */,
4944F40B1354FB610027E614 /* drawing.cpp in Sources */,
4944F40D1354FB760027E614 /* drawing.cpp in Sources */,
4944F4191354FBCD0027E614 /* drawing.cpp in Sources */,
B5599AD70EC62181008DD061 /* drop_target.cpp in Sources */,
B5CE470612A041EF00D665EE /* edit_label.cpp in Sources */,
497455CE174066A800E89E30 /* edit_text.cpp in Sources */,
@ -4882,10 +4546,7 @@
B508D1FB100155F300B12852 /* helper.cpp in Sources */,
621DEB8415A7BA1F00FEE18A /* highlighter.cpp in Sources */,
F4D5AFF4157120B30062EAFC /* horizontal_list.cpp in Sources */,
B561F374104B11D4001369F5 /* horizontal_listbox.cpp in Sources */,
B5795A680F05858100EB190E /* horizontal_scrollbar.cpp in Sources */,
B508D1FC100155F300B12852 /* horizontal_scrollbar.cpp in Sources */,
B5FCE9121104C2A50081F1DF /* horizontal_scrollbar.cpp in Sources */,
ECFA82E4184E59F3006782FB /* hotkey_command.cpp in Sources */,
ECA563871A47BA36006278A5 /* hotkey_handler_mp.cpp in Sources */,
ECA563881A47BA36006278A5 /* hotkey_handler_replay.cpp in Sources */,
@ -4897,8 +4558,6 @@
F4E4E0B41367244F001C7528 /* image_modifications.cpp in Sources */,
B5599B360EC62181008DD061 /* image.cpp in Sources */,
B5A9BD630ECA805A002BE442 /* image.cpp in Sources */,
B54AC7550FEC3CF9006F6FBD /* image.cpp in Sources */,
B5FCE9131104C2A50081F1DF /* image.cpp in Sources */,
F419A2C314F5BCFE002F9ADC /* info.cpp in Sources */,
62579C7E1573E70C003089D5 /* instance.cpp in Sources */,
B597EC150FC0835900CE81F5 /* interface.cpp in Sources */,
@ -4911,8 +4570,6 @@
91B6217C1B74E6D200B00E0F /* label_settings.cpp in Sources */,
B5599AD90EC62181008DD061 /* label.cpp in Sources */,
B5A9BD640ECA805A002BE442 /* label.cpp in Sources */,
B54AC7560FEC3CF9006F6FBD /* label.cpp in Sources */,
B5FCE9141104C2A50081F1DF /* label.cpp in Sources */,
B5A9BD380ECA805A002BE442 /* language_selection.cpp in Sources */,
B5599B330EC62181008DD061 /* language.cpp in Sources */,
EC89A1291879D17D00A3B0B1 /* lapi.cpp in Sources */,
@ -4933,8 +4590,6 @@
EC89A1371879D17D00A3B0B1 /* liolib.cpp in Sources */,
B52EE89D1213590500CFBDAB /* list.cpp in Sources */,
B5A9BD650ECA805A002BE442 /* listbox.cpp in Sources */,
B508D1FD100155F300B12852 /* listbox.cpp in Sources */,
B5FCE9151104C2A50081F1DF /* listbox.cpp in Sources */,
EC89A1381879D17D00A3B0B1 /* llex.cpp in Sources */,
EC89A1391879D17D00A3B0B1 /* lmathlib.cpp in Sources */,
EC89A13A1879D17D00A3B0B1 /* lmem.cpp in Sources */,
@ -4994,8 +4649,6 @@
F480CD1F14034E6D007175D6 /* mapbuilder.cpp in Sources */,
ECA1E1011A12755B00426E00 /* mapgen_lua_kernel.cpp in Sources */,
B5599B280EC62181008DD061 /* marked-up_text.cpp in Sources */,
62579C771573E682003089D5 /* matrix.cpp in Sources */,
62579C7F1573E70C003089D5 /* matrix.cpp in Sources */,
62579C831573E797003089D5 /* matrix.cpp in Sources */,
B5599B270EC62181008DD061 /* md5.cpp in Sources */,
B5599B260EC62181008DD061 /* menu_events.cpp in Sources */,
@ -5005,8 +4658,6 @@
B5A9BD390ECA805A002BE442 /* message.cpp in Sources */,
B5599B250EC62181008DD061 /* minimap.cpp in Sources */,
B5A9BD670ECA805A002BE442 /* minimap.cpp in Sources */,
B54AC7570FEC3CF9006F6FBD /* minimap.cpp in Sources */,
B5FCE9171104C2A50081F1DF /* minimap.cpp in Sources */,
62114CC61750B99800CA42C7 /* mouse_action_item.cpp in Sources */,
6295C3B9150FC95C0077D8C5 /* mouse_action_map_label.cpp in Sources */,
62CC8E531774C4F800C16B75 /* mouse_action_select.cpp in Sources */,
@ -5034,8 +4685,6 @@
EC5C70C119EEB58300432CF4 /* mp_ui_alerts.cpp in Sources */,
EC64D7651A085F120092EF75 /* mt_rng.cpp in Sources */,
B54AC7000FEA9FA5006F6FBD /* multi_page.cpp in Sources */,
B508D1FE100155F300B12852 /* multi_page.cpp in Sources */,
B5FCE9181104C2A50081F1DF /* multi_page.cpp in Sources */,
ECABDA391B6A94AE001407C1 /* multimenu.cpp in Sources */,
EC2F60141A048E220018C9D6 /* multiplayer_configure.cpp in Sources */,
EC2F60151A048E220018C9D6 /* multiplayer_connect.cpp in Sources */,
@ -5053,14 +4702,10 @@
EC74C120197576F500B85A1A /* open.cpp in Sources */,
62D24F351519995200350848 /* palette_manager.cpp in Sources */,
62E48250154D865E001DD4FC /* pane.cpp in Sources */,
62579C801573E70C003089D5 /* pane.cpp in Sources */,
B5A9BD680ECA805A002BE442 /* panel.cpp in Sources */,
B54AC8430FF7F122006F6FBD /* panel.cpp in Sources */,
B5FCE9191104C2A50081F1DF /* panel.cpp in Sources */,
B5599B060EC62181008DD061 /* parser.cpp in Sources */,
B597EC160FC0835900CE81F5 /* part.cpp in Sources */,
B59915280F20EA1400BAD4C1 /* password_box.cpp in Sources */,
B54AC8440FF7F122006F6FBD /* password_box.cpp in Sources */,
B55BE03311234AAB00154E6C /* pathfind.cpp in Sources */,
B5599B180EC62181008DD061 /* pathutils.cpp in Sources */,
B52EE8D6121359A600CFBDAB /* persist_context.cpp in Sources */,
@ -5075,12 +4720,9 @@
B5599B130EC62181008DD061 /* playturn.cpp in Sources */,
F4C5DD68158CFD5E0044F754 /* point.cpp in Sources */,
4944F4141354FB970027E614 /* popup.cpp in Sources */,
91B6219F1B7673D800B00E0F /* portrait.cpp in Sources */,
B5599B100EC62181008DD061 /* preferences_display.cpp in Sources */,
B5599B110EC62181008DD061 /* preferences.cpp in Sources */,
B5599B070EC62181008DD061 /* preprocessor.cpp in Sources */,
B52EE893121358E100CFBDAB /* progress_bar.cpp in Sources */,
B52EE897121358EF00CFBDAB /* progress_bar.cpp in Sources */,
B52EE89E1213590500CFBDAB /* progress_bar.cpp in Sources */,
B5599ADC0EC62181008DD061 /* progressbar.cpp in Sources */,
62CC8E7817B9063E00C16B75 /* pump.cpp in Sources */,
@ -5097,9 +4739,7 @@
ECFB9FAC193BFB6E00146ED0 /* rect.cpp in Sources */,
B54AC6A00FEA9E8F006F6FBD /* registry.cpp in Sources */,
B597EC170FC0835900CE81F5 /* render.cpp in Sources */,
B59271F710E956D600A13911 /* repeating_button.cpp in Sources */,
B59271FB10E9577800A13911 /* repeating_button.cpp in Sources */,
B5FCE91A1104C2A50081F1DF /* repeating_button.cpp in Sources */,
B5599B0C0EC62181008DD061 /* replay_controller.cpp in Sources */,
EC84246A18F30D9100FC1EEF /* replay_helper.cpp in Sources */,
EC45DEDF1AD1CED100BD760C /* replay_recorder_base.cpp in Sources */,
@ -5114,13 +4754,9 @@
F480CD2414034F18007175D6 /* schema_validator.cpp in Sources */,
EC19E6F018B7F24B003B4B81 /* screenshot_notification.cpp in Sources */,
B5A9BD690ECA805A002BE442 /* scroll_label.cpp in Sources */,
B508D1FF100155F300B12852 /* scroll_label.cpp in Sources */,
B5FCE91B1104C2A50081F1DF /* scroll_label.cpp in Sources */,
B5599ADD0EC62181008DD061 /* scrollarea.cpp in Sources */,
B5795A690F05858100EB190E /* scrollbar_container.cpp in Sources */,
B54AC7010FEA9FA5006F6FBD /* scrollbar_panel.cpp in Sources */,
B508D200100155F300B12852 /* scrollbar_panel.cpp in Sources */,
B5FCE91C1104C2A50081F1DF /* scrollbar_panel.cpp in Sources */,
B5599ADE0EC62181008DD061 /* scrollbar.cpp in Sources */,
B5A9BD6A0ECA805A002BE442 /* scrollbar.cpp in Sources */,
B5599ADF0EC62181008DD061 /* scrollpane.cpp in Sources */,
@ -5139,18 +4775,12 @@
EC2F601C1A048E220018C9D6 /* singleplayer.cpp in Sources */,
B5599AE00EC62181008DD061 /* slider.cpp in Sources */,
B5A9BD6C0ECA805A002BE442 /* slider.cpp in Sources */,
B508D201100155F300B12852 /* slider.cpp in Sources */,
B5FCE91D1104C2A50081F1DF /* slider.cpp in Sources */,
B52EE8DC121359A600CFBDAB /* sound_music_track.cpp in Sources */,
B5599B000EC62181008DD061 /* sound.cpp in Sources */,
B5599AFF0EC62181008DD061 /* soundsource.cpp in Sources */,
F480CD4B14035038007175D6 /* sourceparser.cpp in Sources */,
B5A9BD6D0ECA805A002BE442 /* spacer.cpp in Sources */,
B54AC8450FF7F122006F6FBD /* spacer.cpp in Sources */,
B5FCE91E1104C2A50081F1DF /* spacer.cpp in Sources */,
B508D202100155F300B12852 /* stacked_widget.cpp in Sources */,
B508D2161001560100B12852 /* stacked_widget.cpp in Sources */,
B5FCE91F1104C2A50081F1DF /* stacked_widget.cpp in Sources */,
B54AC6E70FEA9EB5006F6FBD /* stage_fallback.cpp in Sources */,
B54AC6E80FEA9EB5006F6FBD /* stage_rca.cpp in Sources */,
EC4E3B2019B2D8480049CBD7 /* stage_sf_with_rca.cpp in Sources */,
@ -5179,8 +4809,6 @@
B5599AFB0EC62181008DD061 /* terrain.cpp in Sources */,
B597EBF20FC082AB00CE81F5 /* testing.cpp in Sources */,
B5A9BD6F0ECA805A002BE442 /* text_box.cpp in Sources */,
B54AC8460FF7F122006F6FBD /* text_box.cpp in Sources */,
B5FCE9201104C2A50081F1DF /* text_box.cpp in Sources */,
B5599AF80EC62181008DD061 /* text.cpp in Sources */,
B5A9BD6E0ECA805A002BE442 /* text.cpp in Sources */,
B5599AE10EC62181008DD061 /* textbox.cpp in Sources */,
@ -5194,18 +4822,12 @@
B5A9BD3D0ECA805A002BE442 /* title_screen.cpp in Sources */,
B52EE8841213585300CFBDAB /* tod_manager.cpp in Sources */,
B5A9BD700ECA805A002BE442 /* toggle_button.cpp in Sources */,
B508D203100155F300B12852 /* toggle_button.cpp in Sources */,
B5FCE9211104C2A50081F1DF /* toggle_button.cpp in Sources */,
B5A9BD710ECA805A002BE442 /* toggle_panel.cpp in Sources */,
B54AC8470FF7F122006F6FBD /* toggle_panel.cpp in Sources */,
B5FCE9221104C2A50081F1DF /* toggle_panel.cpp in Sources */,
B5599B090EC62181008DD061 /* tokenizer.cpp in Sources */,
B5599AF20EC62181008DD061 /* tooltips.cpp in Sources */,
B54AC6F60FEA9F92006F6FBD /* transient_message.cpp in Sources */,
B55BE05311234B3300154E6C /* tree_view_node.cpp in Sources */,
B55BE05411234B3300154E6C /* tree_view.cpp in Sources */,
B55BE05911234B5600154E6C /* tree_view.cpp in Sources */,
B55BE05D11234B6B00154E6C /* tree_view.cpp in Sources */,
49478714172FF6F8002B7ABA /* tristate_button.cpp in Sources */,
B5599AF10EC62181008DD061 /* tstring.cpp in Sources */,
ECAB84561B0C1934001A3EB7 /* undo_action.cpp in Sources */,
@ -5246,11 +4868,8 @@
B5599AE40EC62181008DD061 /* version.cpp in Sources */,
F4D5AFF5157120B30062EAFC /* vertical_list.cpp in Sources */,
B5A9BD730ECA805A002BE442 /* vertical_scrollbar.cpp in Sources */,
B508D204100155F300B12852 /* vertical_scrollbar.cpp in Sources */,
B5FCE9241104C2A50081F1DF /* vertical_scrollbar.cpp in Sources */,
B5599AE30EC62181008DD061 /* video.cpp in Sources */,
6216A91D1551CCF700E13C2D /* viewport.cpp in Sources */,
F4D5AFFA157120E60062EAFC /* viewport.cpp in Sources */,
620A387315E9364F00A4F513 /* vision.cpp in Sources */,
49DA0D2F13550E9B000AFEBD /* walker_grid.cpp in Sources */,
49DA0D3013550E9B000AFEBD /* walker_widget.cpp in Sources */,
@ -5260,7 +4879,6 @@
B5A9BD750ECA805A002BE442 /* widget.cpp in Sources */,
B597EC5C0FC08E0100CE81F5 /* window_builder.cpp in Sources */,
B5A9BD760ECA805A002BE442 /* window.cpp in Sources */,
B5FCE9251104C2A50081F1DF /* window.cpp in Sources */,
EC44E383181DDAF90037A62F /* wmi_container.cpp in Sources */,
EC219452196064A900420969 /* wmi_pager.cpp in Sources */,
ECF3A0B318AD3E8800DD643A /* wml_error.cpp in Sources */,
@ -5277,12 +4895,8 @@
919B37FC1BAF7A9D00E0094C /* synced_choice_wait.cpp in Sources */,
91F462841C71139C0050A9C9 /* preferences_dialog.cpp in Sources */,
91F462881C7115C50050A9C9 /* combobox.cpp in Sources */,
91F4628C1C7116C40050A9C9 /* combobox.cpp in Sources */,
91F462901C7116E30050A9C9 /* combobox.cpp in Sources */,
91F462941C7117400050A9C9 /* drop_down_list.cpp in Sources */,
9130A4601C73BB6100852782 /* select_orb_colors.cpp in Sources */,
91DCA6811C90668E0030F8D0 /* unit_preview_pane.cpp in Sources */,
91DCA6851C9066A60030F8D0 /* unit_preview_pane.cpp in Sources */,
91DCA6891C9066CC0030F8D0 /* unit_preview_pane.cpp in Sources */,
91DCA68D1C9066EC0030F8D0 /* unit_recruit.cpp in Sources */,
);
@ -5312,8 +4926,6 @@
B597C5600FACD6CA00CE81F5 /* binary_or_text.cpp in Sources */,
B597C5690FACD6CA00CE81F5 /* button.cpp in Sources */,
B597C65A0FACDDE800CE81F5 /* button.cpp in Sources */,
B54AC7500FEC3CF9006F6FBD /* button.cpp in Sources */,
B5FCE9261104C2A50081F1DF /* button.cpp in Sources */,
B552D92F108694BB002D8F86 /* ca_testing_move_to_targets.cpp in Sources */,
B5CE46FE12A041CE00D665EE /* ca_testing_recruitment.cpp in Sources */,
B54AC6D50FEA9EB5006F6FBD /* ca.cpp in Sources */,
@ -5336,7 +4948,6 @@
B54AC6C80FEA9EB5006F6FBD /* contexts.cpp in Sources */,
B54AC6CF0FEA9EB5006F6FBD /* contexts.cpp in Sources */,
B597C5F30FACD6CA00CE81F5 /* control.cpp in Sources */,
B54AC6ED0FEA9F7A006F6FBD /* control.cpp in Sources */,
B597C5CD0FACD6CA00CE81F5 /* controller_base.cpp in Sources */,
B597EC180FC0835900CE81F5 /* controller.cpp in Sources */,
B52EE9A7121363EB00CFBDAB /* core.cpp in Sources */,
@ -5394,28 +5005,19 @@
B52EE8E4121359A600CFBDAB /* hash.cpp in Sources */,
B597C55C0FACD6CA00CE81F5 /* helper.cpp in Sources */,
B508D205100155F300B12852 /* helper.cpp in Sources */,
B561F375104B11D4001369F5 /* horizontal_listbox.cpp in Sources */,
B597C5C20FACD6CA00CE81F5 /* horizontal_scrollbar.cpp in Sources */,
B508D206100155F300B12852 /* horizontal_scrollbar.cpp in Sources */,
B5FCE9271104C2A50081F1DF /* horizontal_scrollbar.cpp in Sources */,
B597C5BC0FACD6CA00CE81F5 /* image.cpp in Sources */,
B597C5BF0FACD6CA00CE81F5 /* image.cpp in Sources */,
B54AC7510FEC3CF9006F6FBD /* image.cpp in Sources */,
B5FCE9281104C2A50081F1DF /* image.cpp in Sources */,
B597EC190FC0835900CE81F5 /* interface.cpp in Sources */,
B54AC6990FEA9E8F006F6FBD /* interface.cpp in Sources */,
B597C5830FACD6CA00CE81F5 /* intro.cpp in Sources */,
B597C5E10FACD6CA00CE81F5 /* key.cpp in Sources */,
B597C57E0FACD6CA00CE81F5 /* label.cpp in Sources */,
B597C5A50FACD6CA00CE81F5 /* label.cpp in Sources */,
B54AC7520FEC3CF9006F6FBD /* label.cpp in Sources */,
B5FCE9291104C2A50081F1DF /* label.cpp in Sources */,
B597C5C30FACD6CA00CE81F5 /* language_selection.cpp in Sources */,
B597C5E20FACD6CA00CE81F5 /* language.cpp in Sources */,
B52EE89F1213590500CFBDAB /* list.cpp in Sources */,
B597C59B0FACD6CA00CE81F5 /* listbox.cpp in Sources */,
B508D207100155F300B12852 /* listbox.cpp in Sources */,
B5FCE92A1104C2A50081F1DF /* listbox.cpp in Sources */,
B597C5480FACD6CA00CE81F5 /* loadscreen.cpp in Sources */,
B55BE04D11234B1A00154E6C /* lobby_data.cpp in Sources */,
B55BE04E11234B1A00154E6C /* lobby_info.cpp in Sources */,
@ -5439,8 +5041,6 @@
B597C5650FACD6CA00CE81F5 /* message.cpp in Sources */,
B597C53B0FACD6CA00CE81F5 /* minimap.cpp in Sources */,
B597C5930FACD6CA00CE81F5 /* minimap.cpp in Sources */,
B54AC7530FEC3CF9006F6FBD /* minimap.cpp in Sources */,
B5FCE92C1104C2A50081F1DF /* minimap.cpp in Sources */,
B597C56C0FACD6CA00CE81F5 /* mouse_events.cpp in Sources */,
B597C5580FACD6CA00CE81F5 /* mouse_handler_base.cpp in Sources */,
B52EE92512135AC300CFBDAB /* move.cpp in Sources */,
@ -5451,18 +5051,13 @@
B5B469251071185800327599 /* mp_game_settings.cpp in Sources */,
B597C5DB0FACD6CA00CE81F5 /* mp_method_selection.cpp in Sources */,
B54AC6FE0FEA9FA5006F6FBD /* multi_page.cpp in Sources */,
B508D208100155F300B12852 /* multi_page.cpp in Sources */,
B5FCE92D1104C2A50081F1DF /* multi_page.cpp in Sources */,
B597C55D0FACD6CA00CE81F5 /* network_worker.cpp in Sources */,
B597C5D70FACD6CA00CE81F5 /* network.cpp in Sources */,
B5CE470E12A0422800D665EE /* old_markup.cpp in Sources */,
B597C5EF0FACD6CA00CE81F5 /* panel.cpp in Sources */,
B54AC83D0FF7F122006F6FBD /* panel.cpp in Sources */,
B5FCE92E1104C2A50081F1DF /* panel.cpp in Sources */,
B597C5ED0FACD6CA00CE81F5 /* parser.cpp in Sources */,
B597EC1A0FC0835900CE81F5 /* part.cpp in Sources */,
B597C5610FACD6CA00CE81F5 /* password_box.cpp in Sources */,
B54AC83E0FF7F122006F6FBD /* password_box.cpp in Sources */,
B55BE03611234AAB00154E6C /* pathfind.cpp in Sources */,
B597C5F70FACD6CA00CE81F5 /* pathutils.cpp in Sources */,
B52EE8EA121359A600CFBDAB /* persist_context.cpp in Sources */,
@ -5477,8 +5072,6 @@
B597C5F80FACD6CA00CE81F5 /* preferences_display.cpp in Sources */,
B597C5E00FACD6CA00CE81F5 /* preferences.cpp in Sources */,
B597C5540FACD6CA00CE81F5 /* preprocessor.cpp in Sources */,
B52EE894121358E100CFBDAB /* progress_bar.cpp in Sources */,
B52EE898121358EF00CFBDAB /* progress_bar.cpp in Sources */,
B52EE8A01213590500CFBDAB /* progress_bar.cpp in Sources */,
B597C5950FACD6CA00CE81F5 /* progressbar.cpp in Sources */,
B597C53A0FACD6CA00CE81F5 /* race.cpp in Sources */,
@ -5487,9 +5080,7 @@
B52EE92712135AC300CFBDAB /* recruit.cpp in Sources */,
B54AC69B0FEA9E8F006F6FBD /* registry.cpp in Sources */,
B597EC1B0FC0835900CE81F5 /* render.cpp in Sources */,
B59271F810E956D600A13911 /* repeating_button.cpp in Sources */,
B59271FC10E9577800A13911 /* repeating_button.cpp in Sources */,
B5FCE92F1104C2A50081F1DF /* repeating_button.cpp in Sources */,
B597C53C0FACD6CA00CE81F5 /* replay_controller.cpp in Sources */,
B597C5850FACD6CA00CE81F5 /* replay.cpp in Sources */,
B597C5780FACD6CA00CE81F5 /* reports.cpp in Sources */,
@ -5499,13 +5090,9 @@
B52EE8ED121359A600CFBDAB /* save_blocker.cpp in Sources */,
B52EE8EF121359A600CFBDAB /* savegame.cpp in Sources */,
B597C5CE0FACD6CA00CE81F5 /* scroll_label.cpp in Sources */,
B508D209100155F300B12852 /* scroll_label.cpp in Sources */,
B5FCE9301104C2A50081F1DF /* scroll_label.cpp in Sources */,
B597C5760FACD6CA00CE81F5 /* scrollarea.cpp in Sources */,
B597C5EE0FACD6CA00CE81F5 /* scrollbar_container.cpp in Sources */,
B54AC6FF0FEA9FA5006F6FBD /* scrollbar_panel.cpp in Sources */,
B508D20A100155F300B12852 /* scrollbar_panel.cpp in Sources */,
B5FCE9311104C2A50081F1DF /* scrollbar_panel.cpp in Sources */,
B597C56F0FACD6CA00CE81F5 /* scrollbar.cpp in Sources */,
B597C7270FACE67E00CE81F5 /* scrollbar.cpp in Sources */,
B597C5B40FACD6CA00CE81F5 /* scrollpane.cpp in Sources */,
@ -5517,17 +5104,11 @@
B5CE470A12A041EF00D665EE /* simple_item_selector.cpp in Sources */,
B597C5A70FACD6CA00CE81F5 /* slider.cpp in Sources */,
B597C71D0FACE4A600CE81F5 /* slider.cpp in Sources */,
B508D20B100155F300B12852 /* slider.cpp in Sources */,
B5FCE9321104C2A50081F1DF /* slider.cpp in Sources */,
B52EE8F0121359A600CFBDAB /* sound_music_track.cpp in Sources */,
B597C5670FACD6CA00CE81F5 /* sound.cpp in Sources */,
B597C58C0FACD6CA00CE81F5 /* soundsource.cpp in Sources */,
B597C54A0FACD6CA00CE81F5 /* spacer.cpp in Sources */,
B54AC83F0FF7F122006F6FBD /* spacer.cpp in Sources */,
B5FCE9331104C2A50081F1DF /* spacer.cpp in Sources */,
B508D20C100155F300B12852 /* stacked_widget.cpp in Sources */,
B508D2171001560100B12852 /* stacked_widget.cpp in Sources */,
B5FCE9341104C2A50081F1DF /* stacked_widget.cpp in Sources */,
B54AC6D60FEA9EB5006F6FBD /* stage_fallback.cpp in Sources */,
B54AC6D70FEA9EB5006F6FBD /* stage_rca.cpp in Sources */,
B59F96E3103478DE00A57C1A /* stage_side_formulas.cpp in Sources */,
@ -5552,8 +5133,6 @@
B597C4AE0FACD42E00CE81F5 /* test_version.cpp in Sources */,
B597EC000FC082AB00CE81F5 /* testing.cpp in Sources */,
B597C5560FACD6CA00CE81F5 /* text_box.cpp in Sources */,
B54AC8400FF7F122006F6FBD /* text_box.cpp in Sources */,
B5FCE9351104C2A50081F1DF /* text_box.cpp in Sources */,
B597C5730FACD6CA00CE81F5 /* text.cpp in Sources */,
B597C5D90FACD6CA00CE81F5 /* text.cpp in Sources */,
B597C5380FACD6CA00CE81F5 /* textbox.cpp in Sources */,
@ -5565,18 +5144,12 @@
B597C5E70FACD6CA00CE81F5 /* title_screen.cpp in Sources */,
B52EE8851213585300CFBDAB /* tod_manager.cpp in Sources */,
B597C5D80FACD6CA00CE81F5 /* toggle_button.cpp in Sources */,
B508D20D100155F300B12852 /* toggle_button.cpp in Sources */,
B5FCE9361104C2A50081F1DF /* toggle_button.cpp in Sources */,
B597C5F00FACD6CA00CE81F5 /* toggle_panel.cpp in Sources */,
B54AC8410FF7F122006F6FBD /* toggle_panel.cpp in Sources */,
B5FCE9371104C2A50081F1DF /* toggle_panel.cpp in Sources */,
B597C58D0FACD6CA00CE81F5 /* tokenizer.cpp in Sources */,
B597C5700FACD6CA00CE81F5 /* tooltips.cpp in Sources */,
B54AC6F40FEA9F92006F6FBD /* transient_message.cpp in Sources */,
B55BE05511234B3300154E6C /* tree_view_node.cpp in Sources */,
B55BE05611234B3300154E6C /* tree_view.cpp in Sources */,
B55BE05A11234B5600154E6C /* tree_view.cpp in Sources */,
B55BE05E11234B6B00154E6C /* tree_view.cpp in Sources */,
B597C5A60FACD6CA00CE81F5 /* tstring.cpp in Sources */,
B597C5990FACD6CA00CE81F5 /* abilities.cpp in Sources */,
B597C5440FACD6CA00CE81F5 /* animation.cpp in Sources */,
@ -5596,25 +5169,18 @@
B597C5E60FACD6CA00CE81F5 /* variant.cpp in Sources */,
B597C5C10FACD6CA00CE81F5 /* version.cpp in Sources */,
B597C57C0FACD6CA00CE81F5 /* vertical_scrollbar.cpp in Sources */,
B508D20E100155F300B12852 /* vertical_scrollbar.cpp in Sources */,
B5FCE9391104C2A50081F1DF /* vertical_scrollbar.cpp in Sources */,
B597C55A0FACD6CA00CE81F5 /* video.cpp in Sources */,
B5B46931107118B200327599 /* widget_definition.cpp in Sources */,
B597C5970FACD6CA00CE81F5 /* widget.cpp in Sources */,
B597C5D60FACD6CA00CE81F5 /* widget.cpp in Sources */,
B597EC5F0FC08E0100CE81F5 /* window_builder.cpp in Sources */,
B597C5D00FACD6CA00CE81F5 /* window.cpp in Sources */,
B5FCE93A1104C2A50081F1DF /* window.cpp in Sources */,
B597C5A40FACD6CA00CE81F5 /* wml_exception.cpp in Sources */,
B597C57B0FACD6CA00CE81F5 /* wml_message.cpp in Sources */,
91F462851C71139C0050A9C9 /* preferences_dialog.cpp in Sources */,
91F462891C7115C50050A9C9 /* combobox.cpp in Sources */,
91F4628D1C7116C40050A9C9 /* combobox.cpp in Sources */,
91F462911C7116E30050A9C9 /* combobox.cpp in Sources */,
91F462951C7117400050A9C9 /* drop_down_list.cpp in Sources */,
9130A4611C73BB6100852782 /* select_orb_colors.cpp in Sources */,
91DCA6821C90668E0030F8D0 /* unit_preview_pane.cpp in Sources */,
91DCA6861C9066A60030F8D0 /* unit_preview_pane.cpp in Sources */,
91DCA68A1C9066CC0030F8D0 /* unit_preview_pane.cpp in Sources */,
91DCA68E1C9066EC0030F8D0 /* unit_recruit.cpp in Sources */,
91DCA6901C9360610030F8D0 /* test_formula_core.cpp in Sources */,

View file

@ -587,37 +587,8 @@ set(wesnoth-gui_widget_SRC
gui/widgets/widget.cpp
gui/widgets/window.cpp
gui/auxiliary/window_builder.cpp
gui/auxiliary/window_builder/button.cpp
gui/auxiliary/window_builder/combobox.cpp
gui/auxiliary/window_builder/control.cpp
gui/auxiliary/window_builder/drawing.cpp
gui/auxiliary/window_builder/helper.cpp
gui/auxiliary/window_builder/horizontal_listbox.cpp
gui/auxiliary/window_builder/horizontal_scrollbar.cpp
gui/auxiliary/window_builder/instance.cpp
gui/auxiliary/window_builder/image.cpp
gui/auxiliary/window_builder/label.cpp
gui/auxiliary/window_builder/listbox.cpp
gui/auxiliary/window_builder/matrix.cpp
gui/auxiliary/window_builder/minimap.cpp
gui/auxiliary/window_builder/multi_page.cpp
gui/auxiliary/window_builder/pane.cpp
gui/auxiliary/window_builder/panel.cpp
gui/auxiliary/window_builder/password_box.cpp
gui/auxiliary/window_builder/progress_bar.cpp
gui/auxiliary/window_builder/repeating_button.cpp
gui/auxiliary/window_builder/scroll_label.cpp
gui/auxiliary/window_builder/scrollbar_panel.cpp
gui/auxiliary/window_builder/slider.cpp
gui/auxiliary/window_builder/spacer.cpp
gui/auxiliary/window_builder/stacked_widget.cpp
gui/auxiliary/window_builder/text_box.cpp
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
)
add_library(wesnoth-gui_widget
@ -642,31 +613,6 @@ target_link_libraries(wesnoth-gui_widget
# its own structures. The definitions define the looks of the widgets.
set(wesnoth-gui_widget_definition_SRC
gui/auxiliary/widget_definition.cpp
gui/auxiliary/widget_definition/button.cpp
gui/auxiliary/widget_definition/combobox.cpp
gui/auxiliary/widget_definition/drawing.cpp
gui/auxiliary/widget_definition/horizontal_scrollbar.cpp
gui/auxiliary/widget_definition/image.cpp
gui/auxiliary/widget_definition/label.cpp
gui/auxiliary/widget_definition/listbox.cpp
gui/auxiliary/widget_definition/matrix.cpp
gui/auxiliary/widget_definition/minimap.cpp
gui/auxiliary/widget_definition/multi_page.cpp
gui/auxiliary/widget_definition/panel.cpp
gui/auxiliary/widget_definition/progress_bar.cpp
gui/auxiliary/widget_definition/repeating_button.cpp
gui/auxiliary/widget_definition/scroll_label.cpp
gui/auxiliary/widget_definition/scrollbar_panel.cpp
gui/auxiliary/widget_definition/slider.cpp
gui/auxiliary/widget_definition/spacer.cpp
gui/auxiliary/widget_definition/stacked_widget.cpp
gui/auxiliary/widget_definition/text_box.cpp
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
)
add_library(wesnoth-gui_widget_definition

View file

@ -345,63 +345,9 @@ wesnoth_sources = Split("""
gui/auxiliary/timer.cpp
gui/auxiliary/tips.cpp
gui/auxiliary/widget_definition.cpp
gui/auxiliary/widget_definition/button.cpp
gui/auxiliary/widget_definition/combobox.cpp
gui/auxiliary/widget_definition/drawing.cpp
gui/auxiliary/widget_definition/horizontal_scrollbar.cpp
gui/auxiliary/widget_definition/image.cpp
gui/auxiliary/widget_definition/label.cpp
gui/auxiliary/widget_definition/listbox.cpp
gui/auxiliary/widget_definition/matrix.cpp
gui/auxiliary/widget_definition/minimap.cpp
gui/auxiliary/widget_definition/multi_page.cpp
gui/auxiliary/widget_definition/panel.cpp
gui/auxiliary/widget_definition/progress_bar.cpp
gui/auxiliary/widget_definition/repeating_button.cpp
gui/auxiliary/widget_definition/scroll_label.cpp
gui/auxiliary/widget_definition/scrollbar_panel.cpp
gui/auxiliary/widget_definition/slider.cpp
gui/auxiliary/widget_definition/spacer.cpp
gui/auxiliary/widget_definition/stacked_widget.cpp
gui/auxiliary/widget_definition/text_box.cpp
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
gui/auxiliary/window_builder/button.cpp
gui/auxiliary/window_builder/combobox.cpp
gui/auxiliary/window_builder/control.cpp
gui/auxiliary/window_builder/drawing.cpp
gui/auxiliary/window_builder/helper.cpp
gui/auxiliary/window_builder/horizontal_listbox.cpp
gui/auxiliary/window_builder/horizontal_scrollbar.cpp
gui/auxiliary/window_builder/instance.cpp
gui/auxiliary/window_builder/image.cpp
gui/auxiliary/window_builder/label.cpp
gui/auxiliary/window_builder/listbox.cpp
gui/auxiliary/window_builder/matrix.cpp
gui/auxiliary/window_builder/minimap.cpp
gui/auxiliary/window_builder/multi_page.cpp
gui/auxiliary/window_builder/pane.cpp
gui/auxiliary/window_builder/panel.cpp
gui/auxiliary/window_builder/password_box.cpp
gui/auxiliary/window_builder/progress_bar.cpp
gui/auxiliary/window_builder/repeating_button.cpp
gui/auxiliary/window_builder/scroll_label.cpp
gui/auxiliary/window_builder/scrollbar_panel.cpp
gui/auxiliary/window_builder/slider.cpp
gui/auxiliary/window_builder/spacer.cpp
gui/auxiliary/window_builder/stacked_widget.cpp
gui/auxiliary/window_builder/text_box.cpp
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
gui/dialogs/addon/filter_options.cpp
gui/dialogs/addon/uninstall_list.cpp

View file

@ -1,70 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/button.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tbutton_definition::tbutton_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing button " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_button
*
* == Button ==
*
* @macro = button_description
*
* The following states exist:
* * state_enabled, the button is enabled.
* * state_disabled, the button is disabled.
* * state_pressed, the left mouse button is down.
* * state_focused, the mouse is over the button.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="button_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_pressed"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_pressed"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="button_definition"}
* @end{parent}{name="gui/"}
*/
tbutton_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in button.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_pressed")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_BUTTON_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_BUTTON_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tbutton_definition : public tcontrol_definition
{
explicit tbutton_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,70 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/combobox.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tcombobox_definition::tcombobox_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing combobox " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_combobox
*
* == combobox ==
*
* @macro = combobox_description
*
* The following states exist:
* * state_enabled, the combobox is enabled.
* * state_disabled, the combobox is disabled.
* * state_pressed, the left mouse combobox is down.
* * state_focused, the mouse is over the combobox.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="combobox_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_pressed"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_pressed"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="combobox_definition"}
* @end{parent}{name="gui/"}
*/
tcombobox_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in combobox.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_pressed")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,32 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tcombobox_definition : public tcontrol_definition
{
explicit tcombobox_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2

View file

@ -1,68 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/drawing.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tdrawing_definition::tdrawing_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing drawing " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_drawing
*
* == Drawing ==
*
* @macro = drawing_description
*
* The definition of a drawing. The widget normally has no event interaction
* so only one state is defined.
*
* The following states exist:
* * state_enabled
* the drawing is enabled. The state is a dummy since the
* things really drawn are placed in the window instance.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="drawing_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="drawing_definition"}
* @end{parent}{name="gui/"}
*/
tdrawing_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
/*
* Note the order should be the same as the enum tstate in drawing.hpp.
* Normally the [draw] section is in the config, but for this widget the
* original draw section is ignored, so send a dummy.
*/
static const config dummy("draw");
state.push_back(tstate_definition(dummy));
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_DRAWING_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_DRAWING_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tdrawing_definition : public tcontrol_definition
{
explicit tdrawing_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,100 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/horizontal_scrollbar.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
thorizontal_scrollbar_definition::thorizontal_scrollbar_definition(
const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing horizontal scrollbar " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_vertical_scrollbar
*
* == Horizontal scrollbar ==
*
* @macro = horizontal_scrollbar_description
* @begin{parent}{name="gui/"}
* @begin{tag}{name="horizontal_scrollbar_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* The resolution for a horizontal scrollbar also contains the following keys:
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{table}{config}
* minimum_positioner_length & unsigned & &
* The minimum size the positioner is
* allowed to be. The engine needs to know
* this in order to calculate the best size
* for the positioner. $
* maximum_positioner_length & unsigned & 0 &
* The maximum size the positioner is
* allowed to be. If minimum and maximum are
* the same value the positioner is fixed
* size. If the maximum is 0 (and the
* minimum not) there's no maximum. $
* left_offset & unsigned & 0 & The number of pixels at the left which
* can't be used by the positioner. $
* right_offset & unsigned & 0 & The number of pixels at the right which
* can't be used by the positioner. $
* @end{table}
*
* The following states exist:
* * state_enabled, the horizontal scrollbar is enabled.
* * state_disabled, the horizontal scrollbar is disabled.
* * state_pressed, the left mouse button is down on the positioner of the
* horizontal scrollbar.
* * state_focused, the mouse is over the positioner of the horizontal
* scrollbar.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_pressed"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_pressed"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="horizontal_scrollbar_definition"}
* @end{parent}{name="gui/"}
*/
thorizontal_scrollbar_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, minimum_positioner_length(cfg["minimum_positioner_length"])
, maximum_positioner_length(cfg["maximum_positioner_length"])
, left_offset(cfg["left_offset"])
, right_offset(cfg["right_offset"])
{
VALIDATE(minimum_positioner_length,
missing_mandatory_wml_key("resolution",
"minimum_positioner_length"));
// Note the order should be the same as the enum tstate is scrollbar.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_pressed")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,41 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_HORIZONTAL_SCROLLBAR_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_HORIZONTAL_SCROLLBAR_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct thorizontal_scrollbar_definition : public tcontrol_definition
{
explicit thorizontal_scrollbar_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
unsigned minimum_positioner_length;
unsigned maximum_positioner_length;
unsigned left_offset;
unsigned right_offset;
};
};
} // namespace gui2
#endif

View file

@ -1,62 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/image.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
timage_definition::timage_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing image " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_image
*
* == Image ==
*
* @macro = image_description
*
* The definition of an image. The label field of the widget is used as the
* name of file to show. The widget normally has no event interaction so only
* one state is defined.
*
* The following states exist:
* * state_enabled, the image is enabled.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="image_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="image_definition"}
* @end{parent}{name="gui/"}
*/
timage_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in image.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_IMAGE_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_IMAGE_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct timage_definition : public tcontrol_definition
{
explicit timage_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,80 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/label.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tlabel_definition::tlabel_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing label " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_label
*
* == Label ==
*
* @macro = label_description
*
* Although the label itself has no event interaction it still has two states.
* The reason is that labels are often used as visual indication of the state
* of the widget it labels.
*
* Note: The above is outdated, if "link_aware" is enabled then there is interaction.
*
*
* The following states exist:
* * state_enabled, the label is enabled.
* * state_disabled, the label is disabled.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="label_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{table}{config}
* link_aware & f_bool & false & Whether the label is link aware. This means
* it is rendered with links highlighted,
* and responds to click events on those
* links. $
* link_color & string & #ffff00 & The color to render links with. This
* string will be used verbatim in pango
* markup for each link. $
* @end{table}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="label_definition"}
* @end{parent}{name="gui/"}
*/
tlabel_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, link_aware(cfg["link_aware"].to_bool(false))
, link_color(cfg["link_color"].str().size() > 0 ? cfg["link_color"].str() : "#ffff00")
{
// Note the order should be the same as the enum tstate is label.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
}
} // namespace gui2

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_LABEL_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_LABEL_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tlabel_definition : public tcontrol_definition
{
explicit tlabel_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
bool link_aware;
std::string link_color;
};
};
} // namespace gui2
#endif

View file

@ -1,126 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/listbox.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tlistbox_definition::tlistbox_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing listbox " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_listbox
* @begin{parent}{name="gui/"}
* @begin{tag}{name="listbox_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* == Listbox ==
*
* @macro = listbox_description
*
* The definition of a listbox contains the definition of its scrollbar.
*
* The resolution for a listbox also contains the following keys:
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super=generic/widget_definition/resolution}
* @begin{table}{config}
* scrollbar & section & & A grid containing the widgets for the
* scrollbar. The scrollbar has some special
* widgets so it can make default behavior
* for certain widgets. $
* @end{table}
* @begin{table}{dialog_widgets}
* _begin & & clickable & o & Moves the position to the beginning
* of the list. $
* _line_up & & clickable & o & Move the position one item up. (NOTE
* if too many items to move per item it
* might be more items.) $
* _half_page_up & & clickable & o &
* Move the position half the number of the
* visible items up. (See note at
* _line_up.) $
* _page_up & & clickable & o & Move the position the number of
* visible items up. (See note at
* _line_up.) $
*
* _end & & clickable & o & Moves the position to the end of the
* list. $
* _line_down & & clickable & o & Move the position one item down.(See
* note at _line_up.) $
* _half_page_down & & clickable & o &
* Move the position half the number of the
* visible items down. (See note at
* _line_up.) $
* _page_down & & clickable & o & Move the position the number of
* visible items down. (See note at
* _line_up.) $
*
* _scrollbar & & vertical_scrollbar & m &
* This is the scrollbar so the user can
* scroll through the list. $
* @end{table}
* A clickable is one of:
* * button
* * repeating_button
* @{allow}{link}{name="gui/window/resolution/grid/row/column/button"}
* @{allow}{link}{name="gui/window/resolution/grid/row/column/repeating_button"}
* The following states exist:
* * state_enabled, the listbox is enabled.
* * state_disabled, the listbox is disabled.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @allow{link}{name="gui/window/resolution/grid"}
* @end{tag}{name="resolution"}
* @end{tag}{name="listbox_definition"}
* @end{parent}{name="gui/"}
*/
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_horizonal_listbox
*
* == Horizontal listbox ==
* @begin{parent}{name="gui/"}
* @begin{tag}{name="horizontal_listbox_definition"}{min=0}{max=-1}{super="gui/listbox_definition"}
* @end{tag}{name="horizontal_listbox_definition"}
* @end{parent}{name="gui/"}
* @macro = horizontal_listbox_description
* The definition of a horizontal listbox is the same as for a normal listbox.
*/
tlistbox_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid(NULL)
{
// Note the order should be the same as the enum tstate in listbox.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
const config& child = cfg.child("grid");
VALIDATE(child, _("No grid defined."));
grid = new tbuilder_grid(child);
}
} // namespace gui2

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_LISTBOX_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_LISTBOX_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct tlistbox_definition : public tcontrol_definition
{
explicit tlistbox_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -1,63 +0,0 @@
/*
Copyright (C) 2012 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/matrix.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tmatrix_definition::tmatrix_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing matrix " << id << '\n';
load_resolutions<tresolution>(cfg);
}
tmatrix_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, content(new tbuilder_grid(cfg.child("content", "[matrix_definition]")))
{
// Note the order should be the same as the enum tstate in matrix.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
}
} // namespace gui2
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_matrix
* @begin{parent}{name="gui/"}
* @begin{tag}{name="matrix_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* == Listbox ==
*
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super=generic/widget_definition/resolution}
*
*
* @begin{tag}{name="state_enabled"}{min=1}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=1}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="content"}{min=1}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="content"}
* @end{tag}{name="resolution"}
* @end{tag}{name="matrix_definition"}
* @end{parent}{name="gui/"}
*/

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2012 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_MATRIX_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_MATRIX_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct tmatrix_definition : public tcontrol_definition
{
explicit tmatrix_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr content;
};
};
} // namespace gui2
#endif

View file

@ -1,58 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/minimap.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tminimap_definition::tminimap_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing minimap " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_minimap
*
* == Minimap ==
*
* @macro = minimap_description
*
* The following states exist:
* * state_enabled, the minimap is enabled.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="minimap_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="minimap_definition"}
* @end{parent}{name="gui/"}
*/
tminimap_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in minimap.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_MINIMAP_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_MINIMAP_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tminimap_definition : public tcontrol_definition
{
explicit tminimap_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,64 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/multi_page.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tmulti_page_definition::tmulti_page_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing multipage " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_multi_page
*
* == Multi page ==
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="multi_page_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @macro = multi_page_description
*
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{table}{config}
* grid & grid & & A grid containing the widgets for main
* widget. $
* @end{table}
* @allow{link}{name="gui/window/resolution/grid"}
* @end{tag}{name="resolution"}
* @end{tag}{name="multi_page_definition"}
* @end{parent}{name="gui/"}
* A multipage has no states.
*/
tmulti_page_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid(NULL)
{
const config& child = cfg.child("grid");
VALIDATE(child, _("No grid defined."));
grid = new tbuilder_grid(child);
}
} // namespace gui2

View file

@ -1,38 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_MULTI_PAGE_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_MULTI_PAGE_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct tmulti_page_definition : public tcontrol_definition
{
explicit tmulti_page_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -1,82 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/panel.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tpanel_definition::tpanel_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing panel " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_panel
*
* == Panel ==
*
* @macro = panel_description
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="panel_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* A panel is always enabled and can't be disabled. Instead it uses the
* states as layers to draw on.
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* The resolution for a panel also contains the following keys:
* @begin{table}{config}
* top_border & unsigned & 0 & The size which isn't used for the client
* area. $
* bottom_border & unsigned & 0 & The size which isn't used for the client
* area. $
* left_border & unsigned & 0 & The size which isn't used for the client
* area. $
* right_border & unsigned & 0 & The size which isn't used for the client
* area. $
* @end{table}
*
* The following layers exist:
* * background, the background of the panel.
* * foreground, the foreground of the panel.
* @begin{tag}{name="foreground"}{min=0}{max=1}
* @allow{link}{name="generic/state/draw"}
* @end{tag}{name="foreground"}
* @begin{tag}{name="background"}{min=0}{max=1}
* @allow{link}{name="generic/state/draw"}
* @end{tag}{name="background"}
* @end{tag}{name="resolution"}
* @end{tag}{name="panel_definition"}
* @end{parent}{name="gui/"}
*/
tpanel_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, top_border(cfg["top_border"])
, bottom_border(cfg["bottom_border"])
, left_border(cfg["left_border"])
, right_border(cfg["right_border"])
{
// The panel needs to know the order.
state.push_back(tstate_definition(cfg.child("background")));
state.push_back(tstate_definition(cfg.child("foreground")));
}
} // namespace gui2

View file

@ -1,41 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_PANEL_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_PANEL_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tpanel_definition : public tcontrol_definition
{
explicit tpanel_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
unsigned top_border;
unsigned bottom_border;
unsigned left_border;
unsigned right_border;
};
};
} // namespace gui2
#endif

View file

@ -1,61 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/progress_bar.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tprogress_bar_definition::tprogress_bar_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing progress bar " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_progress_bar
*
* == Progress bar ==
*
* @macro = progress_bar_description
*
* The definition of a progress bar. This object shows the progress of a certain
* action, or the value state of a certain item.
*
* The following states exist:
* * state_enabled, the progress bar is enabled.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="progress_bar_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="progress_bar_definition"}
* @end{parent}{name="gui/"}
*/
tprogress_bar_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in progress_bar.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_PROGRESS_BAR_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_PROGRESS_BAR_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tprogress_bar_definition : public tcontrol_definition
{
explicit tprogress_bar_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,71 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/repeating_button.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
trepeating_button_definition::trepeating_button_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing repeating button " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_repeating_button
*
* == Repeating button ==
*
* @macro = repeating_button_description
*
* The following states exist:
* * state_enabled, the repeating_button is enabled.
* * state_disabled, the repeating_button is disabled.
* * state_pressed, the left mouse repeating_button is down.
* * state_focused, the mouse is over the repeating_button.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="repeating_button_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_pressed"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_pressed"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="repeating_button_definition"}
* @end{parent}{name="gui/"}
*/
trepeating_button_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in
// repeating_button.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_pressed")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_REPEATING_BUTTON_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_REPEATING_BUTTON_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct trepeating_button_definition : public tcontrol_definition
{
explicit trepeating_button_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,89 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/scroll_label.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tscroll_label_definition::tscroll_label_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing scroll label " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_scroll_label
*
* == Scroll label ==
*
* @macro = scroll_label_description
*
* @begin{parent}{name="gui/"}
* This widget is slower as a normal label widget so only use this widget
* when the scrollbar is required (or expected to become required).
* @begin{tag}{name="scroll_label_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{table}{config}
* grid & grid & & A grid containing the widgets for main
* widget. $
* @end{table}
* @allow{link}{name="gui/window/resolution/grid"}
* TODO we need one definition for a vertical scrollbar since this is the second
* time we use it.
*
* @begin{table}{dialog_widgets}
* _content_grid & & grid & m & A grid which should only contain one
* label widget. $
* _scrollbar_grid & & grid & m & A grid for the scrollbar
* (Merge with listbox info.) $
* @end{table}
* @begin{tag}{name="content_grid"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="content_grid"}
* @begin{tag}{name="scrollbar_grid"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="scrollbar_grid"}
* The following states exist:
* * state_enabled, the scroll label is enabled.
* * state_disabled, the scroll label is disabled.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="scroll_label_definition"}
* @end{parent}{name="gui/"}
*/
tscroll_label_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid(NULL)
{
// Note the order should be the same as the enum tstate is scroll_label.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
const config& child = cfg.child("grid");
VALIDATE(child, _("No grid defined."));
grid = new tbuilder_grid(child);
}
} // namespace gui2

View file

@ -1,38 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_SCROLL_LABEL_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_SCROLL_LABEL_HPP_INCLUDED
#include "gui/auxiliary/window_builder.hpp"
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tscroll_label_definition : public tcontrol_definition
{
explicit tscroll_label_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -1,72 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/scrollbar_panel.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tscrollbar_panel_definition::tscrollbar_panel_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing scrollbar panel " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_scrollbar_panel
*
* == Scrollbar panel ==
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="scrollbar_panel_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="gui/window_definition/resolution"}
* The definition of a panel with scrollbars. A panel is a container holding
* other elements in its grid. A panel is always enabled and can't be
* disabled. Instead it uses the states as layers to draw on.
*
* @begin{table}{config}
* grid & grid & & A grid containing the widgets for main
* widget. $
* @end{table}
* The following layers exist:
* * background, the background of the panel.
* * foreground, the foreground of the panel.
*
* @end{tag}{name="resolution"}
* @end{tag}{name="scrollbar_panel_definition"}
* @end{parent}{name="gui/"}
*/
tscrollbar_panel_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid()
{
// The panel needs to know the order.
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);
}
} // namespace gui2

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_SCROLLBAR_PANEL_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_SCROLLBAR_PANEL_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct tscrollbar_panel_definition : public tcontrol_definition
{
explicit tscrollbar_panel_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -1,98 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/slider.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tslider_definition::tslider_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing slider " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_slider
*
* == Slider ==
*
* @macro = slider_description
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="slider_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{table}{config}
* minimum_positioner_length & unsigned & &
* The minimum size the positioner is
* allowed to be. The engine needs to know
* this in order to calculate the best size
* for the positioner. $
* maximum_positioner_length & unsigned & 0 &
* The maximum size the positioner is
* allowed to be. If minimum and maximum are
* the same value the positioner is fixed
* size. If the maximum is 0 (and the
* minimum not) there's no maximum. $
* left_offset & unsigned & 0 & The number of pixels at the left side
* which can't be used by the positioner. $
* right_offset & unsigned & 0 & The number of pixels at the right side
* which can't be used by the positioner. $
* @end{table}
*
* The following states exist:
* * state_enabled, the slider is enabled.
* * state_disabled, the slider is disabled.
* * state_pressed, the left mouse button is down on the positioner of the
* slider.
* * state_focused, the mouse is over the positioner of the slider.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_pressed"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_pressed"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="slider_definition"}
* @end{parent}{name="gui/"}
*/
tslider_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, minimum_positioner_length(cfg["minimum_positioner_length"])
, maximum_positioner_length(cfg["maximum_positioner_length"])
, left_offset(cfg["left_offset"])
, right_offset(cfg["right_offset"])
{
VALIDATE(minimum_positioner_length,
missing_mandatory_wml_key("resolution",
"minimum_positioner_length"));
// Note the order should be the same as the enum tstate is slider.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_pressed")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,41 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_SLIDER_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_SLIDER_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tslider_definition : public tcontrol_definition
{
explicit tslider_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
unsigned minimum_positioner_length;
unsigned maximum_positioner_length;
unsigned left_offset;
unsigned right_offset;
};
};
} // namespace gui2
#endif

View file

@ -1,51 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/spacer.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
tspacer_definition::tspacer_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing spacer " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_spacer
*
* == Spacer ==
*
* @macro = spacer_description
*
* A spacer has no states so nothing to load.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="spacer_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @end{tag}{name="spacer_definition"}
* @end{parent}{name="gui/"}
*/
tspacer_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_SPACER_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_SPACER_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tspacer_definition : public tcontrol_definition
{
explicit tspacer_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,67 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/stacked_widget.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tstacked_widget_definition::tstacked_widget_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing stacked widget " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_stacked_widget
*
* == Stacked widget ==
*
* A stacked widget holds several widgets on top of each other. This can be used
* for various effects; add an optional overlay to an image, stack it with a
* spacer to force a minimum size of a widget. The latter is handy to avoid
* making a separate definition for a single instance with a fixed size.
*
* A stacked widget has no states.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="stacked_widget_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @allow{link}{name="gui/window/resolution/grid"}
* @end{tag}{name="resolution"}
* @end{tag}{name="stacked_widget_definition"}
* @end{parent}{name="gui/"}
*/
tstacked_widget_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid(NULL)
{
// Add a dummy state since every widget needs a state.
static config dummy("draw");
state.push_back(tstate_definition(dummy));
const config& child = cfg.child("grid");
VALIDATE(child, _("No grid defined."));
grid = new tbuilder_grid(child);
}
} // namespace gui2

View file

@ -1,38 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_STACKED_WIDGET_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_STACKED_WIDGET_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct tstacked_widget_definition : public tcontrol_definition
{
explicit tstacked_widget_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -1,79 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/text_box.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
ttext_box_definition::ttext_box_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing text_box " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_text_box
*
* == Text box ==
*
* The definition of a text box.
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="text_box_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* The resolution for a text box also contains the following keys:
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super=generic/widget_definition/resolution}
* @begin{table}{config}
* text_x_offset & f_unsigned & "" & The x offset of the text in the text
* box. This is needed for the code to
* determine where in the text the mouse
* clicks, so it can set the cursor
* properly. $
* text_y_offset & f_unsigned & "" & The y offset of the text in the text
* box. $
* @end{table}
*
* The following states exist:
* * state_enabled, the text box is enabled.
* * state_disabled, the text box is disabled.
* * state_focused, the text box has the focus of the keyboard.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="text_box_definition"}
* @end{parent}{name="gui/"}
*/
ttext_box_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, text_x_offset(cfg["text_x_offset"])
, text_y_offset(cfg["text_y_offset"])
{
// Note the order should be the same as the enum tstate in text_box.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_TEXT_BOX_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_TEXT_BOX_HPP_INCLUDED
#include "gui/auxiliary/formula.hpp"
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct ttext_box_definition : public tcontrol_definition
{
explicit ttext_box_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tformula<unsigned> text_x_offset;
tformula<unsigned> text_y_offset;
};
};
} // namespace gui2
#endif

View file

@ -1,80 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/toggle_button.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
ttoggle_button_definition::ttoggle_button_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing toggle button " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_toggle_button
*
* == Toggle button ==
*
* The definition of a toggle button.
*
* The following states exist:
* * state_enabled, the button is enabled and not selected.
* * state_disabled, the button is disabled and not selected.
* * state_focused, the mouse is over the button and not selected.
*
* * state_enabled_selected, the button is enabled and selected.
* * state_disabled_selected, the button is disabled and selected.
* * state_focused_selected, the mouse is over the button and selected.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="toggle_button_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @begin{tag}{name="state_enabled_selected"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled_selected"}
* @begin{tag}{name="state_disabled_selected"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled_selected"}
* @begin{tag}{name="state_focused_selected"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused_selected"}
* @end{tag}{name="resolution"}
* @end{tag}{name="toggle_button_definition"}
* @end{parent}{name="gui/"}
*/
ttoggle_button_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
{
// Note the order should be the same as the enum tstate in
// toggle_button.hpp.
FOREACH(const AUTO& c, cfg.child_range("state"))
{
state.push_back(tstate_definition(c.child("enabled")));
state.push_back(tstate_definition(c.child("disabled")));
state.push_back(tstate_definition(c.child("focused")));
}
}
} // namespace gui2

View file

@ -1,35 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_TOGGLE_BUTTON_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_TOGGLE_BUTTON_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct ttoggle_button_definition : public tcontrol_definition
{
explicit ttoggle_button_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
};
};
} // namespace gui2
#endif

View file

@ -1,97 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/toggle_panel.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
ttoggle_panel_definition::ttoggle_panel_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing toggle panel " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_toggle_panel
*
* == Toggle panel ==
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="toggle_panel_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* The definition of a toggle panel. A toggle panel is like a toggle button, but
* instead of being a button it's a panel. This means it can hold multiple child
* items.
*
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super=generic/widget_definition/resolution}
* The resolution for a toggle panel also contains the following keys:
* @begin{table}{config}
* top_border & unsigned & 0 & The size which isn't used for the client
* area. $
* bottom_border & unsigned & 0 & The size which isn't used for the client
* area. $
* left_border & unsigned & 0 & The size which isn't used for the client
* area. $
* right_border & unsigned & 0 & The size which isn't used for the client
* area. $
* @end{table}
*
* The following states exist:
* * state_enabled, the panel is enabled and not selected.
* * state_disabled, the panel is disabled and not selected.
* * state_focused, the mouse is over the panel and not selected.
*
* * state_enabled_selected, the panel is enabled and selected.
* * state_disabled_selected, the panel is disabled and selected.
* * state_focused_selected, the mouse is over the panel and selected.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @begin{tag}{name="state_enabled_selected"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled_selected"}
* @begin{tag}{name="state_disabled_selected"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled_selected"}
* @begin{tag}{name="state_focused_selected"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused_selected"}
* @end{tag}{name="resolution"}
* @end{tag}{name="toggle_panel_definition"}
* @end{parent}{name="gui/"}
*/
ttoggle_panel_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, top_border(cfg["top_border"])
, bottom_border(cfg["bottom_border"])
, left_border(cfg["left_border"])
, right_border(cfg["right_border"])
{
// Note the order should be the same as the enum tstate in toggle_panel.hpp.
FOREACH(const AUTO& c, cfg.child_range("state"))
{
state.push_back(tstate_definition(c.child("enabled")));
state.push_back(tstate_definition(c.child("disabled")));
state.push_back(tstate_definition(c.child("focused")));
}
}
} // namespace gui2

View file

@ -1,41 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_TOGGLE_PANEL_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_TOGGLE_PANEL_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct ttoggle_panel_definition : public tcontrol_definition
{
explicit ttoggle_panel_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
unsigned top_border;
unsigned bottom_border;
unsigned left_border;
unsigned right_border;
};
};
} // namespace gui2
#endif

View file

@ -1,72 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/tree_view.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
ttree_view_definition::ttree_view_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing tree view " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_tree_view
*
* == Tree view ==
*
* @macro = tree_view_description
*
* The documentation is not written yet.
*
* The following states exist:
* * state_enabled, the listbox is enabled.
* * state_disabled, the listbox is disabled.
* @begin{parent}{name="gui/"}
* @begin{tag}{name="tree_view_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="generic/widget_definition/resolution"}
* @allow{link}{name="gui/window/resolution/grid"}
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @end{tag}{name="resolution"}
* @end{tag}{name="tree_view_definition"}
* @end{parent}{name="gui/"}
*/
ttree_view_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg), grid(NULL)
{
// Note the order should be the same as the enum tstate is listbox.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
const config& child = cfg.child("grid");
VALIDATE(child, _("No grid defined."));
grid = new tbuilder_grid(child);
}
} // namespace gui2

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_TREE_VIEW_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_TREE_VIEW_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct ttree_view_definition : public tcontrol_definition
{
explicit ttree_view_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -1,45 +0,0 @@
/*
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);
}
}

View file

@ -1,38 +0,0 @@
/*
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

View file

@ -1,100 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/vertical_scrollbar.hpp"
#include "gui/auxiliary/log.hpp"
#include "wml_exception.hpp"
namespace gui2
{
tvertical_scrollbar_definition::tvertical_scrollbar_definition(
const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing vertical scrollbar " << id << '\n';
load_resolutions<tresolution>(cfg);
}
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_vertical_scrollbar
*
* == Vertical scrollbar ==
*
* The definition of a vertical scrollbar. This class is most of the time not
* used directly. Instead it's used to build other items with scrollbars.
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="vertical_scrollbar_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* The resolution for a vertical scrollbar also contains the following keys:
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super=generic/widget_definition/resolution}
* @begin{table}{config}
* minimum_positioner_length & unsigned & &
* The minimum size the positioner is
* allowed to be. The engine needs to know
* this in order to calculate the best size
* for the positioner. $
* maximum_positioner_length & unsigned & 0 &
* The maximum size the positioner is
* allowed to be. If minimum and maximum are
* the same value the positioner is fixed
* size. If the maximum is 0 (and the
* minimum not) there's no maximum. $
* top_offset & unsigned & 0 & The number of pixels at the top which
* can't be used by the positioner. $
* bottom_offset & unsigned & 0 & The number of pixels at the bottom which
* can't be used by the positioner. $
* @end{table}
* The following states exist:
* * state_enabled, the vertical scrollbar is enabled.
* * state_disabled, the vertical scrollbar is disabled.
* * state_pressed, the left mouse button is down on the positioner of the
* vertical scrollbar.
* * state_focused, the mouse is over the positioner of the vertical scrollbar.
* @begin{tag}{name="state_enabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_enabled"}
* @begin{tag}{name="state_disabled"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_disabled"}
* @begin{tag}{name="state_pressed"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_pressed"}
* @begin{tag}{name="state_focused"}{min=0}{max=1}{super="generic/state"}
* @end{tag}{name="state_focused"}
* @end{tag}{name="resolution"}
* @end{tag}{name="vertical_scrollbar_definition"}
* @end{parent}{name="gui/"}
*/
tvertical_scrollbar_definition::tresolution::tresolution(const config& cfg)
: tresolution_definition_(cfg)
, minimum_positioner_length(cfg["minimum_positioner_length"])
, maximum_positioner_length(cfg["maximum_positioner_length"])
, top_offset(cfg["top_offset"])
, bottom_offset(cfg["bottom_offset"])
{
VALIDATE(minimum_positioner_length,
missing_mandatory_wml_key("resolution",
"minimum_positioner_length"));
// Note the order should be the same as the enum tstate in scrollbar.hpp.
state.push_back(tstate_definition(cfg.child("state_enabled")));
state.push_back(tstate_definition(cfg.child("state_disabled")));
state.push_back(tstate_definition(cfg.child("state_pressed")));
state.push_back(tstate_definition(cfg.child("state_focused")));
}
} // namespace gui2

View file

@ -1,41 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_VERTICAL_SCROLLBAR_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_VERTICAL_SCROLLBAR_HPP_INCLUDED
#include "gui/auxiliary/widget_definition.hpp"
namespace gui2
{
struct tvertical_scrollbar_definition : public tcontrol_definition
{
explicit tvertical_scrollbar_definition(const config& cfg);
struct tresolution : public tresolution_definition_
{
explicit tresolution(const config& cfg);
unsigned minimum_positioner_length;
unsigned maximum_positioner_length;
unsigned top_offset;
unsigned bottom_offset;
};
};
} // namespace gui2
#endif

View file

@ -1,63 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/widget_definition/window.hpp"
#include "gui/auxiliary/log.hpp"
namespace gui2
{
/*WIKI
* @page = GUIWidgetDefinitionWML
* @order = 1_window
*
* == Window ==
*
* The definition of a window. A window is a kind of panel see the panel for
* which fields exist
*
* @begin{parent}{name="gui/"}
* @begin{tag}{name="window_definition"}{min=0}{max=-1}{super="generic/widget_definition"}
* @begin{tag}{name="resolution"}{min=0}{max=-1}{super="gui/panel_definition/resolution"}
* @allow{link}{name="gui/window/resolution/grid"}
* @allow{link}{name="gui/panel_definition/resolution/background"}
* @allow{link}{name="gui/panel_definition/resolution/foreground"}
* @end{tag}{name="resolution"}
* @end{tag}{name="window_definition"}
* @end{parent}{name="gui/"}
*/
twindow_definition::twindow_definition(const config& cfg)
: tcontrol_definition(cfg)
{
DBG_GUI_P << "Parsing window " << id << '\n';
load_resolutions<tresolution>(cfg);
}
twindow_definition::tresolution::tresolution(const config& cfg)
: tpanel_definition::tresolution(cfg), grid(NULL)
{
const config& child = cfg.child("grid");
// VALIDATE(child, _("No grid defined."));
/** @todo Evaluate whether the grid should become mandatory. */
if(child) {
grid = new tbuilder_grid(child);
}
}
} // namespace gui2

View file

@ -1,38 +0,0 @@
/*
Copyright (C) 2007 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WIDGET_DEFINITION_WINDOW_HPP_INCLUDED
#define GUI_AUXILIARY_WIDGET_DEFINITION_WINDOW_HPP_INCLUDED
#include "gui/auxiliary/widget_definition/panel.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
struct twindow_definition : public tcontrol_definition
{
explicit twindow_definition(const config& cfg);
struct tresolution : public tpanel_definition::tresolution
{
explicit tresolution(const config& cfg);
tbuilder_grid_ptr grid;
};
};
} // namespace gui2
#endif

View file

@ -20,29 +20,27 @@
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#if 1 // See the #if in create_builder_widget.
#include "gui/auxiliary/window_builder/scrollbar_panel.hpp"
#include "gui/auxiliary/window_builder/horizontal_scrollbar.hpp"
#include "gui/auxiliary/window_builder/repeating_button.hpp"
#include "gui/auxiliary/window_builder/stacked_widget.hpp"
#include "gui/auxiliary/window_builder/vertical_scrollbar.hpp"
#include "gui/auxiliary/window_builder/label.hpp"
#include "gui/auxiliary/window_builder/matrix.hpp"
#include "gui/auxiliary/window_builder/image.hpp"
#include "gui/auxiliary/window_builder/toggle_button.hpp"
#include "gui/auxiliary/window_builder/slider.hpp"
#include "gui/auxiliary/window_builder/scroll_label.hpp"
#include "gui/auxiliary/window_builder/minimap.hpp"
#include "gui/auxiliary/window_builder/button.hpp"
#include "gui/auxiliary/window_builder/combobox.hpp"
#include "gui/auxiliary/window_builder/drawing.hpp"
#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/button.hpp"
#include "gui/widgets/combobox.hpp"
#include "gui/widgets/drawing.hpp"
#include "gui/widgets/horizontal_scrollbar.hpp"
#include "gui/widgets/image.hpp"
#include "gui/widgets/label.hpp"
#include "gui/widgets/matrix.hpp"
#include "gui/widgets/minimap.hpp"
#include "gui/widgets/pane.hpp"
#include "gui/widgets/password_box.hpp"
#include "gui/widgets/repeating_button.hpp"
#include "gui/widgets/scroll_label.hpp"
#include "gui/widgets/scrollbar_panel.hpp"
#include "gui/widgets/settings.hpp"
#include "gui/widgets/slider.hpp"
#include "gui/widgets/stacked_widget.hpp"
#include "gui/widgets/toggle_button.hpp"
#include "gui/widgets/unit_preview_pane.hpp"
#include "gui/widgets/vertical_scrollbar.hpp"
#include "gui/widgets/viewport.hpp"
#include "gui/widgets/window.hpp"
#include "formula/string_utils.hpp"
#include "utils/foreach.hpp"

View file

@ -1,91 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/button.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#include "gui/widgets/button.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_button::tbuilder_button(const config& cfg)
: tbuilder_control(cfg)
, retval_id_(cfg["return_value_id"])
, retval_(cfg["return_value"])
{
}
twidget* tbuilder_button::build() const
{
tbutton* widget = new tbutton();
init_control(widget);
widget->set_retval(get_retval(retval_id_, retval_, id));
DBG_GUI_G << "Window builder: placed button '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{button_description}
*
* A button is a control that can be pushed to start an action or close
* a dialog.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_button
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="button"}{min=0}{max=-1}{super="generic/widget_instance"}
* == Button ==
*
* @macro = button_description
*
* Instance of a button. When a button has a return value it sets the
* return value for the window. Normally this closes the window and returns
* this value to the caller. The return value can either be defined by the
* user or determined from the id of the button. The return value has a
* higher precedence as the one defined by the id. (Of course it's weird to
* give a button an id and then override its return value.)
*
* When the button doesn't have a standard id, but you still want to use the
* return value of that id, use return_value_id instead. This has a higher
* precedence as return_value.
*
* List with the button specific variables:
* @begin{table}{config}
* return_value_id & string & "" & The return value id. $
* return_value & int & 0 & The return value. $
*
* @end{table}
* @end{tag}{name="button"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,46 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_BUTTON_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_BUTTON_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
class tcontrol;
namespace implementation
{
struct tbuilder_button : public tbuilder_control
{
public:
explicit tbuilder_button(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
private:
std::string retval_id_;
int retval_;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,97 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/combobox.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#include "gui/widgets/combobox.hpp"
#include "utils/foreach.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_combobox::tbuilder_combobox(const config& cfg)
: tbuilder_control(cfg)
, retval_id_(cfg["return_value_id"])
, retval_(cfg["return_value"])
, options_()
{
FOREACH(const AUTO& option, cfg.child_range("option")) {
options_.push_back(option["label"]);
}
}
twidget* tbuilder_combobox::build() const
{
tcombobox* widget = new tcombobox();
init_control(widget);
widget->set_retval(get_retval(retval_id_, retval_, id));
if(!options_.empty()) {
widget->set_values(options_);
}
DBG_GUI_G << "Window builder: placed combobox '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{combobox_description}
*
* A combobox is a control to choose an element from a list of elements.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_combobox
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="combobox"}{min=0}{max=-1}{super="generic/widget_instance"}
* == combobox ==
*
* @macro = combobox_description
*
* Instance of a combobox. When a combobox has a return value it sets the
* return value for the window. Normally this closes the window and returns
* this value to the caller. The return value can either be defined by the
* user or determined from the id of the combobox. The return value has a
* higher precedence as the one defined by the id. (Of course it's weird to
* give a combobox an id and then override its return value.)
*
* When the combobox doesn't have a standard id, but you still want to use the
* return value of that id, use return_value_id instead. This has a higher
* precedence as return_value.
*
* List with the combobox specific variables:
* @begin{table}{config}
* return_value_id & string & "" & The return value id. $
* return_value & int & 0 & The return value. $
*
* @end{table}
* @end{tag}{name="combobox"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,44 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/control.hpp"
namespace gui2
{
class tcontrol;
namespace implementation
{
struct tbuilder_combobox : public tbuilder_control
{
public:
explicit tbuilder_combobox(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
private:
std::string retval_id_;
int retval_;
std::vector<std::string> options_;
};
} // namespace implementation
} // namespace gui2

View file

@ -1,154 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/control.hpp"
#include "config.hpp"
#include "formatter.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/control.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_control::tbuilder_control(const config& cfg)
: tbuilder_widget(cfg)
, definition(cfg["definition"])
, label(cfg["label"].t_str())
, tooltip(cfg["tooltip"].t_str())
, help(cfg["help"].t_str())
, use_tooltip_on_label_overflow(true)
{
if(definition.empty()) {
definition = "default";
}
VALIDATE_WITH_DEV_MESSAGE(
help.empty() || !tooltip.empty(),
_("Found a widget with a helptip and without a tooltip."),
(formatter() << "id '" << id << "' label '" << label
<< "' helptip '" << help << "'.").str());
DBG_GUI_P << "Window builder: found control with id '" << id
<< "' and definition '" << definition << "'.\n";
}
void tbuilder_control::init_control(tcontrol* control) const
{
assert(control);
control->set_id(id);
control->set_definition(definition);
control->set_linked_group(linked_group);
control->set_label(label);
control->set_tooltip(tooltip);
control->set_help_message(help);
control->set_use_tooltip_on_label_overflow(use_tooltip_on_label_overflow);
#ifndef LOW_MEM
control->set_debug_border_mode(debug_border_mode);
control->set_debug_border_colour(debug_border_color);
#endif
}
twidget* tbuilder_control::build(const treplacements& /*replacements*/) const
{
return build();
}
} // namespace implementation
} // namespace gui2
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 1_widget
*
* = Widget =
* @begin{parent}{name="generic/"}
* @begin{tag}{name="widget_instance"}{min="0"}{max="-1"}
* All widgets placed in the cell have some values in common:
* @begin{table}{config}
* id & string & "" & This value is used for the engine to
* identify 'special' items. This means that
* for example a text_box can get the proper
* initial value. This value should be
* unique or empty. Those special values are
* documented at the window definition that
* uses them. NOTE items starting with an
* underscore are used for composed widgets
* and these should be unique per composed
* widget. $
*
* definition & string & "default" &
* The id of the widget definition to use.
* This way it's possible to select a
* specific version of the widget e.g. a
* title label when the label is used as
* title. $
*
* linked_group & string & "" & The linked group the control belongs
* to. $
*
* label & t_string & "" & Most widgets have some text associated
* with them, this field contain the value
* of that text. Some widgets use this value
* for other purposes, this is documented
* at the widget. E.g. an image uses the
* filename in this field. $
*
* tooltip & t_string & "" & If you hover over a widget a while (the
* time it takes can differ per widget) a
* short help can show up.This defines the
* text of that message. This field may not
* be empty when 'help' is set. $
*
*
* help & t_string & "" & If you hover over a widget and press F10
* (or the key the user defined for the help
* tip) a help message can show up. This
* help message might be the same as the
* tooltip but in general (if used) this
* message should show more help. This
* defines the text of that message. $
*
* use_tooltip_on_label_overflow & bool & true &
* If the text on the label is truncated and
* the tooltip is empty the label can be
* used for the tooltip. If this variable is
* set to true this will happen. $
*
* debug_border_mode & unsigned & 0 &
* The mode for showing the debug border.
* This border shows the area reserved for
* a widget. This function is only meant
* for debugging and might not be
* available in all Wesnoth binaries.
* Available modes:
* @* 0 no border.
* @* 1 1 pixel border.
* @* 2 floodfill the widget area. $
*
* debug_border_color & color & "" & The color of the debug border. $
* @end{table}
* @end{tag}{name="widget_instance"}
* @end{parent}{name="generic/"}
*/

View file

@ -1,52 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_CONTROL_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_CONTROL_HPP_INCLUDED
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
class tcontrol;
namespace implementation
{
struct tbuilder_control : public tbuilder_widget
{
public:
tbuilder_control(const config& cfg);
using tbuilder_widget::build;
virtual twidget* build(const treplacements& replacements) const OVERRIDE;
/** @deprecated The control can initialize itself. */
void init_control(tcontrol* control) const;
/** Parameters for the control. */
std::string definition;
t_string label;
t_string tooltip;
t_string help;
bool use_tooltip_on_label_overflow;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,97 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/drawing.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/drawing.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_drawing::tbuilder_drawing(const config& cfg)
: tbuilder_control(cfg)
, width(cfg["width"])
, height(cfg["height"])
, draw(cfg.child("draw"))
{
assert(!draw.empty());
}
twidget* tbuilder_drawing::build() const
{
tdrawing* widget = new tdrawing();
init_control(widget);
const game_logic::map_formula_callable& size = get_screen_size_variables();
const unsigned w = width(size);
const unsigned h = height(size);
if(w || h) {
widget->set_best_size(tpoint(w, h));
}
widget->canvas().front().set_cfg(draw);
DBG_GUI_G << "Window builder: placed drawing '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{drawing_description}
*
* A drawing is widget with a fixed size and gives access to the
* canvas of the widget in the window instance. This allows special
* display only widgets.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_drawing
*
* == Spacer ==
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="drawing"}{min=0}{max=-1}{super="generic/widget_instance"}
* @macro = drawing_description
*
* If either the width or the height is not zero the drawing functions as a
* fixed size drawing.
*
* @begin{table}{config}
* width & f_unsigned & 0 & The width of the drawing. $
* height & f_unsigned & 0 & The height of the drawing. $
* draw & config & & The config containing the drawing. $
* @end{table}
* @allow{link}{name="generic/state/draw"}
* @end{tag}{name="drawing"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
* The variable available are the same as for the window resolution see
* http://www.wesnoth.org/wiki/GUIToolkitWML#Resolution_2 for the list of
* items.
*/

View file

@ -1,49 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_DRAWING_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_DRAWING_HPP_INCLUDED
#include "config.hpp"
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_drawing : public tbuilder_control
{
explicit tbuilder_drawing(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
/** The width of the widget. */
tformula<unsigned> width;
/** The height of the widget. */
tformula<unsigned> height;
/** Config containing what to draw on the widgets canvas. */
config draw;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,177 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/horizontal_listbox.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/widget_definition/listbox.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#ifdef GUI2_EXPERIMENTAL_LISTBOX
#include "gui/widgets/list.hpp"
#else
#include "gui/widgets/listbox.hpp"
#endif
#include "utils/foreach.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_horizontal_listbox::tbuilder_horizontal_listbox(const config& cfg)
: tbuilder_control(cfg)
, vertical_scrollbar_mode(
get_scrollbar_mode(cfg["vertical_scrollbar_mode"]))
, horizontal_scrollbar_mode(
get_scrollbar_mode(cfg["horizontal_scrollbar_mode"]))
, list_builder(NULL)
, list_data()
{
const config& l = cfg.child("list_definition");
VALIDATE(l, _("No list defined."));
list_builder = new tbuilder_grid(l);
assert(list_builder);
VALIDATE(list_builder->rows == 1,
_("A 'list_definition' should contain one row."));
const config& data = cfg.child("list_data");
if(!data)
return;
FOREACH(const AUTO & row, data.child_range("row"))
{
unsigned col = 0;
FOREACH(const AUTO & c, row.child_range("column"))
{
list_data.push_back(string_map());
FOREACH(const AUTO & i, c.attribute_range())
{
list_data.back()[i.first] = i.second;
}
++col;
}
VALIDATE(col == list_builder->cols,
_("'list_data' must have "
"the same number of columns as the 'list_definition'."));
}
}
twidget* tbuilder_horizontal_listbox::build() const
{
#ifdef GUI2_EXPERIMENTAL_LISTBOX
tlist* widget = new tlist(
true, true, tgenerator_::horizontal_list, true, list_builder);
init_control(widget);
if(!list_data.empty()) {
widget->append_rows(list_data);
}
return widget;
#else
tlistbox* widget
= new tlistbox(true, true, tgenerator_::horizontal_list, true);
init_control(widget);
widget->set_list_builder(list_builder); // FIXME in finalize???
widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
DBG_GUI_G << "Window builder: placed listbox '" << id
<< "' with definition '" << definition << "'.\n";
boost::intrusive_ptr<const tlistbox_definition::tresolution>
conf = boost::dynamic_pointer_cast<const tlistbox_definition::tresolution>(
widget->config());
assert(conf);
widget->init_grid(conf->grid);
widget->finalize(NULL, NULL, list_data);
return widget;
#endif
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{horizontal_listbox_description}
*
* A horizontal listbox is a control that holds several items of the
* same type. Normally the items in a listbox are ordered in rows,
* this version orders them in columns instead.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_horizontal_listbox
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="horizontal_listbox"}{min="0"}{max="-1"}{super="generic/widget_instance"}
* == Horizontal listbox ==
*
* @macro = horizontal_listbox_description
*
* List with the horizontal listbox specific variables:
* @begin{table}{config}
* vertical_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* horizontal_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
*
* list_definition & section & & This defines how a listbox item
* looks. It must contain the grid
* definition for 1 column of the list. $
*
* list_data & section & [] & A grid alike section which stores the
* initial data for the listbox. Every row
* must have the same number of columns as
* the 'list_definition'. $
*
* @end{table}
* @begin{tag}{name="header"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="header"}
* @begin{tag}{name="footer"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="footer"}
* @begin{tag}{name="list_definition"}{min=0}{max=1}
* @begin{tag}{name="row"}{min=1}{max=1}{super="generic/listbox_grid/row"}
* @end{tag}{name="row"}
* @end{tag}{name="list_definition"}
* @begin{tag}{name="list_data"}{min=0}{max=1}{super="generic/listbox_grid"}
* @end{tag}{name="list_data"}
* In order to force widgets to be the same size inside a horizontal listbox,
* the widgets need to be inside a linked_group.
*
* Inside the list section there are only the following widgets allowed
* * grid (to nest)
* * selectable widgets which are
* ** toggle_button
* ** toggle_panel
* @end{tag}{name="horizontal_listbox"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,54 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_HORIZONTAL_LISTBOX_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_HORIZONTAL_LISTBOX_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include "gui/widgets/scrollbar_container.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_horizontal_listbox : public tbuilder_control
{
explicit tbuilder_horizontal_listbox(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tscrollbar_container::tscrollbar_mode vertical_scrollbar_mode;
tscrollbar_container::tscrollbar_mode horizontal_scrollbar_mode;
tbuilder_grid_ptr list_builder;
/**
* Listbox data.
*
* Contains a vector with the data to set in every cell, it's used to
* serialize the data in the config, so the config is no longer required.
*/
std::vector<string_map> list_data;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,71 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/horizontal_scrollbar.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/horizontal_scrollbar.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_horizontal_scrollbar::tbuilder_horizontal_scrollbar(const config& cfg)
: tbuilder_control(cfg)
{
}
twidget* tbuilder_horizontal_scrollbar::build() const
{
thorizontal_scrollbar* widget = new thorizontal_scrollbar();
init_control(widget);
DBG_GUI_G << "Window builder:"
<< " placed horizontal scrollbar '" << id << "' with definition '"
<< definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{horizontal_scrollbar_description}
*
* A horizontal scrollbar is a widget that shows a horizontal scrollbar.
* This widget is most of the time used in a container to control the
* scrolling of its contents.
* @end{macro}
*/
/*WIKI
* @page = GUIToolkitWML
* @order = 2_horizontal_scrollbar
*
* == Horizontal scrollbar ==
*
* @macro = horizontal_scrollbar_description
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="horizontal_scrollbar"}{min=0}{max=-1}{super="generic/widget_instance"}
* @end{tag}{name="horizontal_scrollbar"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
* A horizontal scrollbar has no special fields.
*/

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_HORIZONTAL_SCROLLBAR_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_HORIZONTAL_SCROLLBAR_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_horizontal_scrollbar : public tbuilder_control
{
explicit tbuilder_horizontal_scrollbar(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,68 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/image.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/image.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_image::tbuilder_image(const config& cfg) : tbuilder_control(cfg)
{
}
twidget* tbuilder_image::build() const
{
timage* widget = new timage();
init_control(widget);
DBG_GUI_G << "Window builder: placed image '" << id << "' with definition '"
<< definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{image_description}
* An image shows a static image.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_image
*
* == Image ==
*
* @macro = image_description
*
* An image has no extra fields.
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="image"}{min=0}{max=-1}{super="generic/widget_instance"}
* @end{tag}{name="image"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_IMAGE_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_IMAGE_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_image : public tbuilder_control
{
explicit tbuilder_image(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -16,7 +16,7 @@
#include "gui/auxiliary/window_builder/instance.hpp"
#include "gui/auxiliary/window_builder/spacer.hpp"
#include "gui/widgets/spacer.hpp"
namespace gui2
{

View file

@ -1,92 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/label.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/label.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_label::tbuilder_label(const config& cfg)
: tbuilder_control(cfg)
, wrap(cfg["wrap"].to_bool())
, characters_per_line(cfg["characters_per_line"])
, text_alignment(decode_text_alignment(cfg["text_alignment"]))
{
}
twidget* tbuilder_label::build() const
{
tlabel* label = new tlabel();
init_control(label);
label->set_can_wrap(wrap);
label->set_characters_per_line(characters_per_line);
label->set_text_alignment(text_alignment);
DBG_GUI_G << "Window builder: placed label '" << id << "' with definition '"
<< definition << "'.\n";
return label;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{label_description}
*
* A label displays a text, the text can be wrapped but no scrollbars
* are provided.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_label
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="label"}{min=0}{max=-1}{super="generic/widget_instance"}
* == Label ==
*
* @macro = label_description
*
* List with the label specific variables:
* @begin{table}{config}
* wrap & bool & false & Is wrapping enabled for the label. $
* characters_per_line & unsigned & 0 &
* Sets the maximum number of characters per
* line. The amount is an approximate since the
* width of a character differs. E.g. iii is
* smaller than MMM. When the value is non-zero
* it also implies can_wrap is true.
* When having long strings wrapping them can
* increase readability, often 66 characters per
* line is considered the optimum for a one
* column text.
* text_alignment & h_align & "left" &
* How is the text aligned in the label. $
* @end{table}
* @end{tag}{name="label"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,47 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_LABEL_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_LABEL_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include <pango/pango-layout.h>
namespace gui2
{
namespace implementation
{
struct tbuilder_label : public tbuilder_control
{
tbuilder_label(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
bool wrap;
unsigned characters_per_line;
PangoAlignment text_alignment;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,256 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/listbox.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/widget_definition/listbox.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#include "gui/widgets/grid.hpp"
#ifdef GUI2_EXPERIMENTAL_LISTBOX
#include "gui/widgets/list.hpp"
#else
#include "gui/widgets/listbox.hpp"
#endif
#include "gui/widgets/pane.hpp"
#include "gui/widgets/viewport.hpp"
#include "gui/widgets/settings.hpp"
#include "utils/foreach.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_listbox::tbuilder_listbox(const config& cfg)
: tbuilder_control(cfg)
, vertical_scrollbar_mode(
get_scrollbar_mode(cfg["vertical_scrollbar_mode"]))
, horizontal_scrollbar_mode(
get_scrollbar_mode(cfg["horizontal_scrollbar_mode"]))
, header(NULL)
, footer(NULL)
, list_builder(NULL)
, list_data()
, has_minimum_(cfg["has_minimum"].to_bool(true))
, has_maximum_(cfg["has_maximum"].to_bool(true))
{
if(const config& h = cfg.child("header")) {
header = new tbuilder_grid(h);
}
if(const config& f = cfg.child("footer")) {
footer = new tbuilder_grid(f);
}
const config& l = cfg.child("list_definition");
VALIDATE(l, _("No list defined."));
list_builder = new tbuilder_grid(l);
assert(list_builder);
VALIDATE(list_builder->rows == 1,
_("A 'list_definition' should contain one row."));
const config& data = cfg.child("list_data");
if(!data) {
return;
}
FOREACH(const AUTO & row, data.child_range("row"))
{
unsigned col = 0;
FOREACH(const AUTO & c, row.child_range("column"))
{
list_data.push_back(string_map());
FOREACH(const AUTO & i, c.attribute_range())
{
list_data.back()[i.first] = i.second;
}
++col;
}
VALIDATE(col == list_builder->cols,
_("'list_data' must have the same number of "
"columns as the 'list_definition'."));
}
}
twidget* tbuilder_listbox::build() const
{
#ifdef GUI2_EXPERIMENTAL_LISTBOX
tlist* widget = new tlist(
true, true, tgenerator_::vertical_list, true, list_builder);
init_control(widget);
if(!list_data.empty()) {
widget->append_rows(list_data);
}
return widget;
#else
if(new_widgets) {
tpane* pane = new tpane(list_builder);
pane->set_id(id);
tgrid* grid = new tgrid();
grid->set_rows_cols(1, 1);
#if 0
grid->set_child(
pane
, 0
, 0
, tgrid::VERTICAL_GROW_SEND_TO_CLIENT
| tgrid::HORIZONTAL_GROW_SEND_TO_CLIENT
, tgrid::BORDER_ALL);
#else
tviewport* viewport = new tviewport(*pane);
grid->set_child(viewport,
0,
0,
tgrid::VERTICAL_GROW_SEND_TO_CLIENT
| tgrid::HORIZONTAL_GROW_SEND_TO_CLIENT,
tgrid::BORDER_ALL);
#endif
return grid;
}
tlistbox* widget
= new tlistbox(has_minimum_, has_maximum_, tgenerator_::vertical_list, true);
init_control(widget);
widget->set_list_builder(list_builder); // FIXME in finalize???
widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
DBG_GUI_G << "Window builder: placed listbox '" << id
<< "' with definition '" << definition << "'.\n";
boost::intrusive_ptr<const tlistbox_definition::tresolution>
conf = boost::dynamic_pointer_cast<const tlistbox_definition::tresolution>(
widget->config());
assert(conf);
widget->init_grid(conf->grid);
widget->finalize(header, footer, list_data);
return widget;
#endif
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{listbox_description}
*
* A listbox is a control that holds several items of the same type.
* Normally the items in a listbox are ordered in rows, this version
* might allow more options for ordering the items in the future.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_listbox
*
* == Listbox ==
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="listbox"}{min=0}{max=-1}{super="generic/widget_instance"}
* @macro = listbox_description
*
* List with the listbox specific variables:
* @begin{table}{config}
* vertical_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* horizontal_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
*
* header & grid & [] & Defines the grid for the optional
* header. (This grid will automatically
* get the id _header_grid.) $
* footer & grid & [] & Defines the grid for the optional
* footer. (This grid will automatically
* get the id _footer_grid.) $
*
* list_definition & section & & This defines how a listbox item
* looks. It must contain the grid
* definition for 1 row of the list. $
*
* list_data & section & [] & A grid alike section which stores the
* initial data for the listbox. Every row
* must have the same number of columns as
* the 'list_definition'. $
*
* has_minimum & bool & true & If false, less than one row can be selected. $
*
* has_maximum & bool & true & If false, more than one row can be selected. $
*
* @end{table}
* @begin{tag}{name="header"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="header"}
* @begin{tag}{name="footer"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="footer"}
* @begin{tag}{name="list_definition"}{min=0}{max=1}
* @begin{tag}{name="row"}{min=1}{max=1}{super="generic/listbox_grid/row"}
* @end{tag}{name="row"}
* @end{tag}{name="list_definition"}x
* @begin{tag}{name="list_data"}{min=0}{max=1}{super="generic/listbox_grid"}
* @end{tag}{name="list_data"}
*
* In order to force widgets to be the same size inside a listbox, the widgets
* need to be inside a linked_group.
*
* Inside the list section there are only the following widgets allowed
* * grid (to nest)
* * selectable widgets which are
* ** toggle_button
* ** toggle_panel
* @end{tag}{name="listbox"}
*
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/
/*WIKI
* @begin{parent}{name="generic/"}
* @begin{tag}{name="listbox_grid"}{min="0"}{max="-1"}
* @begin{tag}{name="row"}{min="0"}{max="-1"}
* @begin{table}{config}
* grow_factor & unsigned & 0 & The grow factor for a row. $
* @end{table}
* @begin{tag}{name="column"}{min="0"}{max="-1"}{super="gui/window/resolution/grid/row/column"}
* @begin{table}{config}
* label & t_string & "" & $
* tooltip & t_string & "" & $
* icon & t_string & "" & $
* @end{table}
* @allow{link}{name="gui/window/resolution/grid/row/column/toggle_button"}
* @allow{link}{name="gui/window/resolution/grid/row/column/toggle_panel"}
* @end{tag}{name="column"}
* @end{tag}{name="row"}
* @end{tag}{name="listbox_grid"}
* @end{parent}{name="generic/"}
*/

View file

@ -1,59 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_LISTBOX_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_LISTBOX_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include "gui/widgets/scrollbar_container.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_listbox : public tbuilder_control
{
explicit tbuilder_listbox(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tscrollbar_container::tscrollbar_mode vertical_scrollbar_mode;
tscrollbar_container::tscrollbar_mode horizontal_scrollbar_mode;
tbuilder_grid_ptr header;
tbuilder_grid_ptr footer;
tbuilder_grid_ptr list_builder;
/**
* Listbox data.
*
* Contains a vector with the data to set in every cell, it's used to
* serialize the data in the config, so the config is no longer required.
*/
std::vector<string_map> list_data;
bool has_minimum_, has_maximum_;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,109 +0,0 @@
/*
Copyright (C) 2012 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/matrix.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/widget_definition/matrix.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#include "gui/widgets/grid.hpp"
#include "gui/widgets/matrix.hpp"
#include "gui/widgets/pane.hpp"
#include "gui/widgets/viewport.hpp"
#include "gui/widgets/settings.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_matrix::tbuilder_matrix(const config& cfg)
: tbuilder_control(cfg)
, vertical_scrollbar_mode(
get_scrollbar_mode(cfg["vertical_scrollbar_mode"]))
, horizontal_scrollbar_mode(
get_scrollbar_mode(cfg["horizontal_scrollbar_mode"]))
, builder_top(NULL)
, builder_bottom(NULL)
, builder_left(NULL)
, builder_right(NULL)
, builder_main(create_builder_widget(cfg.child("main", "[matrix]")))
{
if(const config& top = cfg.child("top")) {
builder_top = new tbuilder_grid(top);
}
if(const config& bottom = cfg.child("bottom")) {
builder_bottom = new tbuilder_grid(bottom);
}
if(const config& left = cfg.child("left")) {
builder_left = new tbuilder_grid(left);
}
if(const config& right = cfg.child("right")) {
builder_right = new tbuilder_grid(right);
}
}
twidget* tbuilder_matrix::build() const
{
return tmatrix::build(*this);
}
} // namespace implementation
} // namespace gui2
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_matrix
*
* == Listbox ==
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="matrix"}{min=0}{max=-1}{super="generic/widget_instance"}
*
*
* List with the matrix specific variables:
* @begin{table}{config}
* vertical_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* horizontal_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* @end{table}
*
*
* @begin{tag}{name="top"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="top"}
* @begin{tag}{name="bottom"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="bottom"}
*
* @begin{tag}{name="left"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="left"}
* @begin{tag}{name="right"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="right"}
*
* @begin{tag}{name="main"}{min="1"}{max="1"}{super="gui/window/resolution/grid/row/column"}
* @end{tag}{name="main"}
* @end{tag}{name="matrix"}
*
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,53 +0,0 @@
/*
Copyright (C) 2012 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_MATRIX_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_MATRIX_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include "gui/auxiliary/window_builder/pane.hpp"
#include "gui/widgets/scrollbar_container.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_matrix : public tbuilder_control
{
explicit tbuilder_matrix(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tscrollbar_container::tscrollbar_mode vertical_scrollbar_mode;
tscrollbar_container::tscrollbar_mode horizontal_scrollbar_mode;
tbuilder_grid_ptr builder_top;
tbuilder_grid_ptr builder_bottom;
tbuilder_grid_ptr builder_left;
tbuilder_grid_ptr builder_right;
tbuilder_widget_ptr builder_main;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,71 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/minimap.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/minimap.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_minimap::tbuilder_minimap(const config& cfg) : tbuilder_control(cfg)
{
}
twidget* tbuilder_minimap::build() const
{
tminimap* widget = new tminimap();
init_control(widget);
DBG_GUI_G << "Window builder: placed minimap '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{minimap_description}
*
* A minimap to show the gamemap, this only shows the map and has no
* interaction options. This version is used for map previews, there
* will be a another version which allows interaction.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_minimap
*
* == Minimap ==
*
* @macro = minimap_description
*
* A minimap has no extra fields.
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="minimap"}{min=0}{max=-1}{super="generic/widget_instance"}
* @end{tag}{name="minimap"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,39 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_MINIMAP_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_MINIMAP_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_minimap : public tbuilder_control
{
explicit tbuilder_minimap(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,137 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/multi_page.hpp"
#include "config.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/widget_definition/multi_page.hpp"
#include "gui/widgets/multi_page.hpp"
#include "utils/foreach.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_multi_page::tbuilder_multi_page(const config& cfg)
: implementation::tbuilder_control(cfg), builder(NULL), data()
{
const config& page = cfg.child("page_definition");
VALIDATE(page, _("No page defined."));
builder = new tbuilder_grid(page);
assert(builder);
/** @todo This part is untested. */
const config& d = cfg.child("page_data");
if(!d) {
return;
}
FOREACH(const AUTO & row, d.child_range("row"))
{
unsigned col = 0;
FOREACH(const AUTO & column, row.child_range("column"))
{
data.push_back(string_map());
FOREACH(const AUTO & i, column.attribute_range())
{
data.back()[i.first] = i.second;
}
++col;
}
VALIDATE(col == builder->cols,
_("'list_data' must have "
"the same number of columns as the 'list_definition'."));
}
}
twidget* tbuilder_multi_page::build() const
{
tmulti_page* widget = new tmulti_page();
init_control(widget);
widget->set_page_builder(builder);
DBG_GUI_G << "Window builder: placed multi_page '" << id
<< "' with definition '" << definition << "'.\n";
boost::intrusive_ptr<const tmulti_page_definition::tresolution>
conf = boost::
dynamic_pointer_cast<const tmulti_page_definition::tresolution>(
widget->config());
assert(conf);
widget->init_grid(conf->grid);
widget->finalize(data);
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{multi_page_description}
*
* A multi page is a control that contains several 'pages' of which
* only one is visible. The pages can contain the same widgets containing
* the same 'kind' of data or look completely different.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_multi_page
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="multi_page"}{min=0}{max=-1}{super="generic/widget_instance"}
* == Multi page ==
*
* @macro = multi_page_description
*
* List with the multi page specific variables:
* @begin{table}{config}
* page_definition & section & & This defines how a multi page item
* looks. It must contain the grid
* definition for at least one page. $
*
* page_data & section & [] & A grid alike section which stores the
* initial data for the multi page. Every
* row must have the same number of columns
* as the 'page_definition'. $
* horizontal_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar.
* vertical_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar.
* @end{table}
* @begin{tag}{name="page_definition"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="page_definition"}
* @begin{tag}{name="page_data"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="page_data"}
* @end{tag}{name="multi_page"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,55 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_MULTI_PAGE_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_MULTI_PAGE_HPP_INCLUDED
#include "gui/widgets/widget.hpp"
#include "gui/auxiliary/window_builder/control.hpp"
#include <map>
#include <vector>
typedef std::map<std::string, t_string> string_map;
namespace gui2
{
namespace implementation
{
struct tbuilder_multi_page : public tbuilder_control
{
explicit tbuilder_multi_page(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tbuilder_grid_ptr builder;
/**
* Multi page data.
*
* Contains a vector with the data to set in every cell, it's used to
* serialize the data in the config, so the config is no longer required.
*/
std::vector<string_map> data;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,86 +0,0 @@
/*
Copyright (C) 2012 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/pane.hpp"
#include "config.hpp"
#include "gettext.hpp"
#include "gui/widgets/pane.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_pane::tbuilder_pane(const config& cfg)
: tbuilder_widget(cfg)
, grow_direction(
lexical_cast<tplacer_::tgrow_direction>(cfg["grow_direction"]))
, parallel_items(cfg["parallel_items"])
, item_definition(new tbuilder_grid(cfg.child("item_definition", "[pane]")))
{
VALIDATE(parallel_items > 0, _("Need at least 1 parallel item."));
}
twidget* tbuilder_pane::build() const
{
return build(treplacements());
}
twidget* tbuilder_pane::build(const treplacements& /*replacements*/) const
{
return tpane::build(*this);
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{pane_description}
*
* A pane is a container where new members can be added and removed
* during run-time.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_viewport
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="pane"}{min=0}{max=-1}{super="generic/widget_instance"}
* == Label ==
*
* @macro = viewport_description
*
* List with the label specific variables:
* @begin{table}{config}
* grow_direction & grow_direction & &
* The direction in which new items grow. $
* parallel_items & unsigned & &
* The number of items that are growing in
* parallel. $
* item_definition & section & &
* The definition of a new item. $
* @end{table}
*
* @begin{tag}{name="item_definition"}{min=1}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="item_definition"}
* @end{tag}{name="pane"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,46 +0,0 @@
/*
Copyright (C) 2012 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_PANE_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_PANE_HPP_INCLUDED
#include "gui/auxiliary/placer.hpp"
#include "gui/auxiliary/window_builder.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_pane : public tbuilder_widget
{
explicit tbuilder_pane(const config& cfg);
twidget* build() const;
twidget* build(const treplacements& replacements) const;
tplacer_::tgrow_direction grow_direction;
unsigned parallel_items;
tbuilder_grid_ptr item_definition;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,84 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/panel.hpp"
#include "config.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/panel.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_panel::tbuilder_panel(const config& cfg)
: tbuilder_control(cfg), grid(NULL)
{
const config& c = cfg.child("grid");
VALIDATE(c, _("No grid defined."));
grid = new tbuilder_grid(c);
}
twidget* tbuilder_panel::build() const
{
tpanel* widget = new tpanel();
init_control(widget);
DBG_GUI_G << "Window builder: placed panel '" << id << "' with definition '"
<< definition << "'.\n";
widget->init_grid(grid);
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{panel_description}
*
* A panel is an item which can hold other items. The difference
* between a grid and a panel is that it's possible to define how a
* panel looks. A grid in an invisible container to just hold the
* items.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_panel
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="panel"}{min="0"}{max="-1"}{super="generic/widget_instance"}
* == Panel ==
*
* @macro = panel_description
*
* @begin{table}{config}
* grid & grid & & Defines the grid with the widgets to
* place on the panel. $
* @end{table}
* @allow{link}{name="gui/window/resolution/grid"}
* @end{tag}{name="panel"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,41 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_PANEL_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_PANEL_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_panel : public tbuilder_control
{
explicit tbuilder_panel(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tbuilder_grid_ptr grid;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,68 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/password_box.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/password_box.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_password_box::tbuilder_password_box(const config& cfg)
: tbuilder_control(cfg), history_(cfg["history"])
{
}
twidget* tbuilder_password_box::build() const
{
tpassword_box* widget = new tpassword_box();
init_control(widget);
// A password box doesn't have a label but a text.
// It also has no history.
widget->set_value(label);
DBG_GUI_G << "Window builder: placed password box '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_password_box
*
* == Password box ==
*
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="password_box"}{min=0}{max=-1}{super="generic/widget_instance"}
* @begin{table}{config}
* label & t_string & "" & The initial text of the password box. $
* @end{table}
* @end{tag}{name="password_box"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,45 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_PASSWORD_BOX_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_PASSWORD_BOX_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
// copy & paste from tbuilder_text_box...
// does it make more sense to inherit from it?
struct tbuilder_password_box : public tbuilder_control
{
public:
explicit tbuilder_password_box(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
private:
std::string history_;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,69 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/progress_bar.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/progress_bar.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_progress_bar::tbuilder_progress_bar(const config& cfg)
: tbuilder_control(cfg)
{
}
twidget* tbuilder_progress_bar::build() const
{
tprogress_bar* widget = new tprogress_bar();
init_control(widget);
DBG_GUI_G << "Window builder: placed progress bar '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{progress_bar_description}
* A progress bar shows the progress of a certain object.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_progress_bar
*
* == Image ==
*
* @macro = progress_bar_description
*
* A progress bar has no extra fields.
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="progress_bar"}{min=0}{max=-1}{super="generic/widget_instance"}
* @end{tag}{name="progress_bar"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,40 +0,0 @@
/*
Copyright (C) 2010 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_PROGRESS_BAR_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_PROGRESS_BAR_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_progress_bar : public tbuilder_control
{
explicit tbuilder_progress_bar(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,70 +0,0 @@
/*
Copyright (C) 2009 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/repeating_button.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/repeating_button.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_repeating_button::tbuilder_repeating_button(const config& cfg)
: tbuilder_control(cfg)
{
}
twidget* tbuilder_repeating_button::build() const
{
trepeating_button* widget = new trepeating_button();
init_control(widget);
DBG_GUI_G << "Window builder: placed repeating button '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{repeating_button_description}
*
* A repeating_button is a control that can be pushed down and repeat a
* certain action. Once the button is down every x milliseconds it is
* down a new down event is triggered.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_repeating_button
*
* == Repeating button ==
*
* @macro = repeating_button_description
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="repeating_button"}{min=0}{max=-1}{super="gui/window/resolution/grid/row/column/button"}
* @end{tag}{name="repeating_button"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,40 +0,0 @@
/*
Copyright (C) 2009 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_REPEATING_BUTTON_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_REPEATING_BUTTON_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_repeating_button : public tbuilder_control
{
public:
explicit tbuilder_repeating_button(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,97 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/scroll_label.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#include "gui/auxiliary/widget_definition/scroll_label.hpp"
#include "gui/widgets/scroll_label.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_scroll_label::tbuilder_scroll_label(const config& cfg)
: implementation::tbuilder_control(cfg)
, vertical_scrollbar_mode(
get_scrollbar_mode(cfg["vertical_scrollbar_mode"]))
, horizontal_scrollbar_mode(
get_scrollbar_mode(cfg["horizontal_scrollbar_mode"]))
{
}
twidget* tbuilder_scroll_label::build() const
{
tscroll_label* widget = new tscroll_label();
init_control(widget);
widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
boost::intrusive_ptr<const tscroll_label_definition::tresolution>
conf = boost::
dynamic_pointer_cast<const tscroll_label_definition::tresolution>(
widget->config());
assert(conf);
widget->init_grid(conf->grid);
widget->finalize_setup();
DBG_GUI_G << "Window builder: placed scroll label '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{scroll_label_description}
*
* A scroll label is a label that wraps its text and also has a
* vertical scrollbar. This way a text can't be too long to be shown
* for this widget.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_scroll_label
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="scroll_label"}{min="0"}{max="-1"}{super="generic/widget_instance"}
* == Scroll label ==
*
* @macro = scroll_label_description
*
* List with the scroll label specific variables:
* @begin{table}{config}
* vertical_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* horizontal_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* @end{table}
* @end{tag}{name="scroll_label"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,44 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_SCROLL_LABEL_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_SCROLL_LABEL_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include "gui/widgets/scrollbar_container.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_scroll_label : public tbuilder_control
{
explicit tbuilder_scroll_label(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tscrollbar_container::tscrollbar_mode vertical_scrollbar_mode;
tscrollbar_container::tscrollbar_mode horizontal_scrollbar_mode;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,130 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/scrollbar_panel.hpp"
#include "config.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/widget_definition/scrollbar_panel.hpp"
#include "gui/auxiliary/window_builder/helper.hpp"
#include "gui/widgets/scrollbar_panel.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_scrollbar_panel::tbuilder_scrollbar_panel(const config& cfg)
: tbuilder_control(cfg)
, vertical_scrollbar_mode(
get_scrollbar_mode(cfg["vertical_scrollbar_mode"]))
, horizontal_scrollbar_mode(
get_scrollbar_mode(cfg["horizontal_scrollbar_mode"]))
, grid(NULL)
{
const config& definition = cfg.child("definition");
VALIDATE(definition, _("No list defined."));
grid = new tbuilder_grid(definition);
assert(grid);
}
twidget* tbuilder_scrollbar_panel::build() const
{
tscrollbar_panel* widget = new tscrollbar_panel();
init_control(widget);
widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
DBG_GUI_G << "Window builder: placed scrollbar_panel '" << id
<< "' with definition '" << definition << "'.\n";
boost::intrusive_ptr<const tscrollbar_panel_definition::tresolution> conf
= boost::dynamic_pointer_cast<const tscrollbar_panel_definition::
tresolution>(
widget->config());
assert(conf);
widget->init_grid(conf->grid);
widget->finalize_setup();
/*** Fill the content grid. ***/
tgrid* content_grid = widget->content_grid();
assert(content_grid);
const unsigned rows = grid->rows;
const unsigned cols = grid->cols;
content_grid->set_rows_cols(rows, cols);
for(unsigned x = 0; x < rows; ++x) {
content_grid->set_row_grow_factor(x, grid->row_grow_factor[x]);
for(unsigned y = 0; y < cols; ++y) {
if(x == 0) {
content_grid->set_column_grow_factor(y,
grid->col_grow_factor[y]);
}
twidget* widget = grid->widgets[x * cols + y]->build();
content_grid->set_child(widget,
x,
y,
grid->flags[x * cols + y],
grid->border_size[x * cols + y]);
}
}
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_scrollbar_panel
*
* == Scrollbar panel ==
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="scrollbar_panel"}{min="0"}{max="-1"}{super="generic/widget_instance"}
* Instance of a scrollbar_panel.
*
* List with the scrollbar_panel specific variables:
* @begin{table}{config}
* vertical_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
* horizontal_scrollbar_mode & scrollbar_mode & initial_auto &
* Determines whether or not to show the
* scrollbar. $
*
* definition & section & & This defines how a scrollbar_panel item
* looks. It must contain the grid
* definition for 1 row of the list. $
*
* @end{table}
* @begin{tag}{name="definition"}{min=0}{max=1}{super="gui/window/resolution/grid"}
* @end{tag}{name="definition"}
* @end{tag}{name="scrollbar_panel"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,46 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_SCROLLBAR_PANEL_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_SCROLLBAR_PANEL_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include "gui/widgets/scrollbar_container.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_scrollbar_panel : public tbuilder_control
{
explicit tbuilder_scrollbar_panel(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
tscrollbar_container::tscrollbar_mode vertical_scrollbar_mode;
tscrollbar_container::tscrollbar_mode horizontal_scrollbar_mode;
tbuilder_grid_ptr grid;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,136 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/slider.hpp"
#include "config.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/slider.hpp"
#include "utils/foreach.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_slider::tbuilder_slider(const config& cfg)
: implementation::tbuilder_control(cfg)
, best_slider_length_(cfg["best_slider_length"])
, minimum_value_(cfg["minimum_value"])
, maximum_value_(cfg["maximum_value"])
, step_size_(cfg["step_size"])
, value_(cfg["value"])
, minimum_value_label_(cfg["minimum_value_label"].t_str())
, maximum_value_label_(cfg["maximum_value_label"].t_str())
, value_labels_()
{
const config& labels = cfg.child("value_labels");
if(!labels) {
return;
}
FOREACH(const AUTO & label, labels.child_range("value"))
{
value_labels_.push_back(label["label"]);
}
}
twidget* tbuilder_slider::build() const
{
tslider* widget = new tslider();
init_control(widget);
widget->set_best_slider_length(best_slider_length_);
widget->set_maximum_value(maximum_value_);
widget->set_minimum_value(minimum_value_);
widget->set_step_size(step_size_);
widget->set_value(value_);
if(!value_labels_.empty()) {
VALIDATE(value_labels_.size() == widget->get_item_count(),
_("The number of value_labels and values don't match."));
widget->set_value_labels(value_labels_);
} else {
widget->set_minimum_value_label(minimum_value_label_);
widget->set_maximum_value_label(maximum_value_label_);
}
DBG_GUI_G << "Window builder: placed slider '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{slider_description}
* A slider is a control that can select a value by moving a grip on a groove.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 3_slider
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="slider"}{min="0"}{max="-1"}{super="generic/widget_instance"}
* == Slider ==
*
* @macro = slider_description
*
* @begin{table}{config}
* best_slider_length & unsigned & 0 &
* The best length for the sliding part. $
* minimum_value & int & 0 & The minimum value the slider can have. $
* maximum_value & int & 0 & The maximum value the slider can have. $
*
* step_size & unsigned & 0 & The number of items the slider's value
* increases with one step. $
* value & int & 0 & The value of the slider. $
*
* minimum_value_label & t_string & "" &
* If the minimum value is chosen there
* might be the need for a special value
* (eg off). When this key has a value
* that value will be shown if the minimum
* is selected. $
* maximum_value_label & t_string & "" &
* If the maximum value is chosen there
* might be the need for a special value
* (eg unlimited)). When this key has a
* value that value will be shown if the
* maximum is selected. $
* value_labels & [] & It might be the labels need to be shown
* are not a linear number sequence eg
* (0.5, 1, 2, 4) in that case for all
* items this section can be filled with
* the values, which should be the same
* number of items as the items in the
* slider. NOTE if this option is used,
* 'minimum_value_label' and
* 'maximum_value_label' are ignored. $
* @end{table}
* @end{tag}{name="slider"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,55 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_SLIDER_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_SLIDER_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
#include "tstring.hpp"
#include <vector>
namespace gui2
{
namespace implementation
{
struct tbuilder_slider : public tbuilder_control
{
explicit tbuilder_slider(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
private:
unsigned best_slider_length_;
int minimum_value_;
int maximum_value_;
unsigned step_size_;
int value_;
t_string minimum_value_label_;
t_string maximum_value_label_;
std::vector<t_string> value_labels_;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,90 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/spacer.hpp"
#include "config.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/widgets/spacer.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_spacer::tbuilder_spacer(const config& cfg)
: tbuilder_control(cfg), width_(cfg["width"]), height_(cfg["height"])
{
}
twidget* tbuilder_spacer::build() const
{
tspacer* widget = new tspacer();
init_control(widget);
const game_logic::map_formula_callable& size = get_screen_size_variables();
const unsigned width = width_(size);
const unsigned height = height_(size);
if(width || height) {
widget->set_best_size(tpoint(width, height));
}
DBG_GUI_G << "Window builder: placed spacer '" << id
<< "' with definition '" << definition << "'.\n";
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI_MACRO
* @begin{macro}{spacer_description}
*
* A spacer is a dummy item to either fill in a widget since no empty
* items are allowed or to reserve a fixed space.
* @end{macro}
*/
/*WIKI
* @page = GUIWidgetInstanceWML
* @order = 2_spacer
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="spacer"}{min=0}{max=-1}{super="generic/widget_instance"}
* == Spacer ==
*
* @macro = spacer_description
*
* If either the width or the height is non-zero the spacer functions as a
* fixed size spacer.
*
* @begin{table}{config}
* width & f_unsigned & 0 & The width of the spacer. $
* height & f_unsigned & 0 & The height of the spacer. $
* @end{table}
*
* The variable available are the same as for the window resolution see
* http://www.wesnoth.org/wiki/GUIToolkitWML#Resolution_2 for the list of
* items.
* @end{tag}{name="spacer"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

View file

@ -1,43 +0,0 @@
/*
Copyright (C) 2008 - 2016 by Mark de Wever <koraq@xs4all.nl>
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.
*/
#ifndef GUI_AUXILIARY_WINDOW_BUILDER_SPACER_HPP_INCLUDED
#define GUI_AUXILIARY_WINDOW_BUILDER_SPACER_HPP_INCLUDED
#include "gui/auxiliary/window_builder/control.hpp"
namespace gui2
{
namespace implementation
{
struct tbuilder_spacer : public tbuilder_control
{
explicit tbuilder_spacer(const config& cfg);
using tbuilder_control::build;
twidget* build() const;
private:
tformula<unsigned> width_;
tformula<unsigned> height_;
};
} // namespace implementation
} // namespace gui2
#endif

View file

@ -1,90 +0,0 @@
/*
Copyright (C) 2009 - 2016 by Mark de Wever <koraq@xs4all.nl>
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/auxiliary/window_builder/stacked_widget.hpp"
#include "config.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/log.hpp"
#include "gui/auxiliary/widget_definition/stacked_widget.hpp"
#include "gui/widgets/stacked_widget.hpp"
#include "utils/foreach.hpp"
#include "wml_exception.hpp"
namespace gui2
{
namespace implementation
{
tbuilder_stacked_widget::tbuilder_stacked_widget(const config& cfg)
: tbuilder_control(cfg), stack()
{
const config& s = cfg.child("stack");
VALIDATE(s, _("No stack defined."));
FOREACH(const AUTO & layer, s.child_range("layer"))
{
stack.push_back(new tbuilder_grid(layer));
}
}
twidget* tbuilder_stacked_widget::build() const
{
tstacked_widget* widget = new tstacked_widget();
init_control(widget);
DBG_GUI_G << "Window builder: placed stacked widget '" << id
<< "' with definition '" << definition << "'.\n";
boost::intrusive_ptr<const tstacked_widget_definition::tresolution>
conf = boost::
dynamic_pointer_cast<const tstacked_widget_definition::tresolution>(
widget->config());
assert(conf);
widget->init_grid(conf->grid);
widget->finalize(stack);
return widget;
}
} // namespace implementation
} // namespace gui2
/*WIKI
* @page = GUIToolkitWML
* @order = 2_stacked_widget
*
* == Stacked widget ==
*
* A stacked widget is a set of widget stacked on top of each other. The
* widgets are drawn in the layers, in the order defined in the the instance
* config. By default the last drawn item is also the 'active' layer for the
* event handling.
* @begin{parent}{name="gui/window/resolution/grid/row/column/"}
* @begin{tag}{name="stacked_widget"}{min="0"}{max="-1"}{super="generic/widget_instance"}
* @begin{table}{config}
* @end{table}
* @begin{tag}{name="stack"}{min=0}{max=-1}
* @begin{tag}{name="layer"}{min=0}{max=-1}{super="gui/window/resolution/grid"}
* @end{tag}{name="layer"}
* @end{tag}{name="stack"}
* @end{tag}{name="stacked_widget"}
* @end{parent}{name="gui/window/resolution/grid/row/column/"}
*/

Some files were not shown because too many files have changed in this diff Show more