diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-08-30 22:55:36 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-08-30 22:55:36 -0400 |
commit | 9b1bc8f14590db0cf460fd62a7eb856e02a531db (patch) | |
tree | ede45d77aa834d9c19f3db0b2af6e08e511b1a5d /dialogs | |
parent | 44b7989f50d458a8d60024f29e225e40a106d927 (diff) | |
download | abaddon-portaudio-9b1bc8f14590db0cf460fd62a7eb856e02a531db.tar.gz abaddon-portaudio-9b1bc8f14590db0cf460fd62a7eb856e02a531db.zip |
add ability to edit messages
Diffstat (limited to 'dialogs')
-rw-r--r-- | dialogs/editmessage.cpp | 39 | ||||
-rw-r--r-- | dialogs/editmessage.hpp | 20 |
2 files changed, 59 insertions, 0 deletions
diff --git a/dialogs/editmessage.cpp b/dialogs/editmessage.cpp new file mode 100644 index 0000000..e6f226e --- /dev/null +++ b/dialogs/editmessage.cpp @@ -0,0 +1,39 @@ +#include "editmessage.hpp" + +EditMessageDialog::EditMessageDialog(Gtk::Window &parent) + : Gtk::Dialog("Edit Message", 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_content = m_text.get_buffer()->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_text.set_hexpand(true); + + m_scroll.set_hexpand(true); + m_scroll.set_vexpand(true); + m_scroll.add(m_text); + + m_layout.add(m_scroll); + m_layout.add(m_bbox); + get_content_area()->add(m_layout); + + show_all_children(); +} + +std::string EditMessageDialog::GetContent() { + return m_content; +} diff --git a/dialogs/editmessage.hpp b/dialogs/editmessage.hpp new file mode 100644 index 0000000..5427897 --- /dev/null +++ b/dialogs/editmessage.hpp @@ -0,0 +1,20 @@ +#pragma once +#include <gtkmm.h> +#include <string> + +class EditMessageDialog : public Gtk::Dialog { +public: + EditMessageDialog(Gtk::Window &parent); + std::string GetContent(); + +protected: + Gtk::Box m_layout; + Gtk::Button m_ok; + Gtk::Button m_cancel; + Gtk::ButtonBox m_bbox; + Gtk::ScrolledWindow m_scroll; + Gtk::TextView m_text; + +private: + std::string m_content; +}; |