#pragma once #include #include #include #include #include #include #include #include #include namespace dchat { class ChatWindow : public Gtk::Grid { public: ChatWindow(); void addChannel(const odhtdb::Hash &nodeHash); void addLocalMessage(const odhtdb::Hash &channelId, Glib::ustring msg); private: void setupTopBar(); void setupLeftPanel(Gtk::Paned *sidePanels); void setupMessageArea(Gtk::Grid *rightPanel); void setupChatInput(Gtk::Grid *rightPanel); private: Gtk::Grid topbar; Gtk::Entry topbarSearchBar; Gtk::Grid leftPanelChannels; Gtk::Label currentChannelTitle; Gtk::ScrolledWindow chatArea; Gtk::Grid chatAreaLayout; Gtk::TextView chatInput; struct ChannelData { Gtk::Button *button; int messageCount; }; odhtdb::MapHash channelDataById; int channelCount; }; }