From f277db6cb459c6e7456fb75722b9d57f734c4db6 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Wed, 15 Mar 2017 21:37:49 +0100 Subject: Display /me differently fixes #12 --- main/src/ui/conversation_summary/slashme_item.vala | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 main/src/ui/conversation_summary/slashme_item.vala (limited to 'main/src/ui/conversation_summary/slashme_item.vala') diff --git a/main/src/ui/conversation_summary/slashme_item.vala b/main/src/ui/conversation_summary/slashme_item.vala new file mode 100644 index 00000000..cd387bc9 --- /dev/null +++ b/main/src/ui/conversation_summary/slashme_item.vala @@ -0,0 +1,43 @@ +using Gdk; +using Gtk; + +using Dino.Entities; + +namespace Dino.Ui.ConversationSummary { + +public class SlashMeItem : MessageItem { + + private Box box = new Box(Orientation.VERTICAL, 0) { visible=true, vexpand=true }; + private MessageTextView textview = new MessageTextView() { visible=true }; + private string text; + private TextTag nick_tag; + + public SlashMeItem(StreamInteractor stream_interactor, Conversation conversation, Message message) { + base(stream_interactor, conversation, message); + box.set_center_widget(textview); + set_title_widget(box); + text = message.body.substring(3); + + string display_name = Util.get_message_display_name(stream_interactor, message, conversation.account); + nick_tag = textview.buffer.create_tag("nick", foreground: @"#$(Util.get_name_hex_color(display_name, false))"); + TextIter iter; + textview.buffer.get_start_iter(out iter); + textview.buffer.insert_with_tags(ref iter, display_name, display_name.length, nick_tag); + textview.add_text(text); + add_message(message); + + textview.style_updated.connect(update_display_style); + update_display_style(); + } + + public override bool merge(Message message) { + return false; + } + + private void update_display_style() { + string display_name = Util.get_message_display_name(stream_interactor, messages[0], conversation.account); + nick_tag.foreground = @"#$(Util.get_name_hex_color(display_name, Util.is_dark_theme(textview)))"; + } +} + +} -- cgit v1.2.3-70-g09d2