diff options
Diffstat (limited to 'dialogs')
-rw-r--r-- | dialogs/token.cpp | 34 | ||||
-rw-r--r-- | dialogs/token.hpp | 19 |
2 files changed, 53 insertions, 0 deletions
diff --git a/dialogs/token.cpp b/dialogs/token.cpp new file mode 100644 index 0000000..ca016a0 --- /dev/null +++ b/dialogs/token.cpp @@ -0,0 +1,34 @@ +#include "token.hpp" + +TokenDialog::TokenDialog(Gtk::Window &parent) + : Gtk::Dialog("Set Token", parent, true) + , m_layout(Gtk::ORIENTATION_VERTICAL) + , m_bbox(Gtk::ORIENTATION_HORIZONTAL) + , m_ok("OK") + , m_cancel("Cancel") { + set_default_size(300, 50); + + m_ok.signal_clicked().connect([&]() { + m_token = m_entry.get_text(); + response(Gtk::RESPONSE_OK); + }); + + m_cancel.signal_clicked().connect([&]() { + response(Gtk::RESPONSE_CANCEL); + }); + + m_bbox.pack_start(m_ok, Gtk::PACK_SHRINK); + m_bbox.pack_start(m_cancel, Gtk::PACK_SHRINK); + m_bbox.set_layout(Gtk::BUTTONBOX_END); + + m_entry.set_hexpand(true); + m_layout.add(m_entry); + m_layout.add(m_bbox); + get_content_area()->add(m_layout); + + show_all_children(); +} + +std::string TokenDialog::GetToken() { + return m_token; +} diff --git a/dialogs/token.hpp b/dialogs/token.hpp new file mode 100644 index 0000000..7778bfb --- /dev/null +++ b/dialogs/token.hpp @@ -0,0 +1,19 @@ +#pragma once +#include <gtkmm.h> +#include <string> + +class TokenDialog : public Gtk::Dialog { +public: + TokenDialog(Gtk::Window &parent); + std::string GetToken(); + +protected: + Gtk::Box m_layout; + Gtk::Button m_ok; + Gtk::Button m_cancel; + Gtk::ButtonBox m_bbox; + Gtk::Entry m_entry; + +private: + std::string m_token; +}; |