Menu

[r1537]: / trunk / GoogleContactsSync / ContactPreview.cs  Maximize  Restore  History

Download this file

88 lines (74 with data), 2.5 kB

 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Windows.Forms;
using Outlook = Microsoft.Office.Interop.Outlook;
namespace GoContactSyncMod
{
public partial class ContactPreview : UserControl
{
private Collection<CPField> fields;
public Outlook.ContactItem OutlookContact { get; set; }
public ContactPreview(Outlook.ContactItem _outlookContact)
{
InitializeComponent();
OutlookContact = _outlookContact;
InitializeFields();
}
private void InitializeFields()
{
// TODO: init all non null fields
fields = new Collection<CPField>();
var index = 0;
var height = Font.Height;
if (OutlookContact.FirstName != null)
{
fields.Add(new CPField("First name", OutlookContact.FirstName, new PointF(0, index * height)));
index++;
}
if (OutlookContact.LastName != null)
{
fields.Add(new CPField("Last name", OutlookContact.LastName, new PointF(0, index * height)));
index++;
}
if (OutlookContact.Email1Address != null)
{
fields.Add(new CPField("Email", ContactPropertiesUtils.GetOutlookEmailAddress1(OutlookContact), new PointF(0, index * height)));
index++;
}
// resize to fit
Height = (index + 1) * height;
}
private void ContactPreview_Paint(object sender, PaintEventArgs e)
{
foreach (var field in fields)
{
field.Draw(e, Font);
}
}
}
public class CPField
{
public string Name { get; set; }
public string Value { get; set; }
public PointF P { get; set; }
public CPField(string nameVal, string valueVal, PointF pVal)
{
Name = nameVal;
Value = valueVal;
P = pVal;
}
public void Draw(PaintEventArgs e, Font font)
{
var str = Name + ": " + Value;
if (e != null)
{
e.Graphics.DrawString(str, font, Brushes.Black, P);
}
else
{
throw new ArgumentNullException("PaintEventArgs is null");
}
}
}
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.