summaryrefslogtreecommitdiff
path: root/src/windows
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-09-28 22:10:36 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-09-28 22:10:36 -0400
commita96d96b3aa883c5ee5892e4ff94e3c539989c66a (patch)
treed2d874aac3e2ba5daa2edb6ee682dce2345e7a5f /src/windows
parentd57d822aa9f85ee023e2a50bd525d530b39a7186 (diff)
downloadabaddon-portaudio-a96d96b3aa883c5ee5892e4ff94e3c539989c66a.tar.gz
abaddon-portaudio-a96d96b3aa883c5ee5892e4ff94e3c539989c66a.zip
basic mute/deafen
Diffstat (limited to 'src/windows')
-rw-r--r--src/windows/voicewindow.cpp36
-rw-r--r--src/windows/voicewindow.hpp30
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;
+};