aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/Notifications/NotificationItem.cs
blob: c96fe9dee94c9452e2879a1a98d536855fd9f5b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Media;
using Tango.Core;

namespace Tango.PPC.Common.Notifications
{
    /// <summary>
    /// Represents a base notification item.
    /// </summary>
    public abstract class NotificationItem : ItemBase
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="NotificationItem"/> class.
        /// </summary>
        public NotificationItem() : base()
        {
            CanClose = true;
        }

        private bool _isExpanded;
        /// <summary>
        /// Gets or sets a value indicating whether the notification panel is expanded.
        /// </summary>
        public bool IsExpanded
        {
            get { return _isExpanded; }
            set { _isExpanded = value; RaisePropertyChangedAuto(); }
        }

        private bool _canClose;
        /// <summary>
        /// Gets or sets a value indicating whether this instance can close.
        /// </summary>
        public bool CanClose
        {
            get { return _canClose; }
            set { _canClose = value; RaisePropertyChangedAuto(); }
        }

        /// <summary>
        /// Called when the item has been pressed.
        /// </summary>
        protected override void OnPreesed()
        {
            base.OnPreesed();

            if (CanClose)
            {
                Close();
            }
        }
    }
}
"> document = textArea.Document; if (document == null) throw ThrowUtil.NoDocumentAssigned(); return Create(textArea, startPosition, endPosition); } public override IEnumerable<SelectionSegment> Segments { get { return Empty<SelectionSegment>.Array; } } public override string GetText() { return string.Empty; } public override void ReplaceSelectionWithText(string newText) { if (newText == null) throw new ArgumentNullException("newText"); newText = AddSpacesIfRequired(newText, textArea.Caret.Position, textArea.Caret.Position); if (newText.Length > 0) { if (textArea.ReadOnlySectionProvider.CanInsert(textArea.Caret.Offset)) { textArea.Document.Insert(textArea.Caret.Offset, newText); } } textArea.Caret.VisualColumn = -1; } public override int Length { get { return 0; } } // Use reference equality because there's only one EmptySelection per text area. public override int GetHashCode() { return RuntimeHelpers.GetHashCode(this); } public override bool Equals(object obj) { return this == obj; } } }