The Battle for Wesnoth
1.21.0-dev
Loading...
Searching...
No Matches
widgets
button.hpp
Go to the documentation of this file.
1
/*
2
Copyright (C) 2003 - 2025
3
by David White <dave@whitevine.net>
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
18
#include "
widget.hpp
"
19
20
#include "
exceptions.hpp
"
21
22
#include "
sdl/texture.hpp
"
23
24
namespace
gui
{
25
26
class
button
:
public
widget
27
{
28
public
:
29
enum
TYPE
{
TYPE_PRESS
,
TYPE_CHECK
,
TYPE_TURBO
,
TYPE_IMAGE
,
TYPE_RADIO
};
30
TYPE
get_type
()
const
{
return
type_
; }
31
32
enum
SPACE_CONSUMPTION
{
DEFAULT_SPACE
,
MINIMUM_SPACE
};
33
34
button
(
const
std::string&
label
,
TYPE
type=
TYPE_PRESS
,
35
const
std::string& button_image=
""
,
SPACE_CONSUMPTION
spacing=
DEFAULT_SPACE
,
36
const
bool
auto_join=
true
, std::string overlay_image=
""
,
int
font_size = -1);
37
38
39
/** Default implementation, but defined out-of-line for efficiency reasons. */
40
virtual
~button
();
41
void
set_check
(
bool
check);
42
void
set_active
(
bool
active);
43
bool
checked
()
const
;
44
45
void
set_label
(
const
std::string& val);
46
void
set_image
(
const
std::string& image_file_base);
47
void
set_overlay
(
const
std::string& image_file_base);
48
void
set_image_path_suffix
(
const
std::string& suffix) {
button_image_path_suffix_
= suffix;
load_images
(); }
49
50
bool
pressed
();
51
bool
hit
(
int
x,
int
y)
const
;
52
virtual
void
enable
(
bool
new_val=
true
);
53
void
release
();
54
55
protected
:
56
virtual
void
handle_event
(
const
SDL_Event& event);
57
virtual
void
mouse_motion
(
const
SDL_MouseMotionEvent& event);
58
virtual
void
mouse_down
(
const
SDL_MouseButtonEvent& event);
59
virtual
void
mouse_up
(
const
SDL_MouseButtonEvent& event);
60
virtual
void
draw_contents
();
61
62
TYPE
type_
;
63
64
private
:
65
66
void
load_images
();
67
68
void
calculate_size
();
69
70
std::string
label_text_
;
71
72
texture
image_
,
pressedImage_
,
activeImage_
,
pressedActiveImage_
,
73
touchedImage_
,
disabledImage_
,
pressedDisabledImage_
,
74
overlayImage_
,
overlayPressedImage_
,
overlayPressedDisabledImage_
,
overlayDisabledImage_
,
75
overlayActiveImage_
;
76
rect
textRect_
;
77
78
enum
STATE
{
UNINIT
,
NORMAL
,
ACTIVE
,
PRESSED
,
PRESSED_ACTIVE
,
TOUCHED_NORMAL
,
TOUCHED_PRESSED
};
79
STATE
state_
;
80
81
bool
pressed_
;
82
83
SPACE_CONSUMPTION
spacing_
;
84
85
int
base_height_
,
base_width_
;
86
87
std::string
button_image_name_
;
88
std::string
button_overlay_image_name_
;
89
std::string
button_image_path_suffix_
;
90
91
int
font_size_
;
92
int
horizontal_padding_
;
93
int
checkbox_horizontal_padding_
;
94
int
vertical_padding_
;
95
96
};
//end class button
97
98
}
gui::button
Definition
button.hpp:27
gui::button::checkbox_horizontal_padding_
int checkbox_horizontal_padding_
Definition
button.hpp:93
gui::button::set_overlay
void set_overlay(const std::string &image_file_base)
Definition
button.cpp:395
gui::button::image_
texture image_
Definition
button.hpp:72
gui::button::base_width_
int base_width_
Definition
button.hpp:85
gui::button::handle_event
virtual void handle_event(const SDL_Event &event)
Definition
button.cpp:537
gui::button::load_images
void load_images()
Definition
button.cpp:85
gui::button::disabledImage_
texture disabledImage_
Definition
button.hpp:73
gui::button::set_image_path_suffix
void set_image_path_suffix(const std::string &suffix)
Definition
button.hpp:48
gui::button::hit
bool hit(int x, int y) const
Definition
button.cpp:377
gui::button::touchedImage_
texture touchedImage_
Definition
button.hpp:73
gui::button::pressed
bool pressed()
Definition
button.cpp:568
gui::button::enable
virtual void enable(bool new_val=true)
Definition
button.cpp:273
gui::button::font_size_
int font_size_
Definition
button.hpp:91
gui::button::type_
TYPE type_
Definition
button.hpp:62
gui::button::base_height_
int base_height_
Definition
button.hpp:85
gui::button::get_type
TYPE get_type() const
Definition
button.hpp:30
gui::button::button_image_path_suffix_
std::string button_image_path_suffix_
Definition
button.hpp:89
gui::button::calculate_size
void calculate_size()
Definition
button.cpp:202
gui::button::overlayPressedImage_
texture overlayPressedImage_
Definition
button.hpp:74
gui::button::draw_contents
virtual void draw_contents()
Definition
button.cpp:287
gui::button::pressed_
bool pressed_
Definition
button.hpp:81
gui::button::release
void release()
Definition
button.cpp:481
gui::button::state_
STATE state_
Definition
button.hpp:79
gui::button::spacing_
SPACE_CONSUMPTION spacing_
Definition
button.hpp:83
gui::button::button_image_name_
std::string button_image_name_
Definition
button.hpp:87
gui::button::set_active
void set_active(bool active)
Definition
button.cpp:257
gui::button::SPACE_CONSUMPTION
SPACE_CONSUMPTION
Definition
button.hpp:32
gui::button::MINIMUM_SPACE
@ MINIMUM_SPACE
Definition
button.hpp:32
gui::button::DEFAULT_SPACE
@ DEFAULT_SPACE
Definition
button.hpp:32
gui::button::overlayActiveImage_
texture overlayActiveImage_
Definition
button.hpp:75
gui::button::mouse_up
virtual void mouse_up(const SDL_MouseButtonEvent &event)
Definition
button.cpp:486
gui::button::activeImage_
texture activeImage_
Definition
button.hpp:72
gui::button::label_text_
std::string label_text_
Definition
button.hpp:70
gui::button::pressedActiveImage_
texture pressedActiveImage_
Definition
button.hpp:72
gui::button::TYPE
TYPE
Definition
button.hpp:29
gui::button::TYPE_TURBO
@ TYPE_TURBO
Definition
button.hpp:29
gui::button::TYPE_PRESS
@ TYPE_PRESS
Definition
button.hpp:29
gui::button::TYPE_IMAGE
@ TYPE_IMAGE
Definition
button.hpp:29
gui::button::TYPE_CHECK
@ TYPE_CHECK
Definition
button.hpp:29
gui::button::TYPE_RADIO
@ TYPE_RADIO
Definition
button.hpp:29
gui::button::overlayDisabledImage_
texture overlayDisabledImage_
Definition
button.hpp:74
gui::button::horizontal_padding_
int horizontal_padding_
Definition
button.hpp:92
gui::button::overlayImage_
texture overlayImage_
Definition
button.hpp:74
gui::button::pressedDisabledImage_
texture pressedDisabledImage_
Definition
button.hpp:73
gui::button::set_image
void set_image(const std::string &image_file_base)
Definition
button.cpp:384
gui::button::vertical_padding_
int vertical_padding_
Definition
button.hpp:94
gui::button::set_label
void set_label(const std::string &val)
Definition
button.cpp:407
gui::button::mouse_down
virtual void mouse_down(const SDL_MouseButtonEvent &event)
Definition
button.cpp:458
gui::button::checked
bool checked() const
Definition
button.cpp:268
gui::button::mouse_motion
virtual void mouse_motion(const SDL_MouseMotionEvent &event)
Definition
button.cpp:424
gui::button::STATE
STATE
Definition
button.hpp:78
gui::button::ACTIVE
@ ACTIVE
Definition
button.hpp:78
gui::button::PRESSED
@ PRESSED
Definition
button.hpp:78
gui::button::TOUCHED_NORMAL
@ TOUCHED_NORMAL
Definition
button.hpp:78
gui::button::TOUCHED_PRESSED
@ TOUCHED_PRESSED
Definition
button.hpp:78
gui::button::PRESSED_ACTIVE
@ PRESSED_ACTIVE
Definition
button.hpp:78
gui::button::UNINIT
@ UNINIT
Definition
button.hpp:78
gui::button::NORMAL
@ NORMAL
Definition
button.hpp:78
gui::button::textRect_
rect textRect_
Definition
button.hpp:76
gui::button::pressedImage_
texture pressedImage_
Definition
button.hpp:72
gui::button::overlayPressedDisabledImage_
texture overlayPressedDisabledImage_
Definition
button.hpp:74
gui::button::button_overlay_image_name_
std::string button_overlay_image_name_
Definition
button.hpp:88
gui::button::set_check
void set_check(bool check)
Definition
button.cpp:239
gui::button::~button
virtual ~button()
Default implementation, but defined out-of-line for efficiency reasons.
Definition
button.cpp:198
gui::widget
Definition
widget.hpp:28
texture
Wrapper class to encapsulate creation and management of an SDL_Texture.
Definition
texture.hpp:33
label
std::string label
What to show in the filter's drop-down list.
Definition
manager.cpp:201
gui
General purpose widgets.
Definition
tristate_button.cpp:30
exceptions.hpp
rect
An abstract description of a rectangle with integer coordinates.
Definition
rect.hpp:49
texture.hpp
widget.hpp
Generated by
1.9.8