The Battle for Wesnoth 1.21.0-dev
 
Loading...
Searching...
No Matches
viewport.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2012 - 2025
3 by Mark de Wever <koraq@xs4all.nl>
4 Part of the Battle for Wesnoth Project https://www.wesnoth.org/
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY.
12
13 See the COPYING file for more details.
14*/
15
16#pragma once
17
20
21namespace gui2
22{
23
24// ------------ WIDGET -----------{
25
26namespace implementation
27{
28struct builder_viewport;
29} // namespace implementation
30
31class viewport : public widget
32{
34
35public:
37 const builder_widget::replacements_map& replacements);
38
39 ~viewport();
40
41 /** See @ref widget::place. */
42 virtual void place(const point& origin, const point& size) override;
43
44 /** See @ref widget::layout_initialize. */
45 virtual void layout_initialize(const bool full_initialization) override;
46
47 /** See @ref widget::impl_draw_children. */
48 virtual void impl_draw_children() override;
49
50 /** See @ref widget::request_reduce_width. */
51 virtual void request_reduce_width(const unsigned maximum_width) override;
52
53 /** See @ref widget::find_at. */
54 virtual widget* find_at(const point& coordinate,
55 const bool must_be_active) override;
56
57 /** See @ref widget::find_at. */
58 virtual const widget* find_at(const point& coordinate,
59 const bool must_be_active) const override;
60
61 /** See @ref widget::find. */
62 widget* find(const std::string_view id, const bool must_be_active) override;
63
64 /** See @ref widget::find. */
65 const widget* find(const std::string_view id, const bool must_be_active) const override;
66
67private:
68 /** See @ref widget::calculate_best_size. */
69 virtual point calculate_best_size() const override;
70
71public:
72 /** See @ref widget::disable_click_dismiss. */
73 bool disable_click_dismiss() const override;
74
75 /** See @ref widget::create_walker. */
76 virtual iteration::walker_ptr create_walker() override;
77
78private:
79 std::unique_ptr<widget> widget_;
80};
81
82// }---------- BUILDER -----------{
83
84namespace implementation
85{
86
88{
89 explicit builder_viewport(const config& cfg);
90
91 virtual std::unique_ptr<widget> build() const override;
92
93 virtual std::unique_ptr<widget> build(const replacements_map& replacements) const override;
94
96};
97
98} // namespace implementation
99
100// }------------ END --------------
101
102} // namespace gui2
A config object defines a single node in a WML file, with access to child nodes.
Definition config.hpp:157
widget * find(const std::string_view id, const bool must_be_active) override
See widget::find.
Definition viewport.cpp:134
virtual void layout_initialize(const bool full_initialization) override
See widget::layout_initialize.
Definition viewport.cpp:101
virtual point calculate_best_size() const override
See widget::calculate_best_size.
Definition viewport.cpp:144
bool disable_click_dismiss() const override
See widget::disable_click_dismiss.
Definition viewport.cpp:149
std::unique_ptr< widget > widget_
Definition viewport.hpp:79
virtual void request_reduce_width(const unsigned maximum_width) override
See widget::request_reduce_width.
Definition viewport.cpp:119
virtual iteration::walker_ptr create_walker() override
See widget::create_walker.
Definition viewport.cpp:154
virtual void impl_draw_children() override
See widget::impl_draw_children.
Definition viewport.cpp:110
virtual void place(const point &origin, const point &size) override
See widget::place.
Definition viewport.cpp:94
virtual widget * find_at(const point &coordinate, const bool must_be_active) override
See widget::find_at.
Definition viewport.cpp:123
Base class for all widgets.
Definition widget.hpp:55
const config * cfg
std::unique_ptr< class walker_base > walker_ptr
Definition widget.hpp:44
Generic file dialog.
std::shared_ptr< builder_widget > builder_widget_ptr
Contains the implementation details for lexical_cast and shouldn't be used directly.
Contains the info needed to instantiate a widget.
std::map< std::string, std::shared_ptr< builder_widget > > replacements_map
The replacements type is used to define replacement types.
virtual std::unique_ptr< widget > build() const override
Definition viewport.cpp:173
Helper to implement private functions without modifying the header.
Definition viewport.cpp:41
Holds a 2D point.
Definition point.hpp:25