SpkToolbar: Export Appearance properties as Pascal code.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5353 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-11-15 22:28:06 +00:00
parent 6868957c04
commit 588166bb4c
3 changed files with 336 additions and 191 deletions

View File

@ -321,9 +321,9 @@ object frmAppearanceEditWindow: TfrmAppearanceEditWindow
Height = 368
Top = 132
Width = 562
ActivePage = TabSheet1
ActivePage = TabSheet3
Align = alClient
TabIndex = 0
TabIndex = 2
TabOrder = 1
object TabSheet1: TTabSheet
Caption = 'Tab'
@ -1985,14 +1985,14 @@ object frmAppearanceEditWindow: TfrmAppearanceEditWindow
end
object TabSheet4: TTabSheet
Caption = 'Import / export'
ClientHeight = 326
ClientWidth = 549
ClientHeight = 340
ClientWidth = 554
ImageIndex = 3
object bImport: TButton
AnchorSideLeft.Control = bExport
AnchorSideLeft.Control = bExportToXML
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = TabSheet4
Left = 118
Left = 260
Height = 25
Top = 4
Width = 110
@ -2002,17 +2002,18 @@ object frmAppearanceEditWindow: TfrmAppearanceEditWindow
OnClick = bImportClick
TabOrder = 0
end
object bExport: TButton
AnchorSideLeft.Control = TabSheet4
object bExportToXML: TButton
AnchorSideLeft.Control = bExportToPascal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = TabSheet4
Left = 4
Left = 146
Height = 25
Top = 4
Width = 110
BorderSpacing.Left = 4
BorderSpacing.Top = 4
Caption = 'Export to XML'
OnClick = bExportClick
OnClick = bExportToXMLClick
TabOrder = 1
end
object mXML: TMemo
@ -2024,9 +2025,9 @@ object frmAppearanceEditWindow: TfrmAppearanceEditWindow
AnchorSideBottom.Control = TabSheet4
AnchorSideBottom.Side = asrBottom
Left = 4
Height = 289
Height = 303
Top = 33
Width = 541
Width = 546
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 4
@ -2036,8 +2037,37 @@ object frmAppearanceEditWindow: TfrmAppearanceEditWindow
Font.Height = -11
Font.Name = 'Courier New'
ParentFont = False
ScrollBars = ssAutoBoth
TabOrder = 2
end
object bExportToPascal: TButton
AnchorSideLeft.Control = TabSheet4
AnchorSideTop.Control = TabSheet4
Left = 4
Height = 25
Top = 4
Width = 138
BorderSpacing.Left = 4
BorderSpacing.Top = 4
Caption = 'Export to Pascal code'
OnClick = bExportToPascalClick
TabOrder = 3
end
object bCopyToClipboard: TButton
AnchorSideTop.Control = TabSheet4
AnchorSideRight.Control = TabSheet4
AnchorSideRight.Side = asrBottom
Left = 475
Height = 25
Top = 4
Width = 75
Anchors = [akTop, akRight]
BorderSpacing.Top = 4
BorderSpacing.Right = 4
Caption = 'Copy'
OnClick = bCopyToClipboardClick
TabOrder = 4
end
end
object TabSheet5: TTabSheet
Caption = 'Tools'

View File

@ -44,6 +44,8 @@ type
bTabGradientFromColor: TSpeedButton;
bTabGradientToColor: TSpeedButton;
bActiveTabHeaderFontColor: TSpeedButton;
bExportToPascal: TButton;
bCopyToClipboard: TButton;
cbPaneStyle: TComboBox;
ColorView: TShape;
gbPreview: TGroupBox;
@ -143,7 +145,7 @@ type
pPaneCaptionFontColor: TPanel;
TabSheet4: TTabSheet;
bImport: TButton;
bExport: TButton;
bExportToXML: TButton;
mXML: TMemo;
sTabRectangle: TShape;
cbLinkTab: TCheckBox;
@ -155,7 +157,8 @@ type
Label17: TLabel;
bReset: TButton;
procedure bExportClick(Sender: TObject);
procedure bExportToPascalClick(Sender: TObject);
procedure bExportToXMLClick(Sender: TObject);
procedure bImportClick(Sender: TObject);
procedure bInactiveTabHeaderFontColorClick(Sender: TObject);
procedure bItemActiveCaptionColorClick(Sender: TObject);
@ -188,7 +191,7 @@ type
procedure bTabGradientFromColorClick(Sender: TObject);
procedure bTabGradientToColorClick(Sender: TObject);
procedure bActiveTabHeaderFontColorClick(Sender: TObject);
procedure bCopyToClipboardClick(Sender: TObject);
procedure cbItemActiveGradientKindChange(Sender: TObject);
procedure cbItemHottrackGradientKindChange(Sender: TObject);
procedure cbItemIdleGradientKindChange(Sender: TObject);
@ -285,6 +288,9 @@ implementation
{$R *.lfm}
uses
clipbrd;
var
CurrPageIndex: Integer = 0;
@ -404,6 +410,12 @@ begin
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bCopyToClipboardClick(Sender: TObject);
begin
if mXML.Lines.Count > 0 then
Clipboard.AsText := mXML.Text;
end;
procedure TfrmAppearanceEditWindow.bActiveTabHeaderFontColorClick(
Sender: TObject);
begin
@ -415,6 +427,36 @@ begin
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bExportToPascalClick(Sender: TObject);
var
L: TStrings;
begin
L := TStringList.Create;
try
tbPreview.Appearance.SaveToPascal(L);
mXML.Clear;
mXML.Lines.Assign(L);
finally
L.Free;
end;
end;
procedure TfrmAppearanceEditWindow.bExportToXMLClick(Sender: TObject);
var
Xml: TSpkXMLParser;
Node: TSpkXMLNode;
begin
XML:=TSpkXMLParser.Create;
try
Node := XML['Appearance', true];
tbPreview.Appearance.SaveToXML(Node);
mXML.Clear;
mXml.Text:=XML.Generate;
finally
XML.Free;
end;
end;
procedure TfrmAppearanceEditWindow.bInactiveTabHeaderFontColorClick(
Sender: TObject);
begin
@ -540,7 +582,7 @@ end;
procedure TfrmAppearanceEditWindow.bItemIdleCaptionColorClick(Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pItemIdleFrame) then begin
if PickColor(pItemIdleCaptionColor) then begin
tbPreview.Appearance.Element.IdleCaptionColor := pItemIdleCaptionColor.Color;
if cbLinkTab.checked then
SetLinkedFrameColor(pItemIdleCaptionColor.Color)
@ -879,22 +921,6 @@ begin
tbPreview.Appearance.Element.ActiveGradientFromColor:=(Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.bExportClick(Sender: TObject);
var
Xml: TSpkXMLParser;
Node: TSpkXMLNode;
begin
XML:=TSpkXMLParser.Create;
try
Node := XML['Appearance', true];
tbPreview.Appearance.SaveToXML(Node);
mXML.Clear;
mXml.Text:=XML.Generate;
finally
XML.Free;
end;
end;
procedure TfrmAppearanceEditWindow.bImportClick(Sender: TObject);
var
XML: TSpkXMLParser;
@ -1265,3 +1291,5 @@ begin
end;
end.