summaryrefslogtreecommitdiff
path: root/abaddon.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-11-01 02:53:37 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2020-11-01 02:53:37 -0500
commit534bfccf2330bb85a19d0a3bb6d90df3c4d9d83a (patch)
tree7fb15e6aeea94c3d6570e03f5e24388703424f92 /abaddon.cpp
parent18f4f7ce5e597f83c67349a91f67cfa5a317069d (diff)
downloadabaddon-portaudio-534bfccf2330bb85a19d0a3bb6d90df3c4d9d83a.tar.gz
abaddon-portaudio-534bfccf2330bb85a19d0a3bb6d90df3c4d9d83a.zip
add set status for funsies
Diffstat (limited to 'abaddon.cpp')
-rw-r--r--abaddon.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/abaddon.cpp b/abaddon.cpp
index 30ee8b5..eea68ce 100644
--- a/abaddon.cpp
+++ b/abaddon.cpp
@@ -7,6 +7,7 @@
#include "dialogs/editmessage.hpp"
#include "dialogs/joinguild.hpp"
#include "dialogs/confirm.hpp"
+#include "dialogs/setstatus.hpp"
#include "abaddon.hpp"
#ifdef _WIN32
@@ -62,6 +63,7 @@ int Abaddon::StartGTK() {
m_main_window->signal_action_set_token().connect(sigc::mem_fun(*this, &Abaddon::ActionSetToken));
m_main_window->signal_action_reload_css().connect(sigc::mem_fun(*this, &Abaddon::ActionReloadCSS));
m_main_window->signal_action_join_guild().connect(sigc::mem_fun(*this, &Abaddon::ActionJoinGuildDialog));
+ m_main_window->signal_action_set_status().connect(sigc::mem_fun(*this, &Abaddon::ActionSetStatus));
m_main_window->GetChannelList()->signal_action_channel_item_select().connect(sigc::mem_fun(*this, &Abaddon::ActionChannelOpened));
m_main_window->GetChannelList()->signal_action_guild_move_up().connect(sigc::mem_fun(*this, &Abaddon::ActionMoveGuildUp));
@@ -372,6 +374,19 @@ void Abaddon::ActionBanMember(Snowflake user_id, Snowflake guild_id) {
m_discord.BanUser(user_id, guild_id);
}
+void Abaddon::ActionSetStatus() {
+ SetStatusDialog dlg(*m_main_window);
+ const auto response = dlg.run();
+ if (response != Gtk::RESPONSE_OK || !m_discord.IsStarted()) return;
+ const auto status = dlg.GetStatusType();
+ const auto activity_type = dlg.GetActivityType();
+ const auto activity_name = dlg.GetActivityName();
+ Activity activity;
+ activity.Name = activity_name;
+ activity.Type = activity_type;
+ m_discord.UpdateStatus(status, false, activity);
+}
+
void Abaddon::ActionReloadCSS() {
try {
Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_provider);