From 5121f3128ad79a0ae54601474b9701fcb1e58cfd Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sat, 30 Apr 2022 00:28:27 +0200 Subject: Add send button on chat view --- main/src/ui/chat_input/view.vala | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'main/src/ui/chat_input') diff --git a/main/src/ui/chat_input/view.vala b/main/src/ui/chat_input/view.vala index 5142eb10..9de7c33f 100644 --- a/main/src/ui/chat_input/view.vala +++ b/main/src/ui/chat_input/view.vala @@ -31,7 +31,7 @@ public class View : Box { public View init(StreamInteractor stream_interactor) { this.stream_interactor = stream_interactor; - encryption_widget = new EncryptionButton(stream_interactor) { relief=ReliefStyle.NONE, margin_top=3, valign=Align.START, visible=true }; + encryption_widget = new EncryptionButton(stream_interactor) { relief=ReliefStyle.NONE, margin_top=3, valign=Align.CENTER, visible=true }; file_button.get_style_context().add_class("dino-attach-button"); @@ -39,7 +39,7 @@ public class View : Box { // Emoji button for emoji picker (recents don't work < 3.22.19, category icons don't work <3.23.2) if (Gtk.get_major_version() >= 3 && Gtk.get_minor_version() >= 24) { - MenuButton emoji_button = new MenuButton() { relief=ReliefStyle.NONE, margin_top=3, valign=Align.START, visible=true }; + MenuButton emoji_button = new MenuButton() { relief=ReliefStyle.NONE, margin_top=3, valign=Align.CENTER, visible=true }; emoji_button.get_style_context().add_class("flat"); emoji_button.get_style_context().add_class("dino-chatinput-button"); emoji_button.image = new Image.from_icon_name("dino-emoticon-symbolic", IconSize.BUTTON) { visible=true }; @@ -55,6 +55,40 @@ public class View : Box { outer_box.add(encryption_widget); + { + MenuButton send_button = new MenuButton() { + tooltip_text="Send message", + relief=ReliefStyle.NONE, + margin_top=3, + valign=Align.CENTER, + visible=true, + sensitive=false + }; + + send_button.get_style_context().add_class("flat"); + send_button.get_style_context().add_class("dino-chatinput-button"); + send_button.image = new Image.from_icon_name("document-send", IconSize.BUTTON) { + visible=true, + icon_size=3 + }; + + chat_text_view.text_view.buffer.changed.connect(() => { + if (chat_text_view.text_view.buffer.text != "") { + send_button.sensitive = true; + } + else { + send_button.sensitive = false; + } + }); + + send_button.button_release_event.connect(() => { + chat_text_view.send_text(); + return true; + }); + + outer_box.add(send_button); + } + Util.force_css(frame, "* { border-radius: 3px; }"); return this; -- cgit v1.2.3