-
Notifications
You must be signed in to change notification settings - Fork 98
/
BarWidgetBase.cs
68 lines (58 loc) · 1.85 KB
/
BarWidgetBase.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
namespace workspacer.Bar
{
public abstract class BarWidgetBase : IBarWidget
{
protected IBarWidgetContext Context { get; private set; }
public string FontName { get; set; } = null;
public string LeftPadding { get; set; } = "";
public string RightPadding { get; set; } = "";
private bool _isDirty = true;
public void Initialize(IBarWidgetContext context)
{
Context = context;
Initialize();
}
public abstract void Initialize();
public abstract IBarWidgetPart[] GetParts();
protected IBarWidgetPart[] Parts(IEnumerable<string> parts)
{
return parts.Select(p => Part(p)).ToArray();
}
protected IBarWidgetPart[] Parts(params string[] parts)
{
return parts.Select(p => Part(p)).ToArray();
}
protected IBarWidgetPart[] Parts(params IBarWidgetPart[] parts)
{
return parts;
}
protected IBarWidgetPart Part(string text, Color fore = null, Color back = null, Action partClicked = null, string fontname = null, string leftPadding = "", string rightPadding = "")
{
return new BarWidgetPart()
{
Text = text,
ForegroundColor = fore,
BackgroundColor = back,
PartClicked = partClicked,
FontName = fontname,
LeftPadding = leftPadding,
RightPadding = rightPadding
};
}
public bool IsDirty()
{
return _isDirty;
}
public void MarkDirty()
{
_isDirty = true;
}
public void MarkClean()
{
_isDirty = false;
}
}
}