source: trunk/Packages/bgracontrols/bgrawin7toolbar.pas

Last change on this file was 2, checked in by chronos, 5 years ago
File size: 4.7 KB
Line 
1unit BGRAWin7ToolBar;
2
3{$mode objfpc}{$H+}
4
5interface
6
7uses
8 Classes, SysUtils, BGRABitmap, BGRABitmapTypes, Controls, Graphics,
9 BGRAVirtualScreen, BGRASamples, LResources, Dialogs, Forms;
10
11type
12
13 { TCustomBGRAWin7ToolBar }
14
15 TCustomBGRAWin7ToolBar = class(TCustomBGRAVirtualScreen)
16 private
17 procedure SetFStyle(AValue: TBGRASampleStyle);
18 protected
19 FSmooth: boolean;
20 FStyle: TBGRASampleStyle;
21 procedure RedrawBitmapContent; override;
22 public
23 procedure StyleButtons;
24 procedure SwitchAlign;
25 constructor Create(TheOwner: TComponent); override;
26 public
27 property Style: TBGRASampleStyle Read FStyle Write SetFStyle;
28 end;
29
30 TBGRAWin7ToolBar = class(TCustomBGRAWin7ToolBar)
31 published
32 property Style;
33 // TBGRAVirtualScreen
34 property OnRedraw;
35 property Bitmap;
36 // TPanel
37 property Align;
38 //property Alignment;
39 property Anchors;
40 property AutoSize;
41 property BorderSpacing;
42 //property BevelInner;
43 //property BevelOuter;
44 //property BevelWidth;
45 property BidiMode;
46 property BorderWidth;
47 property BorderStyle;
48 property Caption;
49 //property ChildSizing;
50 property ClientHeight;
51 property ClientWidth;
52 //property Color;
53 property Constraints;
54 property DockSite;
55 property DragCursor;
56 property DragKind;
57 property DragMode;
58 property Enabled;
59 //property Font;
60 property FullRepaint;
61 property ParentBidiMode;
62 //property ParentColor;
63 //property ParentFont;
64 property ParentShowHint;
65 property PopupMenu;
66 property ShowHint;
67 property TabOrder;
68 property TabStop;
69 property UseDockManager default True;
70 property Visible;
71 property OnClick;
72 property OnContextPopup;
73 property OnDockDrop;
74 property OnDockOver;
75 property OnDblClick;
76 property OnDragDrop;
77 property OnDragOver;
78 property OnEndDock;
79 property OnEndDrag;
80 property OnEnter;
81 property OnExit;
82 property OnGetSiteInfo;
83 property OnGetDockCaption;
84 property OnMouseDown;
85 property OnMouseEnter;
86 property OnMouseLeave;
87 property OnMouseMove;
88 property OnMouseUp;
89 property OnResize;
90 property OnStartDock;
91 property OnStartDrag;
92 property OnUnDock;
93 end;
94
95procedure Register;
96
97implementation
98
99procedure Register;
100begin
101 {$I bgrawin7toolbar_icon.lrs}
102 RegisterComponents('BGRA Controls', [TBGRAWin7ToolBar]);
103end;
104
105{ TBGRAWin7ToolBar }
106
107procedure TCustomBGRAWin7ToolBar.SetFStyle(AValue: TBGRASampleStyle);
108begin
109 if FStyle = AValue then
110 Exit;
111 FStyle := AValue;
112
113 StyleButtons;
114
115 RedrawBitmap;
116end;
117
118procedure TCustomBGRAWin7ToolBar.RedrawBitmapContent;
119begin
120 if (Bitmap <> nil) and (Bitmap.NbPixels <> 0) then
121 begin
122
123 case Style of
124 ssWin7ToolBar: DrawWin7ToolBar(Bitmap, Align);
125 ssWin7ToolBarSmooth: DrawWin7ToolBar(Bitmap, Align, True);
126 ssFlashPlayer: DrawFlashPlayerButtonPanel(Bitmap);
127 ssiOSBar: DrawiOSBar(Bitmap);
128 ssiOSToolBar: DrawiOSToolBar(Bitmap, False);
129 ssiOSBackground: DrawiOSBackground(Bitmap);
130 //ssFacebookBlue: DrawFacebookButton(Bitmap, ColorToBGRA(fbBlue), ColorToBGRA(ColorToRGB(Parent.Color), 255), False);
131 //ssFacebookGreen: DrawFacebookButton(Bitmap, ColorToBGRA(fbGreen), ColorToBGRA(ColorToRGB(Parent.Color), 255), False);
132 //ssFacebookGray: DrawFacebookButton(Bitmap, ColorToBGRA(fbGray), ColorToBGRA(ColorToRGB(Parent.Color), 255), False);
133 ssBlack: Bitmap.Fill(BGRA(23, 23, 23, 255));
134 ssSilverSquared: Bitmap.Fill(BGRA(223, 226, 230, 255));
135 ssSilver, ssGreen, ssBlue: DrawSilverToolBar(Bitmap);
136 else
137 DrawWin7ToolBar(Bitmap, Align); // ToDO: add a toolbar for each style
138 end;
139
140 if Assigned(OnRedraw) then
141 OnRedraw(self, Bitmap);
142 end;
143end;
144
145procedure TCustomBGRAWin7ToolBar.StyleButtons;
146begin
147 StyleButtonsSample(Self, Style);
148end;
149
150procedure TCustomBGRAWin7ToolBar.SwitchAlign;
151begin
152 case Align of
153 alCustom, alNone, alClient, alLeft: Align := alTop;
154 alTop: Align := alRight;
155 alRight: Align := alBottom;
156 alBottom: Align := alLeft;
157 end;
158
159 case Align of
160 // if horizontal
161 alCustom, alNone, alClient, alTop, alBottom: ChildSizing.Layout :=
162 cclTopToBottomThenLeftToRight;
163 // if vertical
164 alLeft, alRight: ChildSizing.Layout := cclLeftToRightThenTopToBottom;
165 end;
166end;
167
168constructor TCustomBGRAWin7ToolBar.Create(TheOwner: TComponent);
169begin
170 inherited Create(TheOwner);
171 // align top default sizing
172 Align := alTop;
173 ChildSizing.Layout := cclTopToBottomThenLeftToRight;
174 //{$IFDEF WINDOWS}
175 // default spacing under different dpi settings
176 //ChildSizing.LeftRightSpacing := ScaleX(4,96);
177 //ChildSizing.TopBottomSpacing := ScaleY(4,96);
178 //{$ELSE}
179 // default spacing
180 ChildSizing.LeftRightSpacing := 4;
181 ChildSizing.TopBottomSpacing := 4;
182 //{$ENDIF}
183end;
184
185end.
Note: See TracBrowser for help on using the repository browser.