~lac-team/lilalarmclock/devel-1.0

« back to all changes in this revision

Viewing changes to Little Alarm Clock/MainFrm.cs

  • Committer: whizzey
  • Date: 2011-12-12 21:53:14 UTC
  • Revision ID: whiteghost89@gmail.com-20111212215314-cxphsqb90mvj64n2
edit alarms with double click
regions / sorting

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
using System.Text;
30
30
using System.Windows.Forms;
31
31
using System.IO;
32
 
using System.Xml; 
 
32
using System.Xml;
 
33
using Little_Alarm_Clock.Logic; 
33
34
#endregion
34
35
 
35
36
namespace Little_Alarm_Clock
36
37
{
 
38
    #region struct structAlarms
37
39
    /// <summary>
38
40
    /// Alarm structure used for settings
39
41
    /// </summary>
43
45
        public DateTime dateTime;
44
46
        public string strRepeats;
45
47
        public string strDescription;
46
 
    }
 
48
    } 
 
49
    #endregion
47
50
 
48
51
    public partial class MainFrm : Form
49
52
    {
 
53
        #region Member
50
54
        private AlarmFrm alarmDlg;
 
55
        private ProgramUpdater m_puUpdater = null;
 
56
        private UpdateFrm m_dlgUpdate = null;
 
57
        AboutBox m_aboutFrm = null;
 
58
        #endregion
51
59
 
 
60
        #region Ctor
52
61
        public MainFrm()
53
62
        {
54
63
            InitializeComponent();
55
 
        }
56
 
 
57
 
        void MainFrm_Resize(object sender, EventArgs e)
58
 
        {
59
 
            if (this.WindowState == FormWindowState.Minimized)
60
 
                this.Hide();
61
 
            if (this.listView1.Items.Count > 0)
62
 
                this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
63
 
        }
64
 
 
 
64
 
 
65
            m_puUpdater = new ProgramUpdater();
 
66
            m_puUpdater.Init();
 
67
 
 
68
            m_dlgUpdate = new UpdateFrm(m_puUpdater);
 
69
            m_aboutFrm = new AboutBox();
 
70
        } 
 
71
        #endregion
 
72
 
 
73
        #region Events
 
74
        #region timerTime_Tick
65
75
        private void timerTime_Tick(object sender, EventArgs e)
66
76
        {
67
77
            DateTime dateTimeNow = DateTime.Now;
68
78
 
69
 
            this.textBox1.Text = string.Format("{0:T}", dateTimeNow);
 
79
            labelClock.Text = string.Format("{0:T}", dateTimeNow);
70
80
 
71
81
            if (alarmDlg == null)
72
82
            {
77
87
                    bool bDeleteAlarm = false;
78
88
 
79
89
                    // Compare the TimeSpan to current time
80
 
                    if (dateTimeNow.TimeOfDay.Hours == dateTime.TimeOfDay.Hours && dateTimeNow.TimeOfDay.Minutes == dateTime.TimeOfDay.Minutes && dateTimeNow.TimeOfDay.Seconds == dateTime.TimeOfDay.Seconds)
 
90
                    if (dateTimeNow.TimeOfDay.Hours == dateTime.TimeOfDay.Hours &&
 
91
                        dateTimeNow.TimeOfDay.Minutes == dateTime.TimeOfDay.Minutes &&
 
92
                        dateTimeNow.TimeOfDay.Seconds == dateTime.TimeOfDay.Seconds)
81
93
                    {
82
94
                        // See if its right day of a week
83
95
                        if (string.Compare(strRepeat, "Once") == 0)
84
96
                            bDeleteAlarm = true;
85
97
                        else if (string.Compare(strRepeat, "Mon-Fri") == 0)
86
98
                        {
87
 
                            if (dateTimeNow.DayOfWeek == DayOfWeek.Saturday || dateTimeNow.DayOfWeek == DayOfWeek.Sunday)
 
99
                            if (dateTimeNow.DayOfWeek == DayOfWeek.Saturday ||
 
100
                                dateTimeNow.DayOfWeek == DayOfWeek.Sunday)
88
101
                                return;
89
102
                        }
90
103
                        else if (string.Compare(strRepeat, "Sat-Sun") == 0)
91
104
                        {
92
 
                            if (dateTimeNow.DayOfWeek != DayOfWeek.Saturday && dateTimeNow.DayOfWeek != DayOfWeek.Sunday)
 
105
                            if (dateTimeNow.DayOfWeek != DayOfWeek.Saturday &&
 
106
                                dateTimeNow.DayOfWeek != DayOfWeek.Sunday)
93
107
                                return;
94
108
                        }
95
109
 
110
124
                    }
111
125
                }
112
126
            }
113
 
        }
 
127
        } 
 
128
        #endregion
114
129
 
 
130
        #region alarmDlg_AddSnoozeTimer
115
131
        void alarmDlg_AddSnoozeTimer(object sender, AlarmFrm.SnoozeEventArgs e)
116
132
        {
117
133
            ListViewItem listViewItem = new ListViewItem(new string[] { e.dateTime.ToString("hh:mm tt"), "Once", "" });
118
134
            this.listView1.Items.Add(listViewItem);
119
135
            this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
120
 
        }
121
 
 
122
 
        private void newToolStripMenuItem_Click(object sender, EventArgs e)
123
 
        {
124
 
            CreateFrm CreateDlg = new CreateFrm();
125
 
            CreateDlg.NewAlarmAdded += new CreateFrm.AddNewAlarm(CreateDlg_NewAlarmAdded);
126
 
            CreateDlg.ShowDialog(this);
127
 
        }
128
 
 
 
136
        } 
 
137
        #endregion
 
138
 
 
139
        #region CreateDlg_NewAlarmAdded
129
140
        void CreateDlg_NewAlarmAdded(object sender, AlarmEventArgs e)
130
141
        {
131
 
            ListViewItem listViewItem = new ListViewItem(new string[] { e.dateTime.ToString("hh:mm tt"), e.strRepeat, e.strDescription} );
 
142
            ListViewItem listViewItem = new ListViewItem(new string[] { e.dateTime.ToString("hh:mm tt"), e.strRepeat, e.strDescription });
132
143
            this.listView1.Items.Add(listViewItem);
133
144
            this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
134
 
        }
 
145
        } 
 
146
        #endregion
135
147
 
 
148
        #region MainFrm_FormClosing
136
149
        void MainFrm_FormClosing(object sender, FormClosingEventArgs e)
137
150
        {
138
151
            if (e.CloseReason == CloseReason.UserClosing)
139
152
            {
140
 
                if (MessageBox.Show(this, "Are you sure?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
141
 
                {
142
 
                    e.Cancel = true;
143
 
                    return;
144
 
                }
 
153
                e.Cancel = AskIfClose();
145
154
            }
146
155
 
147
156
            // Clear old list
148
157
            Properties.Settings.Default.arrayAlarms = new ArrayList();
149
158
 
150
159
            // Store new entries
151
 
            for (int i = 0; i < this.listView1.Items.Count ;i++)
 
160
            for (int i = 0; i < this.listView1.Items.Count; i++)
152
161
            {
153
162
                structAlarms structAlarm = new structAlarms();
154
163
 
159
168
                Properties.Settings.Default.arrayAlarms.Add(structAlarm);
160
169
            }
161
170
        }
162
 
 
163
 
        void editFrm_AlarmEdited(object sender, AlarmEventArgs e)
164
 
        {
165
 
            try
166
 
            {
167
 
                this.listView1.Items[e.nListViewIndex].SubItems[0].Text = e.dateTime.ToString("hh:mm tt");
168
 
                this.listView1.Items[e.nListViewIndex].SubItems[1].Text = e.strRepeat;
169
 
                this.listView1.Items[e.nListViewIndex].SubItems[2].Text = e.strDescription;
170
 
            }
171
 
            catch (ArgumentException)
172
 
            {
173
 
                // Alarm already went off, so re-add the item
174
 
                this.listView1.Items.Add(new ListViewItem(new string[] { e.dateTime.ToString("hh:mm tt") , e.strRepeat, e.strDescription}));
175
 
            }
176
 
 
177
 
            this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
178
 
        }
179
 
 
180
 
        private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
181
 
        {
182
 
            PrefFrm prefFrm = new PrefFrm();
183
 
            prefFrm.ShowDialog(this);
184
 
        }
185
 
 
186
 
        private void clearAlarmsToolStripMenuItem_Click(object sender, EventArgs e)
187
 
        {
188
 
            if (MessageBox.Show(this, "Are you sure?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
189
 
            {
190
 
                this.listView1.Items.Clear();
191
 
                Properties.Settings.Default.arrayAlarms.Clear();
192
 
            }
193
 
        }
194
 
 
195
 
        private void editToolStripMenuItem1_Click(object sender, EventArgs e)
196
 
        {
197
 
            EditSelectedAlarm();
198
 
        }
199
 
 
200
 
        private void listView1_DoubleClick(object sender, EventArgs e)
201
 
        {
202
 
            EditSelectedAlarm();
203
 
        }
204
 
 
205
 
        private void EditSelectedAlarm()
206
 
        {
207
 
            if (this.listView1.SelectedIndices.Count > 0 && this.listView1.Items.Count > 0)
208
 
            {
209
 
                int nListViewIndex = this.listView1.SelectedIndices[0];
210
 
                ListViewItem lviSelected = this.listView1.Items[nListViewIndex];
211
 
 
212
 
                DateTime dateTime = Convert.ToDateTime(lviSelected.SubItems[0].Text);
213
 
                string strRepeat = lviSelected.SubItems[1].Text;
214
 
                string strDescription = lviSelected.SubItems[2].Text;
215
 
 
216
 
                EditFrm editFrm = new EditFrm(dateTime, strRepeat, strDescription, nListViewIndex);
217
 
                editFrm.AlarmEdited += new EditFrm.EditAlarm(editFrm_AlarmEdited);
218
 
                editFrm.ShowDialog(this);
219
 
            }
220
 
        }
221
 
 
222
 
        private void deleteToolStripMenuItem1_Click(object sender, EventArgs e)
223
 
        {
224
 
            if (this.listView1.SelectedIndices.Count > 0 && this.listView1.Items.Count > 0)
225
 
            {
226
 
                if (MessageBox.Show(this, "Are you sure?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
227
 
                {
228
 
                    for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
229
 
                        this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
230
 
                }
231
 
            }
232
 
        }
233
 
 
234
 
        private void clearToolStripMenuItem_Click(object sender, EventArgs e)
235
 
        {
236
 
            if (MessageBox.Show(this, "Are you sure?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
237
 
            {
238
 
                this.listView1.Items.Clear();
239
 
                Properties.Settings.Default.arrayAlarms.Clear();
240
 
            }
241
 
        }
242
 
 
243
 
        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
244
 
        {
245
 
            if (this.WindowState == FormWindowState.Minimized)
246
 
            {
247
 
                this.Show();
248
 
                this.WindowState = FormWindowState.Normal;
249
 
            }
250
 
            else
251
 
            {
252
 
                this.WindowState = FormWindowState.Minimized;
253
 
                this.Hide();
254
 
            }
255
 
        }
256
 
 
 
171
        #endregion
 
172
 
 
173
        #region MainFrm_Shown
257
174
        private void MainFrm_Shown(object sender, EventArgs e)
258
175
        {
259
176
            foreach (string strArgs in Environment.GetCommandLineArgs())
265
182
                }
266
183
            }
267
184
 
268
 
            this.timerTime.Start();
269
 
 
 
185
            //Read alarms
270
186
            if (Properties.Settings.Default.arrayAlarms != null)
271
187
            {
272
188
                ArrayList arrayAlarms = Properties.Settings.Default.arrayAlarms;
277
193
                    this.listView1.Items.Add(new ListViewItem(new string[] { structAlarm.dateTime.ToString("hh:mm tt"), structAlarm.strRepeats, structAlarm.strDescription }));
278
194
                }
279
195
            }
280
 
        }
281
 
 
282
 
        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
283
 
        {
284
 
            AboutBox aboutFrm = new AboutBox();
285
 
            aboutFrm.ShowDialog(this);
286
 
        }
287
 
 
 
196
 
 
197
            this.timerTime.Start();
 
198
 
 
199
            if ((Properties.Settings.Default.bCheckUpdatesAtStart) &&
 
200
                (m_puUpdater.UpdateStatus == ProgramUpdateStatus.NewVersion))
 
201
            {
 
202
                m_dlgUpdate.ShowDialog(this);
 
203
            }
 
204
            else
 
205
            {
 
206
                //Nothing
 
207
            }
 
208
        }
 
209
        #endregion
 
210
 
 
211
        #region MainFrm_Resize
 
212
        void MainFrm_Resize(object sender, EventArgs e)
 
213
        {
 
214
            if (this.WindowState == FormWindowState.Minimized)
 
215
                this.Hide();
 
216
            if (this.listView1.Items.Count > 0)
 
217
                this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
 
218
        }
 
219
        #endregion
 
220
 
 
221
        #region editFrm_AlarmEdited
 
222
        void editFrm_AlarmEdited(object sender, AlarmEventArgs e)
 
223
        {
 
224
            try
 
225
            {
 
226
                this.listView1.Items[e.nListViewIndex].SubItems[0].Text = e.dateTime.ToString("hh:mm tt");
 
227
                this.listView1.Items[e.nListViewIndex].SubItems[1].Text = e.strRepeat;
 
228
                this.listView1.Items[e.nListViewIndex].SubItems[2].Text = e.strDescription;
 
229
            }
 
230
            catch (ArgumentException)
 
231
            {
 
232
                // Alarm already went off, so re-add the item
 
233
                this.listView1.Items.Add(new ListViewItem(new string[] { e.dateTime.ToString("hh:mm tt"), e.strRepeat, e.strDescription }));
 
234
            }
 
235
 
 
236
            this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
 
237
        } 
 
238
        #endregion
 
239
 
 
240
        #region clearToolStripMenuItem_Click
 
241
        private void clearToolStripMenuItem_Click(object sender, EventArgs e)
 
242
        {
 
243
            ClearAlarms();
 
244
        }
 
245
 
 
246
        private void ClearAlarms()
 
247
        {
 
248
            if (MessageBox.Show(this, "Are you sure?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
 
249
            {
 
250
                this.listView1.Items.Clear();
 
251
                Properties.Settings.Default.arrayAlarms.Clear();
 
252
            }
 
253
        } 
 
254
        #endregion
 
255
 
 
256
        #region notifyIcon1_MouseDoubleClick
 
257
        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
 
258
        {
 
259
            if (this.WindowState == FormWindowState.Minimized)
 
260
            {
 
261
                this.Show();
 
262
                this.WindowState = FormWindowState.Normal;
 
263
            }
 
264
            else
 
265
            {
 
266
                this.WindowState = FormWindowState.Minimized;
 
267
                this.Hide();
 
268
            }
 
269
        } 
 
270
        #endregion
 
271
 
 
272
        #region hideShowLittleAlarmClockToolStripMenuItem_Click
288
273
        private void hideShowLittleAlarmClockToolStripMenuItem_Click(object sender, EventArgs e)
289
274
        {
290
275
            if (this.WindowState == FormWindowState.Normal)
297
282
                this.Show();
298
283
                this.WindowState = FormWindowState.Normal;
299
284
            }
300
 
        }
 
285
        } 
 
286
        #endregion
301
287
 
 
288
        #region aboutToolStripMenuItem1_Click
302
289
        private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
303
290
        {
304
291
            if (this.WindowState == FormWindowState.Normal)
306
293
                AboutBox aboutFrm = new AboutBox();
307
294
                aboutFrm.ShowDialog(this);
308
295
            }
309
 
        }
310
 
 
311
 
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
312
 
        {
313
 
            this.Close();
314
 
        }
315
 
 
 
296
        } 
 
297
        #endregion
 
298
 
 
299
        #region exportToolStripMenuItem_Click
316
300
        private void exportToolStripMenuItem_Click(object sender, EventArgs e)
317
301
        {
318
302
            if (this.listView1.Items.Count <= 0)
347
331
                xmlWriter.Flush();
348
332
                xmlWriter.Close();
349
333
            }
350
 
        }
 
334
        } 
 
335
        #endregion
351
336
 
 
337
        #region importToolStripMenuItem_Click
352
338
        private void importToolStripMenuItem_Click(object sender, EventArgs e)
353
339
        {
354
340
            OpenFileDialog openFileDlg = new OpenFileDialog();
375
361
 
376
362
                xmlReader.Close();
377
363
            }
378
 
        }
379
 
 
 
364
        } 
 
365
        #endregion
 
366
 
 
367
        private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
 
368
        {
 
369
            PrefFrm prefFrm = new PrefFrm();
 
370
            prefFrm.ShowDialog(this);
 
371
        }
 
372
 
 
373
        private void clearAlarmsToolStripMenuItem_Click(object sender, EventArgs e)
 
374
        {
 
375
            ClearAlarms();
 
376
        }
 
377
 
 
378
        private void editToolStripMenuItem1_Click(object sender, EventArgs e)
 
379
        {
 
380
            EditSelectedAlarm();
 
381
        }
 
382
 
 
383
        private void listView1_DoubleClick(object sender, EventArgs e)
 
384
        {
 
385
            EditSelectedAlarm();
 
386
        }
 
387
 
 
388
        private void deleteToolStripMenuItem1_Click(object sender, EventArgs e)
 
389
        {
 
390
            DeleteSelectedAlarm();
 
391
        }
 
392
 
 
393
        private void newToolStripMenuItem_Click(object sender, EventArgs e)
 
394
        {
 
395
            NewAlarm();
 
396
        }
 
397
 
 
398
 
 
399
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
 
400
        {
 
401
            this.Close();
 
402
        }
 
403
        
380
404
        private void checkForUpdatesToolStripMenuItem_Click(object sender, EventArgs e)
381
405
        {
382
 
            UpdateFrm dlgUpdate = new UpdateFrm();
383
 
            dlgUpdate.ShowDialog(this);
384
 
        }
 
406
            m_dlgUpdate.ShowDialog();
 
407
        }
 
408
 
 
409
        private void btnNewAlarm_Click(object sender, EventArgs e)
 
410
        {
 
411
            NewAlarm();
 
412
        }
 
413
 
 
414
        private void reportABugToolStripMenuItem_Click(object sender, EventArgs e)
 
415
        {
 
416
            MessageBox.Show("Srry, not implemented yet..");
 
417
        }
 
418
 
 
419
        private void btnDelete_Click(object sender, EventArgs e)
 
420
        {
 
421
            DeleteSelectedAlarm();
 
422
        }
 
423
 
 
424
        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
 
425
        {
 
426
            m_aboutFrm.ShowDialog();
 
427
        }
 
428
        #endregion
 
429
 
 
430
 
 
431
        #region DeleteSelectedAlarm
 
432
        private void DeleteSelectedAlarm()
 
433
        {
 
434
            if (this.listView1.SelectedIndices.Count > 0 && this.listView1.Items.Count > 0)
 
435
            {
 
436
                if (MessageBox.Show(this, "Are you sure?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
 
437
                {
 
438
                    for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
 
439
                        this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
 
440
                }
 
441
            }
 
442
        }
 
443
        #endregion
 
444
 
 
445
        #region EditSelectedAlarm
 
446
        private void EditSelectedAlarm()
 
447
        {
 
448
            if (this.listView1.SelectedIndices.Count > 0 && this.listView1.Items.Count > 0)
 
449
            {
 
450
                int nListViewIndex = this.listView1.SelectedIndices[0];
 
451
                ListViewItem lviSelected = this.listView1.Items[nListViewIndex];
 
452
 
 
453
                DateTime dateTime = Convert.ToDateTime(lviSelected.SubItems[0].Text);
 
454
                string strRepeat = lviSelected.SubItems[1].Text;
 
455
                string strDescription = lviSelected.SubItems[2].Text;
 
456
 
 
457
                EditFrm editFrm = new EditFrm(dateTime, strRepeat, strDescription, nListViewIndex);
 
458
                editFrm.AlarmEdited += new EditFrm.EditAlarm(editFrm_AlarmEdited);
 
459
                editFrm.ShowDialog(this);
 
460
            }
 
461
        }
 
462
        #endregion
 
463
 
 
464
        #region AskIfClose
 
465
        private bool AskIfClose()
 
466
        {
 
467
            bool blnClose = false;
 
468
            if (MessageBox.Show(this, "Are you sure?", "Close",
 
469
                MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
 
470
            {
 
471
                blnClose = true;
 
472
            }
 
473
            else
 
474
            {
 
475
                //Don't close
 
476
                blnClose = false;
 
477
            }
 
478
 
 
479
            return blnClose;
 
480
        }  
 
481
        #endregion
 
482
 
 
483
        #region NewAlarm
 
484
        private void NewAlarm()
 
485
        {
 
486
            CreateFrm CreateDlg = new CreateFrm();
 
487
            CreateDlg.NewAlarmAdded += new CreateFrm.AddNewAlarm(CreateDlg_NewAlarmAdded);
 
488
            CreateDlg.ShowDialog(this);
 
489
        }
 
490
        #endregion
385
491
    }
386
492
}