diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-09-28 22:10:36 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-09-28 22:10:36 -0400 |
commit | a96d96b3aa883c5ee5892e4ff94e3c539989c66a (patch) | |
tree | d2d874aac3e2ba5daa2edb6ee682dce2345e7a5f /src/windows | |
parent | d57d822aa9f85ee023e2a50bd525d530b39a7186 (diff) | |
download | abaddon-portaudio-a96d96b3aa883c5ee5892e4ff94e3c539989c66a.tar.gz abaddon-portaudio-a96d96b3aa883c5ee5892e4ff94e3c539989c66a.zip |
basic mute/deafen
Diffstat (limited to 'src/windows')
-rw-r--r-- | src/windows/voicewindow.cpp | 36 | ||||
-rw-r--r-- | src/windows/voicewindow.hpp | 30 |
2 files changed, 66 insertions, 0 deletions
diff --git a/src/windows/voicewindow.cpp b/src/windows/voicewindow.cpp new file mode 100644 index 0000000..b352c86 --- /dev/null +++ b/src/windows/voicewindow.cpp @@ -0,0 +1,36 @@ +#include "voicewindow.hpp" + +VoiceWindow::VoiceWindow() + : m_main(Gtk::ORIENTATION_VERTICAL) + , m_controls(Gtk::ORIENTATION_HORIZONTAL) + , m_mute("Mute") + , m_deafen("Deafen") { + get_style_context()->add_class("app-window"); + + set_default_size(300, 300); + + m_mute.signal_toggled().connect(sigc::mem_fun(*this, &VoiceWindow::OnMuteChanged)); + m_deafen.signal_toggled().connect(sigc::mem_fun(*this, &VoiceWindow::OnDeafenChanged)); + + m_controls.add(m_mute); + m_controls.add(m_deafen); + m_main.add(m_controls); + add(m_main); + show_all_children(); +} + +void VoiceWindow::OnMuteChanged() { + m_signal_mute.emit(m_mute.get_active()); +} + +void VoiceWindow::OnDeafenChanged() { + m_signal_deafen.emit(m_deafen.get_active()); +} + +VoiceWindow::type_signal_mute VoiceWindow::signal_mute() { + return m_signal_mute; +} + +VoiceWindow::type_signal_deafen VoiceWindow::signal_deafen() { + return m_signal_deafen; +} diff --git a/src/windows/voicewindow.hpp b/src/windows/voicewindow.hpp new file mode 100644 index 0000000..bee0a84 --- /dev/null +++ b/src/windows/voicewindow.hpp @@ -0,0 +1,30 @@ +#pragma once +#include <gtkmm/box.h> +#include <gtkmm/checkbutton.h> +#include <gtkmm/window.h> + +class VoiceWindow : public Gtk::Window { +public: + VoiceWindow(); + +private: + void OnMuteChanged(); + void OnDeafenChanged(); + + Gtk::Box m_main; + Gtk::Box m_controls; + + Gtk::CheckButton m_mute; + Gtk::CheckButton m_deafen; + +public: + using type_signal_mute = sigc::signal<void(bool)>; + using type_signal_deafen = sigc::signal<void(bool)>; + + type_signal_mute signal_mute(); + type_signal_deafen signal_deafen(); + +private: + type_signal_mute m_signal_mute; + type_signal_deafen m_signal_deafen; +}; |