summaryrefslogtreecommitdiff
path: root/windows/guildsettings/emojispane.hpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-03-17 23:55:41 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-03-17 23:55:41 -0400
commit60404783bd4ce9be26233fe66fc3a74475d9eaa3 (patch)
tree7fd851858e9bdf25ad36c0e1542f5b28fb1c1e64 /windows/guildsettings/emojispane.hpp
parent65943b4bd74ae52e6f6ffbff0e9ba619053172d6 (diff)
downloadabaddon-portaudio-60404783bd4ce9be26233fe66fc3a74475d9eaa3.tar.gz
abaddon-portaudio-60404783bd4ce9be26233fe66fc3a74475d9eaa3.zip
manage emojis
Diffstat (limited to 'windows/guildsettings/emojispane.hpp')
-rw-r--r--windows/guildsettings/emojispane.hpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/windows/guildsettings/emojispane.hpp b/windows/guildsettings/emojispane.hpp
new file mode 100644
index 0000000..806babb
--- /dev/null
+++ b/windows/guildsettings/emojispane.hpp
@@ -0,0 +1,55 @@
+#pragma once
+#include <gtkmm.h>
+#include "../../components/inotifyswitched.hpp"
+#include "../../discord/emoji.hpp"
+
+class GuildSettingsEmojisPane : public Gtk::Box
+ , public INotifySwitched {
+public:
+ GuildSettingsEmojisPane(Snowflake guild_id);
+
+private:
+ void on_switched_to() override;
+
+ bool m_requested = false;
+
+ void AddEmojiRow(const EmojiData &emoji);
+
+ void OnFetchEmojis(std::vector<EmojiData> emojis);
+
+ void OnEditName(Snowflake id, const std::string &name);
+ void OnMenuCopyID();
+ void OnMenuDelete();
+ void OnMenuCopyEmojiURL();
+ void OnMenuShowEmoji();
+ bool OnTreeButtonPress(GdkEventButton *event);
+
+ Snowflake GuildID;
+
+ Gtk::Entry m_search;
+ Gtk::ScrolledWindow m_view_scroll;
+ Gtk::TreeView m_view;
+
+ class ModelColumns : public Gtk::TreeModel::ColumnRecord {
+ public:
+ ModelColumns();
+
+ Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> m_col_pixbuf;
+ Gtk::TreeModelColumn<Glib::RefPtr<Gdk::PixbufAnimation>> m_col_pixbuf_animation;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_name;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_creator;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_animated;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_available;
+ Gtk::TreeModelColumn<Snowflake> m_col_id;
+ };
+
+ ModelColumns m_columns;
+ Glib::RefPtr<Gtk::ListStore> m_model;
+ Glib::RefPtr<Gtk::TreeModelFilter> m_filter;
+
+ Gtk::Menu m_menu;
+ Gtk::MenuItem m_menu_delete;
+ Gtk::MenuItem m_menu_copy_id;
+ Gtk::MenuItem m_menu_copy_emoji_url;
+ Gtk::MenuItem m_menu_show_emoji;
+};