diff options
author | dec05eba <dec05eba@protonmail.com> | 2018-11-17 15:20:49 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2018-11-17 15:20:52 +0100 |
commit | 64ab3253562be80e726b3d69e4c3e556b055c965 (patch) | |
tree | 97d5b68f90ca8176fc58ec16eb79dbbef2920abd /src/ChatWindow.cpp | |
parent | 7873b7555f1f8fe72732f64b35a8116390b981b3 (diff) |
Auto reload css on modify, improve design
Diffstat (limited to 'src/ChatWindow.cpp')
-rw-r--r-- | src/ChatWindow.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/ChatWindow.cpp b/src/ChatWindow.cpp index 473b5d1..529b857 100644 --- a/src/ChatWindow.cpp +++ b/src/ChatWindow.cpp @@ -40,8 +40,9 @@ namespace dchat stack.add(roomSettingsWindow, "settings"); stack.add(roomNotificationsWindow, "notifications"); - Gtk::Paned *sidePanels = Gtk::manage(new Gtk::Paned(Gtk::ORIENTATION_HORIZONTAL)); + Gtk::ResponsivePaned *sidePanels = Gtk::manage(new Gtk::ResponsivePaned(Gtk::ORIENTATION_HORIZONTAL)); sidePanels->get_style_context()->add_class("side-panels"); + sidePanels->set_wide_handle(true); chatPage.attach(*sidePanels, 0, 1, 1, 2); setupLeftPanel(sidePanels); @@ -116,15 +117,15 @@ namespace dchat }); } - void ChatWindow::setupLeftPanel(Gtk::Paned *sidePanels) + void ChatWindow::setupLeftPanel(Gtk::ResponsivePaned *sidePanels) { Gtk::Grid *leftPanelLayout = Gtk::manage(new Gtk::Grid()); leftPanelLayout->set_vexpand(true); - leftPanelLayout->set_size_request(200); + leftPanelLayout->set_size_request(190); leftPanelLayout->get_style_context()->add_class("left-panel"); sidePanels->add1(*leftPanelLayout); - Gtk::Paned *leftPanel = Gtk::manage(new Gtk::Paned(Gtk::ORIENTATION_VERTICAL)); + Gtk::ResponsivePaned *leftPanel = Gtk::manage(new Gtk::ResponsivePaned(Gtk::ORIENTATION_VERTICAL)); leftPanel->set_vexpand(true); leftPanelLayout->attach(*leftPanel, 0, 0, 1, 2); @@ -141,11 +142,13 @@ namespace dchat channelsLayout->attach(*channelsTitle, 0, 0, 1, 1); Gtk::ScrolledWindow *channelsScrollWindow = Gtk::manage(new Gtk::ScrolledWindow()); + channelsScrollWindow->set_policy(Gtk::PolicyType::POLICY_NEVER, Gtk::PolicyType::POLICY_NEVER); channelsScrollWindow->set_vexpand(true); channelsScrollWindow->set_hexpand(true); channelsScrollWindow->set_overlay_scrolling(false); channelsLayout->attach_next_to(*channelsScrollWindow, *channelsTitle, Gtk::POS_BOTTOM, 1, 2); + leftPanelChannels.set_row_spacing(5); leftPanelChannels.set_vexpand(true); leftPanelChannels.set_hexpand(true); channelsScrollWindow->add(leftPanelChannels); @@ -228,14 +231,15 @@ namespace dchat messageArea.set_policy(Gtk::PolicyType::POLICY_NEVER, Gtk::PolicyType::POLICY_AUTOMATIC); rightPanel->attach(messageArea, 0, 0, 1, 2); - messageAreaStack.set_name("chat-area-layout"); + messageAreaStack.set_name("message-area-layout"); messageArea.add(messageAreaStack); } void ChatWindow::setupChatInput(Gtk::Grid *rightPanel) { Gtk::Grid *chatArea = Gtk::manage(new Gtk::Grid()); - rightPanel->attach_next_to(*chatArea, messageArea, Gtk::POS_BOTTOM, 1, 1); + chatArea->set_name("chat-area"); + rightPanel->attach(*chatArea, 0, 2, 1, 1); Gtk::ScrolledWindow *chatScrollWindow = Gtk::manage(new Gtk::ScrolledWindow()); chatScrollWindow->set_hexpand(true); @@ -353,12 +357,10 @@ namespace dchat messageAreaStack.add(*messageAreaLayout, roomIdStr); fprintf(stderr, "Added channel %s\n", room->id->toString().c_str()); - Gtk::ToggleButton *roomButton = new Gtk::ToggleButton("Room name"); - roomButton->set_active(true); + Gtk::RadioButton *roomButton = new Gtk::RadioButton("Room name"); + roomButton->property_draw_indicator().set_value(false); roomButton->get_style_context()->add_class("room-button"); roomButton->set_hexpand(true); - roomButton->set_halign(Gtk::ALIGN_START); - roomButton->get_child()->set_halign(Gtk::ALIGN_START); roomButton->show(); roomButton->signal_clicked().connect([this, room] { @@ -371,6 +373,7 @@ namespace dchat roomDataById[*room->id] = roomData; if(!currentRoom) { + roomButton->set_active(true); currentRoom = room; currentRoomData = roomData; if(room->localUser) @@ -480,8 +483,8 @@ namespace dchat void ChatWindow::changeRoomName(const RoomChangeNameRequest &request) { - Gtk::Button *button = roomDataById[*request.room->id]->button; - static_cast<Gtk::Label*>(button->get_child())->set_text(request.newName); + Gtk::RadioButton *button = roomDataById[*request.room->id]->button; + button->set_label(request.newName); if(*request.room->id == *currentRoom->id) topbar->setTitle(request.newName); fprintf(stderr, "Changed room %s name to %s\n", request.room->id->toString().c_str(), request.newName.c_str()); |