blob: 299083d185f3da48e81a6b0b3e961d25c4aa3bbf (
plain)
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
|
unit stylemanager;
{$mode objfpc}{$H+}
interface
uses
Classes
,fpGUI
;
type
TStyleManager = class(TObject)
private
FDefaultStyle: TStyle;
FUserStyle: TStyle;
function GetDefaultStyle: TStyle;
public
property DefaultStyle: TStyle read GetDefaultStyle;
procedure SetStyle(pNewStyle: TStyle);
end;
// lazy mans singleton
function gStyleManager: TStyleManager;
implementation
uses
fpGFX
;
var
uStyleManager: TStyleManager;
{ Creation is deferred to the first request }
function gStyleManager: TStyleManager;
begin
if uStyleManager = nil then
uStyleManager := TStyleManager.Create;
result := uStyleManager;
end;
{ TStyleManager }
function TStyleManager.GetDefaultStyle: TStyle;
begin
if Assigned(FUserStyle) then
Result := FUserStyle
else
begin
if not Assigned(FDefaultStyle) then
FDefaultStyle := TDefaultStyle.Create(gApplication);
Result := FDefaultStyle;
end;
end;
procedure TStyleManager.SetStyle(pNewStyle: TStyle);
begin
if Assigned(FUserStyle) then
FUserStyle.Free;
FUserStyle := pNewStyle;
end;
initialization
uStyleManager := nil;
finalization
uStyleManager.Free;
end.
|