From cc3656a925ec75866b7521286c137749a4b915c2 Mon Sep 17 00:00:00 2001 From: gamosoft_cp Date: Tue, 30 Apr 2013 21:00:02 +0000 Subject: [PATCH] Added enhanced listview display for appointments using tiles --- .../AppointmentsControl.Designer.cs | 9 ++++--- Outlook2013TodoAddIn/AppointmentsControl.cs | 27 +++++++------------ 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/Outlook2013TodoAddIn/AppointmentsControl.Designer.cs b/Outlook2013TodoAddIn/AppointmentsControl.Designer.cs index 49738ad..bf3f555 100644 --- a/Outlook2013TodoAddIn/AppointmentsControl.Designer.cs +++ b/Outlook2013TodoAddIn/AppointmentsControl.Designer.cs @@ -115,6 +115,7 @@ // // listView1 // + this.listView1.Activation = System.Windows.Forms.ItemActivation.OneClick; this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader1, this.columnHeader2}); @@ -129,19 +130,20 @@ this.listView1.ShowItemToolTips = true; this.listView1.Size = new System.Drawing.Size(226, 507); this.listView1.TabIndex = 4; + this.listView1.TileSize = new System.Drawing.Size(300, 38); this.listView1.UseCompatibleStateImageBehavior = false; - this.listView1.View = System.Windows.Forms.View.Details; + this.listView1.View = System.Windows.Forms.View.Tile; this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick); // // columnHeader1 // this.columnHeader1.Text = "Date"; - this.columnHeader1.Width = 78; + this.columnHeader1.Width = 200; // // columnHeader2 // this.columnHeader2.Text = "Subject"; - this.columnHeader2.Width = 163; + this.columnHeader2.Width = 200; // // grpRefresh // @@ -170,7 +172,6 @@ this.apptCalendar.Name = "apptCalendar"; this.apptCalendar.OtherMonthForeColor = System.Drawing.Color.LightGray; this.apptCalendar.SelectedBackColor = System.Drawing.Color.LightBlue; - this.apptCalendar.SelectedDate = new System.DateTime(2013, 4, 26, 0, 0, 0, 0); this.apptCalendar.SelectedForeColor = System.Drawing.Color.Blue; this.apptCalendar.Size = new System.Drawing.Size(226, 242); this.apptCalendar.TabIndex = 1; diff --git a/Outlook2013TodoAddIn/AppointmentsControl.cs b/Outlook2013TodoAddIn/AppointmentsControl.cs index f5c456a..a9e057a 100644 --- a/Outlook2013TodoAddIn/AppointmentsControl.cs +++ b/Outlook2013TodoAddIn/AppointmentsControl.cs @@ -119,23 +119,26 @@ namespace Outlook2013TodoAddIn int sameDay = -1; // startRange.Day; List lstCol = new List(); + ListViewGroup grp = null; lstItems.ToList().ForEach(i => { if (i.Start.Day != sameDay) { - ListViewItem dateItem = new ListViewItem() { Text = i.Start.ToShortDateString() }; - dateItem.Font = new Font(this.listView1.Font, FontStyle.Bold); - lstCol.Add(dateItem); + grp = new ListViewGroup(i.Start.ToShortDateString(), HorizontalAlignment.Left); + this.listView1.Groups.Add(grp); // TODO: Style it? sameDay = i.Start.Day; }; - - ListViewItem current = new ListViewItem() { Text = i.Start.ToShortTimeString() }; + string loc = "-"; // TODO: If no second line is specified, the tile is stretched to only one line + if (!String.IsNullOrEmpty(i.Location)) loc = i.Location; + ListViewItem current = new ListViewItem(new string[] { String.Format("{0} {1}", i.Start.ToShortTimeString(), i.Subject), loc }); current.SubItems.Add(i.Subject); - // current.SubItems.Add(i.Location); + // current.Font = new Font(this.Font, FontStyle.Bold); + // current.UseItemStyleForSubItems = false; + current.ToolTipText = String.Format("{0} - {1} {2}", i.Start.ToShortTimeString(), i.End.ToShortTimeString(), i.Subject); current.Tag = i; - + current.Group = grp; switch (i.BusyStatus) { case Outlook.OlBusyStatus.olBusy: @@ -155,16 +158,6 @@ namespace Outlook2013TodoAddIn } lstCol.Add(current); - - // Add location into a new line (if available) - if (!String.IsNullOrEmpty(i.Location)) - { - ListViewItem locationItem = new ListViewItem() { Text = String.Empty }; - locationItem.SubItems.Add(i.Location); - locationItem.ForeColor = current.ForeColor; - locationItem.Tag = i; - lstCol.Add(locationItem); - } }); this.listView1.Items.Clear();