コード例 #1
0
        private void UpdateGvent(Gvent gvent, GventChanges change)
        {
            switch (change)
            {
            case GventChanges.Start:
            case GventChanges.Stop:
                if (_Gvents.ContainsKey(gvent))
                {
                    ListViewItem item = _Gvents[gvent];
                    Remove(item);
                    Add(item);
                }
                return;

            case GventChanges.Color:
            case GventChanges.Title:
                if (_Gvents.ContainsKey(gvent))
                {
                    ItemUpdate(_Gvents[gvent]);
                }
                return;

            case GventChanges.Status:
                if (gvent.Status == GventStatus.Dismissed)
                {
                    Remove(gvent);
                }
                else if (_Gvents.ContainsKey(gvent))
                {
                    ItemUpdate(_Gvents[gvent]);
                }
                return;
            }
        }
コード例 #2
0
        /// <summary>
        /// Add a new gvent to the agenda list
        /// </summary>
        /// <param name="gvent">gvent to add</param>
        public void Add(Gvent gvent)
        {
            if (gvent.Status == GventStatus.Dismissed)
            {
                return;
            }

            if (this.InvokeRequired)
            {
                this.Invoke(new Action <Gvent>(this.Add), gvent);
                return;
            }

            // Create a new Item for the gvent
            var item = new ListViewItem();

            _Gvents.Add(gvent, item);
            item.Tag = gvent;

            // Set the item's text and color
            ItemUpdate(item);

            // Add the item to the list
            Add(item);
        }
コード例 #3
0
        private void Remove(Gvent gvent)
        {
            if (_Gvents.ContainsKey(gvent))
            {
                ListViewItem item = _Gvents[gvent];

                Remove(item);
                item.Tag = null;
                _Gvents.Remove(gvent);
            }
        }
コード例 #4
0
        private static void ItemUpdate(ListViewItem item)
        {
            if (IsGvent(item))
            {
                Gvent gvent = item.Tag as Gvent;

                item.Text = gvent.Title;

                string time;
                if (!gvent.AllDay)
                {
                    time = gvent.Start.ToString("t");
                }
                else
                {
                    time = gvent.LengthString;
                }

                if (item.SubItems.Count > 1)
                {
                    item.SubItems[1].Text = time;
                }
                else
                {
                    item.SubItems.Add(time);
                }
                item.ForeColor = gvent.Calendar.Color;

                switch (gvent.Status)
                {
                case GventStatus.Future:
                    item.BackColor = Properties.Settings.Default.FutureColor;
                    break;

                case GventStatus.Soon:
                    item.BackColor = Properties.Settings.Default.SoonColor;
                    break;

                case GventStatus.Now:
                    item.BackColor = Properties.Settings.Default.NowColor;
                    break;

                case GventStatus.Past:
                    item.BackColor = Properties.Settings.Default.PastColor;
                    break;
                }
            }
        }
コード例 #5
0
ファイル: Agenda.cs プロジェクト: izzatbek099/gminder
        /// <summary>
        /// Add a new gvent to the agenda list
        /// </summary>
        /// <param name="gvent">gvent to add</param>
        public void Add(Gvent gvent)
        {
            if (gvent.Status == GventStatus.Dismissed)
                return;

            // Create a new Item for the gvent
            var item = new ListViewItem();
            _Gvents.Add(gvent, item);
            item.Tag = gvent;

            // Set the item's text and color
            ItemUpdate(item);

            // Add the item to the list
            Add(item);
        }
コード例 #6
0
        private void Remove(Gvent gvent)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Action <Gvent>(this.Remove), gvent);
                return;
            }

            if (_Gvents.ContainsKey(gvent))
            {
                ListViewItem item = _Gvents[gvent];

                Remove(item);
                item.Tag = null;
                _Gvents.Remove(gvent);
            }
        }
コード例 #7
0
        /// <summary>
        /// Add a new gvent to the agenda list
        /// </summary>
        /// <param name="gvent">gvent to add</param>
        public void Add(Gvent gvent)
        {
            if (gvent.Status == GventStatus.Dismissed)
            {
                return;
            }

            // Create a new Item for the gvent
            var item = new ListViewItem();

            _Gvents.Add(gvent, item);
            item.Tag = gvent;

            // Set the item's text and color
            ItemUpdate(item);

            // Add the item to the list
            Add(item);
        }
コード例 #8
0
        private void UpdateGvent(Gvent gvent, GventChanges change)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Action <Gvent, GventChanges>(this.UpdateGvent), gvent, change);
                return;
            }

            switch (change)
            {
            case GventChanges.Start:
            case GventChanges.Stop:
                if (_Gvents.ContainsKey(gvent))
                {
                    ListViewItem item = _Gvents[gvent];
                    Remove(item);
                    ItemUpdate(item);
                    Add(item);
                }
                return;

            case GventChanges.Color:
            case GventChanges.Title:
                if (_Gvents.ContainsKey(gvent))
                {
                    ItemUpdate(_Gvents[gvent]);
                }
                return;

            case GventChanges.Status:
                if (gvent.Status == GventStatus.Dismissed)
                {
                    Remove(gvent);
                }
                else if (_Gvents.ContainsKey(gvent))
                {
                    ItemUpdate(_Gvents[gvent]);
                }
                return;
            }
        }
コード例 #9
0
ファイル: Agenda.cs プロジェクト: prafullat/gminder
        private void UpdateGvent(Gvent gvent, GventChanges change)
        {
            switch (change)
            {
                case GventChanges.Start:
                case GventChanges.Stop:
                    if (_Gvents.ContainsKey(gvent))
                    {
                        ListViewItem item = _Gvents[gvent];
                        Remove(item);
                        Add(item);
                    }
                    return;

                case GventChanges.Color:
                case GventChanges.Title:
                    if (_Gvents.ContainsKey(gvent))
                        ItemUpdate(_Gvents[gvent]);
                    return;

                case GventChanges.Status:
                    if (gvent.Status == GventStatus.Dismissed)
                        Remove(gvent);
                    else if (_Gvents.ContainsKey(gvent))
                        ItemUpdate(_Gvents[gvent]);
                    return;
            }
        }
コード例 #10
0
ファイル: Agenda.cs プロジェクト: prafullat/gminder
        private void Remove(Gvent gvent)
        {
            if (_Gvents.ContainsKey(gvent))
            {
                ListViewItem item = _Gvents[gvent];

                Remove(item);
                item.Tag = null;
                _Gvents.Remove(gvent);
            }
        }
コード例 #11
0
ファイル: Sound.cs プロジェクト: prafullat/gminder
        public static void Speak(Gvent gvent)
        {
            StringBuilder spoken = new StringBuilder(gvent.Title);
            DateTime Now = DateTime.Now;
            TimeSpan timespan;

            if (gvent.Start > Now)
            {
                timespan = gvent.Start - Now;
                if (timespan.Days != 0 || timespan.Hours != 0 || timespan.Minutes != 0)
                    spoken.Append(" starts in ");
                else
                    spoken.Append(" starts soon!");
            }
            else
            {
                timespan = DateTime.Now - gvent.Start;
                if (timespan.Days != 0 || timespan.Hours != 0 || timespan.Minutes != 0)
                    spoken.Append(" started ");
                else
                    spoken.Append(" starts now!");
            }

            if (timespan.Days > 0)
            {
                if (gvent.Start > Now)
                    timespan = gvent.Start.Date - Now.Date;
                else
                    timespan = Now.Date - gvent.Start.Date;

                spoken.Append(timespan.Days);
                if (timespan.Days == 1)
                    spoken.Append(" day");
                else
                    spoken.Append(" days");
            }
            else
            {
                if (timespan.Seconds > 30)
                    timespan = new TimeSpan(0, timespan.Hours, timespan.Minutes + 1, 0);
                if ((timespan.Minutes % 60 != 0) && (timespan.Hours >= 6))
                    timespan = new TimeSpan(timespan.Days, timespan.Hours, timespan.Minutes + (90 - timespan.Minutes) % 60 - 30, 0);
                if ((timespan.Minutes % 15 != 0) && (timespan.Hours > 0))
                    timespan = new TimeSpan(timespan.Days, timespan.Hours, timespan.Minutes + (67 - timespan.Minutes) % 15 - 7, 0);
                if ((timespan.Minutes % 5 != 0) && (timespan.Minutes > 10 || timespan.Hours > 0))
                    timespan = new TimeSpan(timespan.Days, timespan.Hours, timespan.Minutes + (62 - timespan.Minutes) % 5 - 2, 0);

                if (timespan.Days == 1)
                {
                    spoken.Append("1 day");
                }
                if (timespan.Hours > 0)
                {
                    spoken.Append(timespan.Hours);
                    if (timespan.Hours == 1)
                        spoken.Append(" hour");
                    else
                        spoken.Append(" hours");
                }
                if (timespan.Minutes > 0)
                {
                    if (timespan.Hours > 0)
                        spoken.Append(", ");
                    spoken.Append(timespan.Minutes);
                    if (timespan.Minutes == 1)
                        spoken.Append(" minute");
                    else
                        spoken.Append(" minutes");
                }
            }

            if (gvent.Start > Now)
                spoken.Append('!');
            else
                spoken.Append(" ago!");

            voice.Speak(spoken.ToString());
        }
コード例 #12
0
ファイル: Reminder.cs プロジェクト: prafullat/gminder
        private void StatusAlert(Gvent gvent)
        {
            switch (gvent.Status)
            {
                case GventStatus.Soon:
                    if (Properties.Settings.Default.SoonPopup)
                        Hidden = false;
                    if (Properties.Settings.Default.SoonSound)
                        Sound.MakeSound(Properties.Settings.Default.SoundPath);
                    if (Properties.Settings.Default.SoonVerbal)
                        Sound.Speak(gvent);
                    return;

                case GventStatus.Now:
                    if (Properties.Settings.Default.NowPopup)
                        Hidden = false;
                    if (Properties.Settings.Default.NowSound)
                        Sound.MakeSound(Properties.Settings.Default.SoundPath);
                    if (Properties.Settings.Default.NowVerbal)
                        Sound.Speak(gvent);
                    return;

                case GventStatus.Past:
                    if (Properties.Settings.Default.PastDismiss)
                        gvent.Dismiss();
                    return;
            }
        }
コード例 #13
0
ファイル: Reminder.cs プロジェクト: prafullat/gminder
        private void DisplayEventDetails(Gvent gvent)
        {
            reminderFormTableLayoutPanel.SuspendLayout();

            if (gvent != null)
            {
                // Title
                eventWhat.Text = gvent.Title;

                DateTime start = gvent.Start;
                DateTime stop = gvent.Stop;
                string when;

                // Time
                if (start.Date == stop.AddSeconds(-1).Date)
                {
                    if (start.Hour == 0 && start.Minute == 0 && stop.Hour == 0 && stop.Minute == 0)
                        when = "{0:ddd}, {0:m}";
                    else
                        when = "{0:ddd}, {0:m} {0:t} - {1:t}";
                }
                else
                {
                    if (start.Hour == 0 && start.Minute == 0 && stop.Hour == 0 && stop.Minute == 0)
                        when = "{0:ddd}, {0:m} - {1:ddd}, {1:m}";
                    else
                        when = "{0:ddd}, {0:m} {0:t} - {1:ddd}, {1:m} {1:t}";
                }

                when = String.Format(when, start, stop);
                when = String.Format("{0}  ({1})", when, gvent.LengthString);

                eventWhen.Text =  when;

                // Location
                eventWhere.Text = gvent.Location;
            }
            else
            {
                eventWhat.Text = null;
                eventWhen.Text = "No event selected";
                eventWhere.Text = null;
            }

            reminderFormTableLayoutPanel.ResumeLayout();
        }
コード例 #14
0
ファイル: GventEventArgs.cs プロジェクト: prafullat/gminder
 public GventEventArgs(Gvent gvent, GventChanges changes)
 {
     Gvent = gvent;
     Changes = changes;
 }