Example #1
0
 protected override void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
 {
     if (!IsActive) {
         switch (e.Message.MessageType) {
             case MessageType.PresenceStateOffline:
             case MessageType.PresenceStateAway:
             case MessageType.PresenceStateOnline:
                 HasEvent = true;
                 break;
         }
     }
     base.OnMessageTextViewMessageAdded(sender, e);
 }
Example #2
0
 protected override void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
 {
     if (!IsActive)
     {
         switch (e.Message.MessageType)
         {
         case MessageType.PresenceStateOffline:
         case MessageType.PresenceStateAway:
         case MessageType.PresenceStateOnline:
             HasEvent = true;
             break;
         }
     }
     base.OnMessageTextViewMessageAdded(sender, e);
 }
Example #3
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            var signalCounter = false;

            if (!IsActive)
            {
                // the chat isn't active, thus we need to signal the event/msg counter
                if (IsSynced)
                {
                    signalCounter = true;
                }
                else
                {
                    // we are still syncing and since Smuxi 0.13 we know what msg
                    // was last seen, so we only signal newer messages than that
                    if (Frontend.EngineProtocolVersion >= new Version(0, 13) &&
                        e.Message.TimeStamp > SyncedLastSeenMessage)
                    {
                        signalCounter = true;
                    }
                }
            }

            if (signalCounter)
            {
                switch (e.Message.MessageType)
                {
                case MessageType.Normal:
                    HasActivity = true;
                    break;

                case MessageType.Event:
                    HasEvent = true;
                    break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;

            buffer.MoveMark(_EndMark, buffer.EndIter);

            AutoScroll();
        }
Example #4
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            if (!IsActive)
            {
                switch (e.Message.MessageType)
                {
                case MessageType.Normal:
                    HasActivity = true;
                    break;

                case MessageType.Event:
                    HasEvent = true;
                    break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;

            buffer.MoveMark(_EndMark, buffer.EndIter);

            AutoScroll();
        }
Example #5
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            // HACK: out of scope?
            // probably we should use the ChatViewManager instead?
            if (Frontend.MainWindow.Notebook.CurrentChatView != this)
            {
                switch (e.Message.MessageType)
                {
                case MessageType.Normal:
                    HasActivity = true;
                    break;

                case MessageType.Event:
                    HasEvent = true;
                    break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;

            buffer.MoveMark(_EndMark, buffer.EndIter);

            AutoScroll();
        }
Example #6
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            if (!IsActive) {
                switch (e.Message.MessageType) {
                    case MessageType.Normal:
                        HasActivity = true;
                        break;
                    case MessageType.Event:
                        HasEvent = true;
                        break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;
            buffer.MoveMark(_EndMark, buffer.EndIter);

            AutoScroll();
        }
Example #7
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            var signalCounter = false;
            if (!IsActive) {
                // the chat isn't active, thus we need to signal the event/msg counter
                if (IsSynced) {
                    signalCounter = true;
                } else {
                    // we are still syncing and since Smuxi 0.13 we know what msg
                    // was last seen, so we only signal newer messages than that
                    if (Frontend.EngineProtocolVersion >= new Version(0, 13) &&
                        e.Message.TimeStamp > SyncedLastSeenMessage) {
                        signalCounter = true;
                    }
                }
            }

            if (signalCounter) {
                switch (e.Message.MessageType) {
                    case MessageType.Normal:
                        HasActivity = true;
                        break;
                    case MessageType.Event:
                        HasEvent = true;
                        break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;
            buffer.MoveMark(_EndMark, buffer.EndIter);

            AutoScroll();
        }
Example #8
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            // HACK: out of scope?
            // probably we should use the ChatViewManager instead?
            if (Frontend.MainWindow.Notebook.CurrentChatView != this) {
                switch (e.Message.MessageType) {
                    case MessageType.Normal:
                        HasActivity = true;
                        break;
                    case MessageType.Event:
                        HasEvent = true;
                        break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;
            buffer.MoveMark(_EndMark, buffer.EndIter);

            AutoScroll();
        }
Example #9
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            Trace.Call(sender, e);

            // HACK: out of scope?
            // probably we should use the ChatViewManager instead?
            if (Frontend.MainWindow.Notebook.CurrentChatView != this) {
                switch (e.Message.MessageType) {
                    case MessageType.Normal:
                        HasActivity = true;
                        break;
                    case MessageType.Event:
                        HasEvent = true;
                        break;
                }
            }

            Gtk.ScrolledWindow sw = _OutputScrolledWindow;
            Gtk.TextView tv = _OutputMessageTextView;

            if (sw.Vadjustment.Upper == (sw.Vadjustment.Value + sw.Vadjustment.PageSize)) {
                // the scrollbar is way at the end, lets autoscroll
                Gtk.TextIter endit = tv.Buffer.EndIter;
                tv.Buffer.PlaceCursor(endit);
                tv.Buffer.MoveMark(tv.Buffer.InsertMark, endit);
                tv.ScrollMarkOnscreen(tv.Buffer.InsertMark);
            }

            // update the end mark
            tv.Buffer.MoveMark(_EndMark, tv.Buffer.EndIter);
        }
Example #10
0
        protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
        {
            // HACK: out of scope?
            // probably we should use the ChatViewManager instead?
            if (Frontend.MainWindow.Notebook.CurrentChatView != this) {
                switch (e.Message.MessageType) {
                    case MessageType.Normal:
                        HasActivity = true;
                        break;
                    case MessageType.Event:
                        HasEvent = true;
                        break;
                }
            }

            var buffer = _OutputMessageTextView.Buffer;
            buffer.MoveMark(_EndMark, buffer.EndIter);

            var vAdjustment = _OutputScrolledWindow.Vadjustment;
            if (vAdjustment.Upper == (vAdjustment.Value + vAdjustment.PageSize)) {
                // the scrollbar is way at the end, lets autoscroll
                _OutputMessageTextView.ScrollMarkOnscreen(_EndMark);
            }
        }