summaryrefslogtreecommitdiff
path: root/components/chatinput.hpp
blob: ad7f0b102d8234725554fcdeb0b2737b752c4aaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once
#include <gtkmm.h>

class ChatInput : public Gtk::ScrolledWindow {
public:
    ChatInput();

    void InsertText(const Glib::ustring &text);
    Glib::RefPtr<Gtk::TextBuffer> GetBuffer();
    bool ProcessKeyPress(GdkEventKey *event);

protected:
    void on_grab_focus() override;

private:
    Gtk::TextView m_textview;

public:
    typedef sigc::signal<bool, Glib::ustring> type_signal_submit;
    typedef sigc::signal<void> type_signal_escape;

    type_signal_submit signal_submit();
    type_signal_escape signal_escape();

private:
    type_signal_submit m_signal_submit;
    type_signal_escape m_signal_escape;
};