From a96d96b3aa883c5ee5892e4ff94e3c539989c66a Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Wed, 28 Sep 2022 22:10:36 -0400 Subject: basic mute/deafen --- src/windows/voicewindow.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/windows/voicewindow.hpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 src/windows/voicewindow.cpp create mode 100644 src/windows/voicewindow.hpp (limited to 'src/windows') 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 +#include +#include + +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; + using type_signal_deafen = sigc::signal; + + type_signal_mute signal_mute(); + type_signal_deafen signal_deafen(); + +private: + type_signal_mute m_signal_mute; + type_signal_deafen m_signal_deafen; +}; -- cgit v1.2.3