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 --- .../ui/conversation_summary/conversation_item.vala | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 main/src/ui/conversation_summary/conversation_item.vala (limited to 'main/src/ui/conversation_summary/conversation_item.vala') diff --git a/main/src/ui/conversation_summary/conversation_item.vala b/main/src/ui/conversation_summary/conversation_item.vala new file mode 100644 index 00000000..480ccd48 --- /dev/null +++ b/main/src/ui/conversation_summary/conversation_item.vala @@ -0,0 +1,34 @@ +using Dino.Entities; + +namespace Dino.Ui.ConversationSummary { + +public enum MessageKind { + TEXT, + ME_COMMAND +} + +public MessageKind get_message_kind(Message message) { + if (message.body.has_prefix("/me ")) { + return MessageKind.ME_COMMAND; + } else { + return MessageKind.TEXT; + } +} + +public interface ConversationItem : Gtk.Widget { + public abstract bool merge(Entities.Message message); + + public static ConversationItem create_for_message(StreamInteractor stream_interactor, Conversation conversation, Message message) { + switch (get_message_kind(message)) { + case MessageKind.TEXT: + return new MergedMessageItem(stream_interactor, conversation, message); + break; + case MessageKind.ME_COMMAND: + return new SlashMeItem(stream_interactor, conversation, message); + break; + } + return null; + } +} + +} \ No newline at end of file -- cgit v1.3