summaryrefslogtreecommitdiff
path: root/windows/guildsettings/invitespane.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'windows/guildsettings/invitespane.hpp')
-rw-r--r--windows/guildsettings/invitespane.hpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/windows/guildsettings/invitespane.hpp b/windows/guildsettings/invitespane.hpp
new file mode 100644
index 0000000..c32f194
--- /dev/null
+++ b/windows/guildsettings/invitespane.hpp
@@ -0,0 +1,39 @@
+#pragma once
+#include <gtkmm.h>
+#include "../../discord/objects.hpp"
+
+class GuildSettingsInvitesPane : public Gtk::ScrolledWindow {
+public:
+ GuildSettingsInvitesPane(Snowflake id);
+
+private:
+ void AppendInvite(const InviteData &invite);
+ void OnInviteFetch(const std::optional<InviteData> &invite);
+ void OnInvitesFetch(const std::vector<InviteData> &invites);
+ void OnInviteCreate(const InviteData &invite);
+ void OnInviteDelete(const InviteDeleteObject &data);
+ void OnMenuDelete();
+ bool OnTreeButtonPress(GdkEventButton *event);
+
+ Gtk::TreeView m_view;
+
+ Snowflake GuildID;
+
+ class ModelColumns : public Gtk::TreeModel::ColumnRecord {
+ public:
+ ModelColumns();
+
+ Gtk::TreeModelColumn<Glib::ustring> m_col_code;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_expires;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_inviter;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_temporary;
+ Gtk::TreeModelColumn<int> m_col_uses;
+ Gtk::TreeModelColumn<Glib::ustring> m_col_max_uses;
+ };
+
+ ModelColumns m_columns;
+ Glib::RefPtr<Gtk::ListStore> m_model;
+
+ Gtk::Menu m_menu;
+ Gtk::MenuItem m_menu_delete;
+};