aboutsummaryrefslogtreecommitdiff
path: root/include/ChatWindow.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/ChatWindow.hpp')
-rw-r--r--include/ChatWindow.hpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/include/ChatWindow.hpp b/include/ChatWindow.hpp
index d457b7d..48bbff5 100644
--- a/include/ChatWindow.hpp
+++ b/include/ChatWindow.hpp
@@ -1,6 +1,8 @@
#pragma once
#include "ImageButton.hpp"
+#include "RoomSettingsWindow.hpp"
+#include "RoomNotificationsWindow.hpp"
#include <dchat/Room.hpp>
#include <gtkmm/label.h>
#include <gtkmm/togglebutton.h>
@@ -17,6 +19,7 @@ namespace dchat
{
class ChatMessage;
class Window;
+ class Topbar;
class ChatWindow : public Gtk::Grid
{
@@ -25,24 +28,31 @@ namespace dchat
~ChatWindow();
void addRoom(std::shared_ptr<Room> room);
void addMessage(const RoomAddMessageRequest &request);
- void addUser(std::shared_ptr<Room> room, std::shared_ptr<User> user);
+ void addUser(const RoomAddUserRequest &request);
void setUserNickname(const UserChangeNicknameRequest &request);
void changeRoomName(const RoomChangeNameRequest &request);
+ void addInviteRequest(const InviteUserRequest &request);
void scrollToBottom();
+
+ Topbar *topbar;
+ Gtk::Stack stack;
+ Gtk::Grid chatPage;
+ RoomSettingsWindow roomSettingsWindow;
+ RoomNotificationsWindow roomNotificationsWindow;
+ Window *window;
private:
- void setupTopBar();
+ void setupTopbar();
void setupLeftPanel(Gtk::Paned *sidePanels);
void setupMessageArea(Gtk::Grid *rightPanel);
void setupChatInput(Gtk::Grid *rightPanel);
void setCurrentRoom(std::shared_ptr<Room> room);
private:
- Gtk::Grid topbar;
- Gtk::Entry topbarSearchBar;
Gtk::Grid leftPanelChannels;
Gtk::Stack leftPanelUsersStack;
- ImageButton addRoomButton;
- Gtk::Label currentChannelTitle;
+ ImageButton createRoomButton;
+ ImageButton joinRoomButton;
+ ImageButton userSettingsButton;
Gtk::ScrolledWindow messageArea;
Gtk::Stack messageAreaStack;
Gtk::TextView chatInput;
@@ -60,6 +70,7 @@ namespace dchat
int roomCount;
RoomData *currentRoomData;
std::shared_ptr<Room> currentRoom;
- Window *window;
+ bool chatInputShowPlaceholder;
+ bool chatInputChangeByPlaceholder;
};
} \ No newline at end of file