Ardour
9.0-pre0-582-g084a23a80d
stateful_button.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2005 Paul Davis <paul@linuxaudiosystems.com>
3
* Copyright (C) 2017 Robin Gareus <robin@gareus.org>
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#ifndef _WIDGETS_STATEFUL_BUTTON_H_
21
#define _WIDGETS_STATEFUL_BUTTON_H_
22
23
#include <vector>
24
25
#include <
gtkmm/togglebutton.h
>
26
27
#include "
widgets/visibility.h
"
28
29
namespace
ArdourWidgets
{
30
31
class
LIBWIDGETS_API
StateButton
32
{
33
public
:
34
StateButton
();
35
virtual
~StateButton
() {}
36
37
void
set_visual_state
(
int
);
38
int
get_visual_state
() {
return
visual_state; }
39
void
set_self_managed
(
bool
yn) { _self_managed = yn; }
40
virtual
void
set_widget_name
(
const
std::string&
name
) = 0;
41
42
protected
:
43
int
visual_state
;
44
bool
_self_managed
;
45
bool
_is_realized
;
46
bool
style_changing
;
47
Gtk::StateType
state_before_prelight
;
48
bool
is_toggle
;
49
50
virtual
std::string
get_widget_name
()
const
= 0;
51
virtual
Gtk::Widget
*
get_child_widget
() = 0;
52
53
void
avoid_prelight_on_style_changed
(
const
Glib::RefPtr<Gtk::Style>& style,
GtkWidget
* widget);
54
void
avoid_prelight_on_state_changed
(
Gtk::StateType
old_state,
GtkWidget
* widget);
55
};
56
57
58
class
LIBWIDGETS_API
StatefulToggleButton
:
public
StateButton
,
public
Gtk::ToggleButton
59
{
60
public
:
61
StatefulToggleButton
();
62
explicit
StatefulToggleButton
(
const
std::string &label);
63
~StatefulToggleButton
() {}
64
void
set_widget_name
(
const
std::string&
name
);
65
66
protected
:
67
void
on_realize
();
68
void
on_toggled
();
69
void
on_style_changed
(
const
Glib::RefPtr<Gtk::Style>& style);
70
void
on_state_changed
(
Gtk::StateType
old_state);
71
72
Gtk::Widget
*
get_child_widget
();
73
std::string
get_widget_name
()
const
{
return
get_name(); }
74
};
75
76
class
LIBWIDGETS_API
StatefulButton
:
public
StateButton
,
public
Gtk::Button
77
{
78
public
:
79
StatefulButton
();
80
explicit
StatefulButton
(
const
std::string &label);
81
virtual
~StatefulButton
() {}
82
void
set_widget_name
(
const
std::string&
name
);
83
84
protected
:
85
void
on_realize
();
86
void
on_style_changed
(
const
Glib::RefPtr<Gtk::Style>& style);
87
void
on_state_changed
(
Gtk::StateType
old_state);
88
89
Gtk::Widget
*
get_child_widget
();
90
std::string
get_widget_name
()
const
{
return
get_name(); }
91
};
92
93
}
/* end namespace */
94
95
#endif
ArdourWidgets::StateButton
Definition:
stateful_button.h:32
ArdourWidgets::StateButton::set_self_managed
void set_self_managed(bool yn)
Definition:
stateful_button.h:39
ArdourWidgets::StateButton::get_child_widget
virtual Gtk::Widget * get_child_widget()=0
ArdourWidgets::StateButton::~StateButton
virtual ~StateButton()
Definition:
stateful_button.h:35
ArdourWidgets::StateButton::avoid_prelight_on_style_changed
void avoid_prelight_on_style_changed(const Glib::RefPtr< Gtk::Style > &style, GtkWidget *widget)
ArdourWidgets::StateButton::get_visual_state
int get_visual_state()
Definition:
stateful_button.h:38
ArdourWidgets::StateButton::set_visual_state
void set_visual_state(int)
ArdourWidgets::StateButton::style_changing
bool style_changing
Definition:
stateful_button.h:46
ArdourWidgets::StateButton::avoid_prelight_on_state_changed
void avoid_prelight_on_state_changed(Gtk::StateType old_state, GtkWidget *widget)
ArdourWidgets::StateButton::StateButton
StateButton()
ArdourWidgets::StateButton::get_widget_name
virtual std::string get_widget_name() const =0
ArdourWidgets::StateButton::set_widget_name
virtual void set_widget_name(const std::string &name)=0
ArdourWidgets::StateButton::_is_realized
bool _is_realized
Definition:
stateful_button.h:45
ArdourWidgets::StateButton::is_toggle
bool is_toggle
Definition:
stateful_button.h:48
ArdourWidgets::StateButton::state_before_prelight
Gtk::StateType state_before_prelight
Definition:
stateful_button.h:47
ArdourWidgets::StateButton::visual_state
int visual_state
Definition:
stateful_button.h:43
ArdourWidgets::StateButton::_self_managed
bool _self_managed
Definition:
stateful_button.h:44
ArdourWidgets::StatefulButton
Definition:
stateful_button.h:77
ArdourWidgets::StatefulButton::get_widget_name
std::string get_widget_name() const
Definition:
stateful_button.h:90
ArdourWidgets::StatefulButton::get_child_widget
Gtk::Widget * get_child_widget()
ArdourWidgets::StatefulButton::StatefulButton
StatefulButton(const std::string &label)
ArdourWidgets::StatefulButton::~StatefulButton
virtual ~StatefulButton()
Definition:
stateful_button.h:81
ArdourWidgets::StatefulButton::set_widget_name
void set_widget_name(const std::string &name)
ArdourWidgets::StatefulButton::on_style_changed
void on_style_changed(const Glib::RefPtr< Gtk::Style > &style)
ArdourWidgets::StatefulButton::on_realize
void on_realize()
This is a default handler for the signal signal_realize().
ArdourWidgets::StatefulButton::StatefulButton
StatefulButton()
ArdourWidgets::StatefulButton::on_state_changed
void on_state_changed(Gtk::StateType old_state)
This is a default handler for the signal signal_state_changed().
ArdourWidgets::StatefulToggleButton
Definition:
stateful_button.h:59
ArdourWidgets::StatefulToggleButton::get_child_widget
Gtk::Widget * get_child_widget()
ArdourWidgets::StatefulToggleButton::set_widget_name
void set_widget_name(const std::string &name)
ArdourWidgets::StatefulToggleButton::get_widget_name
std::string get_widget_name() const
Definition:
stateful_button.h:73
ArdourWidgets::StatefulToggleButton::~StatefulToggleButton
~StatefulToggleButton()
Definition:
stateful_button.h:63
ArdourWidgets::StatefulToggleButton::on_toggled
void on_toggled()
This is a default handler for the signal signal_toggled().
ArdourWidgets::StatefulToggleButton::on_realize
void on_realize()
This is a default handler for the signal signal_realize().
ArdourWidgets::StatefulToggleButton::StatefulToggleButton
StatefulToggleButton()
ArdourWidgets::StatefulToggleButton::on_style_changed
void on_style_changed(const Glib::RefPtr< Gtk::Style > &style)
ArdourWidgets::StatefulToggleButton::on_state_changed
void on_state_changed(Gtk::StateType old_state)
This is a default handler for the signal signal_state_changed().
ArdourWidgets::StatefulToggleButton::StatefulToggleButton
StatefulToggleButton(const std::string &label)
Gtk::Button
Definition:
tk/ytkmm/ytkmm/gtkmm/button.h:60
Gtk::ToggleButton
Definition:
togglebutton.h:53
Gtk::Widget
Definition:
tk/ytkmm/ytkmm/gtkmm/widget.h:336
Gtk::StateType
StateType
Definition:
libs/tk/ytkmm/ytkmm/gtkmm/enums.h:1138
name
GtkImageIconNameData name
Definition:
gtkimage.h:6
ArdourWidgets
Definition:
ardour_ui.h:192
_GtkWidget
Definition:
gtkwidget.h:531
togglebutton.h
visibility.h
LIBWIDGETS_API
#define LIBWIDGETS_API
Definition:
widgets/widgets/visibility.h:39
libs
widgets
widgets
stateful_button.h
Generated on Wed Dec 25 2024 05:44:49 for Ardour by
1.9.1