Work in progress for alternate colored categories
This commit is contained in:
parent
58d0660e69
commit
07eca62472
@ -482,7 +482,8 @@ namespace Outlook2013TodoAddIn
|
|||||||
e.DrawBackground(); // To avoid repainting (making font "grow")
|
e.DrawBackground(); // To avoid repainting (making font "grow")
|
||||||
Outlook.AppointmentItem appt = e.Item.Tag as Outlook.AppointmentItem;
|
Outlook.AppointmentItem appt = e.Item.Tag as Outlook.AppointmentItem;
|
||||||
|
|
||||||
Color catColor = Color.Empty;
|
// Color catColor = Color.Empty;
|
||||||
|
List<Color> catColors = new List<Color>();
|
||||||
|
|
||||||
Font itemFont = this.Font;
|
Font itemFont = this.Font;
|
||||||
if (!String.IsNullOrEmpty(appt.Categories))
|
if (!String.IsNullOrEmpty(appt.Categories))
|
||||||
@ -496,19 +497,20 @@ namespace Outlook2013TodoAddIn
|
|||||||
Outlook.Category c = Globals.ThisAddIn.Application.Session.Categories[cat] as Outlook.Category;
|
Outlook.Category c = Globals.ThisAddIn.Application.Session.Categories[cat] as Outlook.Category;
|
||||||
if (c != null)
|
if (c != null)
|
||||||
{
|
{
|
||||||
catColor = TranslateCategoryColor(c.Color);
|
catColors.Add(TranslateCategoryColor(c.Color));
|
||||||
}
|
}
|
||||||
// TODO: Check if more than one
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int startRectangleWidth = 65;
|
int startRectangleWidth = 65;
|
||||||
|
int categoriesRectangleWidth = 55;
|
||||||
int horizontalSpacing = 5;
|
int horizontalSpacing = 5;
|
||||||
|
|
||||||
Rectangle totalRectangle = e.Bounds;
|
Rectangle totalRectangle = e.Bounds;
|
||||||
Rectangle startRectangle = totalRectangle; startRectangle.Width = startRectangleWidth;
|
Rectangle startRectangle = totalRectangle; startRectangle.Width = startRectangleWidth;
|
||||||
Rectangle statusRectangle = totalRectangle; statusRectangle.Width = horizontalSpacing * 2; statusRectangle.Offset(startRectangleWidth + horizontalSpacing, 0);
|
Rectangle statusRectangle = totalRectangle; statusRectangle.Width = horizontalSpacing * 2; statusRectangle.Offset(startRectangleWidth + horizontalSpacing, 0);
|
||||||
Rectangle subjectRectangle = totalRectangle; subjectRectangle.Height = this.FontHeight; subjectRectangle.Offset(startRectangleWidth + horizontalSpacing * 4, 0);
|
Rectangle subjectRectangle = totalRectangle; subjectRectangle.Height = this.FontHeight; subjectRectangle.Offset(startRectangleWidth + horizontalSpacing * 4, 0);
|
||||||
|
Rectangle categoriesRectangle = totalRectangle; categoriesRectangle.Width = categoriesRectangleWidth; categoriesRectangle.Height = this.FontHeight; categoriesRectangle.Offset(10, this.FontHeight);
|
||||||
Rectangle locationRectangle = totalRectangle; locationRectangle.Height = this.FontHeight; locationRectangle.Offset(startRectangleWidth + horizontalSpacing * 4, this.FontHeight);
|
Rectangle locationRectangle = totalRectangle; locationRectangle.Height = this.FontHeight; locationRectangle.Offset(startRectangleWidth + horizontalSpacing * 4, this.FontHeight);
|
||||||
bool selected = e.State.HasFlag(ListViewItemStates.Selected);
|
bool selected = e.State.HasFlag(ListViewItemStates.Selected);
|
||||||
Color back = Color.Empty;
|
Color back = Color.Empty;
|
||||||
@ -551,9 +553,21 @@ namespace Outlook2013TodoAddIn
|
|||||||
e.Graphics.FillRectangle(statusBrush, statusRectangle);
|
e.Graphics.FillRectangle(statusBrush, statusRectangle);
|
||||||
e.Graphics.DrawRectangle(new Pen(statusColor), statusRectangle);
|
e.Graphics.DrawRectangle(new Pen(statusColor), statusRectangle);
|
||||||
|
|
||||||
e.Graphics.FillRectangle(new SolidBrush(catColor), subjectRectangle);
|
if (catColors.Count != 0)
|
||||||
|
{
|
||||||
|
int catWidth = categoriesRectangle.Width / catColors.Count;
|
||||||
|
Rectangle catRect = categoriesRectangle;
|
||||||
|
catColors.ForEach(cc =>
|
||||||
|
{
|
||||||
|
e.Graphics.FillRectangle(new SolidBrush(cc), catRect);
|
||||||
|
catRect.Width = catWidth; catRect.Offset(catWidth, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//e.Graphics.FillRectangle(new SolidBrush(catColor), subjectRectangle);
|
||||||
e.Graphics.DrawString(appt.Subject, new Font(this.Font, FontStyle.Bold), colorBrush, subjectRectangle, leftFormat);
|
e.Graphics.DrawString(appt.Subject, new Font(this.Font, FontStyle.Bold), colorBrush, subjectRectangle, leftFormat);
|
||||||
e.Graphics.FillRectangle(new SolidBrush(catColor), locationRectangle);
|
//e.Graphics.FillRectangle(new SolidBrush(catColor), locationRectangle);
|
||||||
e.Graphics.DrawString(appt.Location, this.Font, colorBrush, locationRectangle, leftFormat);
|
e.Graphics.DrawString(appt.Location, this.Font, colorBrush, locationRectangle, leftFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user