diff --git a/components/spktoolbar/SpkToolbar/spkt_Appearance.pas b/components/spktoolbar/SpkToolbar/spkt_Appearance.pas index fe70c7adc..c95a802c1 100644 --- a/components/spktoolbar/SpkToolbar/spkt_Appearance.pas +++ b/components/spktoolbar/SpkToolbar/spkt_Appearance.pas @@ -24,53 +24,54 @@ type type TSpkTabAppearance = class(TPersistent) private - FDispatch : TSpkBaseAppearanceDispatch; + FDispatch: TSpkBaseAppearanceDispatch; protected - FTabHeaderFont : TFont; - FBorderColor : TColor; - FGradientFromColor : TColor; - FGradientToColor : TColor; - FGradientType : TBackgroundKind; + FTabHeaderFont: TFont; + FBorderColor: TColor; + FGradientFromColor: TColor; + FGradientToColor: TColor; + FGradientType: TBackgroundKind; FInactiveHeaderFontColor: TColor; - // *** Gettery i settery *** - + // Getter & setter methods procedure SetHeaderFont(const Value: TFont); procedure SetBorderColor(const Value: TColor); procedure SetGradientFromColor(const Value: TColor); procedure SetGradientToColor(const Value: TColor); procedure SetGradientType(const Value: TBackgroundKind); procedure SetInactiveHeaderFontColor(const Value: TColor); + public // *** Konstruktor, destruktor, assign *** // Appearance musi mieæ assign, bo wystêpuje jako w³asnoœæ // opublikowana. - procedure Assign(Source : TPersistent); override; - constructor Create(ADispatch : TSpkBaseAppearanceDispatch); - procedure SaveToXML(Node : TSpkXMLNode); - procedure LoadFromXML(Node : TSpkXMLNode); + procedure Assign(Source: TPersistent); override; + constructor Create(ADispatch: TSpkBaseAppearanceDispatch); + procedure SaveToPascal(AList: TStrings); + procedure SaveToXML(Node: TSpkXMLNode); + procedure LoadFromXML(Node: TSpkXMLNode); destructor Destroy; override; procedure Reset; published - property TabHeaderFont : TFont read FTabHeaderFont write SetHeaderFont; - property BorderColor : TColor read FBorderColor write SetBorderColor; - property GradientFromColor : TColor read FGradientFromColor write SetGradientFromColor; - property GradientToColor : TColor read FGradientToColor write SetGradientToColor; - property GradientType : TBackgroundKind read FGradientType write SetGradientType; + property TabHeaderFont: TFont read FTabHeaderFont write SetHeaderFont; + property BorderColor: TColor read FBorderColor write SetBorderColor; + property GradientFromColor: TColor read FGradientFromColor write SetGradientFromColor; + property GradientToColor: TColor read FGradientToColor write SetGradientToColor; + property GradientType: TBackgroundKind read FGradientType write SetGradientType; property InactiveTabHeaderFontColor: TColor read FInactiveHeaderFontColor write SetInactiveHeaderFontColor; end; type TSpkPaneAppearance = class(TPersistent) private - FDispatch : TSpkBaseAppearanceDispatch; + FDispatch: TSpkBaseAppearanceDispatch; protected - FCaptionFont : TFont; - FBorderDarkColor : TColor; - FBorderLightColor : TColor; - FCaptionBgColor : TColor; - FGradientFromColor : TColor; - FGradientToColor : TColor; - FGradientType : TBackgroundKind; + FCaptionFont: TFont; + FBorderDarkColor: TColor; + FBorderLightColor: TColor; + FCaptionBgColor: TColor; + FGradientFromColor: TColor; + FGradientToColor: TColor; + FGradientType: TBackgroundKind; FStyle: TSpkPaneStyle; procedure SetCaptionBgColor(const Value: TColor); @@ -82,11 +83,12 @@ type TSpkPaneAppearance = class(TPersistent) procedure SetGradientType(const Value: TBackgroundKind); procedure SetStyle(const Value: TSpkPaneStyle); public - procedure Assign(Source: TPersistent); override; constructor Create(ADispatch: TSpkBaseAppearanceDispatch); + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + procedure SaveToPascal(AList: TStrings); procedure SaveToXML(Node: TSpkXMLNode); procedure LoadFromXML(Node: TSpkXMLNode); - destructor Destroy; override; procedure Reset; published property BorderDarkColor: TColor read FBorderDarkColor write SetBorderDarkColor; @@ -101,30 +103,30 @@ type TSpkPaneAppearance = class(TPersistent) type TSpkElementAppearance = class(TPersistent) private - FDispatch : TSpkBaseAppearanceDispatch; + FDispatch: TSpkBaseAppearanceDispatch; protected - FCaptionFont : TFont; - FIdleFrameColor : TColor; - FIdleGradientFromColor : TColor; - FIdleGradientToColor : TColor; - FIdleGradientType : TBackgroundKind; - FIdleInnerLightColor : TColor; - FIdleInnerDarkColor : TColor; - FIdleCaptionColor : TColor; - FHotTrackFrameColor : TColor; - FHotTrackGradientFromColor : TColor; - FHotTrackGradientToColor : TColor; - FHotTrackGradientType : TBackgroundKind; - FHotTrackInnerLightColor : TColor; - FHotTrackInnerDarkColor : TColor; - FHotTrackCaptionColor : TColor; - FActiveFrameColor : TColor; - FActiveGradientFromColor : TColor; - FActiveGradientToColor : TColor; - FActiveGradientType : TBackgroundKind; - FActiveInnerLightColor : TColor; - FActiveInnerDarkColor : TColor; - FActiveCaptionColor : TColor; + FCaptionFont: TFont; + FIdleFrameColor: TColor; + FIdleGradientFromColor: TColor; + FIdleGradientToColor: TColor; + FIdleGradientType: TBackgroundKind; + FIdleInnerLightColor: TColor; + FIdleInnerDarkColor: TColor; + FIdleCaptionColor: TColor; + FHotTrackFrameColor: TColor; + FHotTrackGradientFromColor: TColor; + FHotTrackGradientToColor: TColor; + FHotTrackGradientType: TBackgroundKind; + FHotTrackInnerLightColor: TColor; + FHotTrackInnerDarkColor: TColor; + FHotTrackCaptionColor: TColor; + FActiveFrameColor: TColor; + FActiveGradientFromColor: TColor; + FActiveGradientToColor: TColor; + FActiveGradientType: TBackgroundKind; + FActiveInnerLightColor: TColor; + FActiveInnerDarkColor: TColor; + FActiveCaptionColor: TColor; procedure SetActiveCaptionColor(const Value: TColor); procedure SetActiveFrameColor(const Value: TColor); @@ -149,80 +151,98 @@ type TSpkElementAppearance = class(TPersistent) procedure SetIdleInnerDarkColor(const Value: TColor); procedure SetIdleInnerLightColor(const Value: TColor); public - procedure Assign(Source : TPersistent); override; - constructor Create(ADispatch : TSpkBaseAppearanceDispatch); - procedure SaveToXML(Node : TSpkXMLNode); - procedure LoadFromXML(Node : TSpkXMLNode); + constructor Create(ADispatch: TSpkBaseAppearanceDispatch); destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + procedure SaveToPascal(AList: TStrings); + procedure SaveToXML(Node: TSpkXMLNode); + procedure LoadFromXML(Node: TSpkXMLNode); procedure Reset; published - property CaptionFont : TFont read FCaptionFont write SetCaptionFont; - property IdleFrameColor : TColor read FIdleFrameColor write SetIdleFrameColor; - property IdleGradientFromColor : TColor read FIdleGradientFromColor write SetIdleGradientFromColor; - property IdleGradientToColor : TColor read FIdleGradientToColor write SetIdleGradientToColor; - property IdleGradientType : TBackgroundKind read FIdleGradientType write SetIdleGradientType; - property IdleInnerLightColor : TColor read FIdleInnerLightColor write SetIdleInnerLightColor; - property IdleInnerDarkColor : TColor read FIdleInnerDarkColor write SetIdleInnerDarkColor; - property IdleCaptionColor : TColor read FIdleCaptionColor write SetIdleCaptionColor; - property HotTrackFrameColor : TColor read FHotTrackFrameColor write SetHotTrackFrameColor; - property HotTrackGradientFromColor : TColor read FHotTrackGradientFromColor write SetHotTrackGradientFromColor; - property HotTrackGradientToColor : TColor read FHotTrackGradientToColor write SetHotTrackGradientToColor; - property HotTrackGradientType : TBackgroundKind read FHotTrackGradientType write SetHotTrackGradientType; - property HotTrackInnerLightColor : TColor read FHotTrackInnerLightColor write SetHotTrackInnerLightColor; - property HotTrackInnerDarkColor : TColor read FHotTrackInnerDarkColor write SetHotTrackInnerDarkColor; - property HotTrackCaptionColor : TColor read FHotTrackCaptionColor write SetHotTrackCaptionColor; - property ActiveFrameColor : TColor read FActiveFrameColor write SetActiveFrameColor; - property ActiveGradientFromColor : TColor read FActiveGradientFromColor write SetActiveGradientFromColor; - property ActiveGradientToColor : TColor read FActiveGradientToColor write SetActiveGradientToColor; - property ActiveGradientType : TBackgroundKind read FActiveGradientType write SetActiveGradientType; - property ActiveInnerLightColor : TColor read FActiveInnerLightColor write SetActiveInnerLightColor; - property ActiveInnerDarkColor : TColor read FActiveInnerDarkColor write SetActiveInnerDarkColor; - property ActiveCaptionColor : TColor read FActiveCaptionColor write SetActiveCaptionColor; + property CaptionFont: TFont read FCaptionFont write SetCaptionFont; + property IdleFrameColor: TColor read FIdleFrameColor write SetIdleFrameColor; + property IdleGradientFromColor: TColor read FIdleGradientFromColor write SetIdleGradientFromColor; + property IdleGradientToColor: TColor read FIdleGradientToColor write SetIdleGradientToColor; + property IdleGradientType: TBackgroundKind read FIdleGradientType write SetIdleGradientType; + property IdleInnerLightColor: TColor read FIdleInnerLightColor write SetIdleInnerLightColor; + property IdleInnerDarkColor: TColor read FIdleInnerDarkColor write SetIdleInnerDarkColor; + property IdleCaptionColor: TColor read FIdleCaptionColor write SetIdleCaptionColor; + property HotTrackFrameColor: TColor read FHotTrackFrameColor write SetHotTrackFrameColor; + property HotTrackGradientFromColor: TColor read FHotTrackGradientFromColor write SetHotTrackGradientFromColor; + property HotTrackGradientToColor: TColor read FHotTrackGradientToColor write SetHotTrackGradientToColor; + property HotTrackGradientType: TBackgroundKind read FHotTrackGradientType write SetHotTrackGradientType; + property HotTrackInnerLightColor: TColor read FHotTrackInnerLightColor write SetHotTrackInnerLightColor; + property HotTrackInnerDarkColor: TColor read FHotTrackInnerDarkColor write SetHotTrackInnerDarkColor; + property HotTrackCaptionColor: TColor read FHotTrackCaptionColor write SetHotTrackCaptionColor; + property ActiveFrameColor: TColor read FActiveFrameColor write SetActiveFrameColor; + property ActiveGradientFromColor: TColor read FActiveGradientFromColor write SetActiveGradientFromColor; + property ActiveGradientToColor: TColor read FActiveGradientToColor write SetActiveGradientToColor; + property ActiveGradientType: TBackgroundKind read FActiveGradientType write SetActiveGradientType; + property ActiveInnerLightColor: TColor read FActiveInnerLightColor write SetActiveInnerLightColor; + property ActiveInnerDarkColor: TColor read FActiveInnerDarkColor write SetActiveInnerDarkColor; + property ActiveCaptionColor: TColor read FActiveCaptionColor write SetActiveCaptionColor; end; type TSpkToolbarAppearance = class; TSpkToolbarAppearanceDispatch = class(TSpkBaseAppearanceDispatch) private - FToolbarAppearance : TSpkToolbarAppearance; + FToolbarAppearance: TSpkToolbarAppearance; protected public - constructor Create(AToolbarAppearance : TSpkToolbarAppearance); + constructor Create(AToolbarAppearance: TSpkToolbarAppearance); procedure NotifyAppearanceChanged; override; end; TSpkToolbarAppearance = class(TPersistent) private - FAppearanceDispatch : TSpkToolbarAppearanceDispatch; + FAppearanceDispatch: TSpkToolbarAppearanceDispatch; protected - FTab : TSpkTabAppearance; - FPane : TSpkPaneAppearance; - FElement : TSpkElementAppearance; - - FDispatch : TSpkBaseAppearanceDispatch; - + FTab: TSpkTabAppearance; + FPane: TSpkPaneAppearance; + FElement: TSpkElementAppearance; + FDispatch: TSpkBaseAppearanceDispatch; procedure SetElementAppearance(const Value: TSpkElementAppearance); procedure SetPaneAppearance(const Value: TSpkPaneAppearance); procedure SetTabAppearance(const Value: TSpkTabAppearance); public - procedure NotifyAppearanceChanged; - - constructor Create(ADispatch : TSpkBaseAppearanceDispatch); reintroduce; + constructor Create(ADispatch: TSpkBaseAppearanceDispatch); reintroduce; destructor Destroy; override; - procedure Assign(Source : TPersistent); override; + procedure Assign(Source: TPersistent); override; + procedure NotifyAppearanceChanged; procedure Reset; - procedure SaveToXML(Node : TSpkXMLNode); - procedure LoadFromXML(Node : TSpkXMLNode); + procedure SaveToPascal(AList: TStrings); + procedure SaveToXML(Node: TSpkXMLNode); + procedure LoadFromXML(Node: TSpkXMLNode); published - property Tab : TSpkTabAppearance read FTab write SetTabAppearance; - property Pane : TSpkPaneAppearance read FPane write SetPaneAppearance; - property Element : TSpkElementAppearance read FElement write SetElementAppearance; + property Tab: TSpkTabAppearance read FTab write SetTabAppearance; + property Pane: TSpkPaneAppearance read FPane write SetPaneAppearance; + property Element: TSpkElementAppearance read FElement write SetElementAppearance; end; + implementation uses - LCLIntf, LCLType; + LCLIntf, LCLType, typinfo; + +procedure SaveFontToPascal(AList: TStrings; AFont: TFont; AName: String); +var + sty: String; +begin + sty := ''; + if fsBold in AFont.Style then sty := sty + 'fsBold,'; + if fsItalic in AFont.Style then sty := sty + 'fsItalic,'; + if fsUnderline in AFont.Style then sty := sty + 'fsUnderline,'; + if fsStrikeout in AFont.Style then sty := sty + 'fsStrikeout,'; + if sty <> '' then Delete(sty, Length(sty), 1); + with AList do begin + Add(AName + '.Name := ''' + AFont.Name + ''';'); + Add(AName + '.Size := ' + IntToStr(AFont.Size) + ';'); + Add(AName + '.Style := [' + sty + '];'); + Add(AName + '.Color := $' + IntToHex(AFont.Color, 8) + ';'); + end; +end; { TSpkBaseToolbarAppearance } @@ -334,6 +354,20 @@ begin FInactiveHeaderFontColor := FTabHeaderFont.Color; end; +procedure TSpkTabAppearance.SaveToPascal(AList: TStrings); +begin + with AList do begin + Add(' with Tab do begin'); + SaveFontToPascal(AList, FTabHeaderFont, ' TabHeaderFont'); + Add(' BorderColor := $' + IntToHex(FBorderColor, 8) + ';'); + Add(' GradientFromColor := $' + IntToHex(FGradientFromColor, 8) + ';'); + Add(' GradientToColor := $' + IntToHex(FGradientToColor, 8) + ';'); + Add(' GradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FGradientType)) + ';'); + Add(' InactiveTabHeaderFontColor := $' + IntToHex(FInactiveHeaderFontColor, 8) + ';'); + Add(' end;'); + end; +end; + procedure TSpkTabAppearance.SaveToXML(Node: TSpkXMLNode); var Subnode: TSpkXMLNode; @@ -525,11 +559,27 @@ begin FStyle := psRectangleEtched; end; +procedure TSpkPaneAppearance.SaveToPascal(AList: TStrings); +begin + with AList do begin + Add(' with Pane do begin'); + SaveFontToPascal(AList, FCaptionFont, ' CaptionFont'); + Add(' BorderDarkColor := $' + IntToHex(FBorderDarkColor, 8) + ';'); + Add(' BorderLightColor := $' + IntToHex(FBorderLightColor, 8) + ';'); + Add(' CaptionBgColor := $' + IntToHex(FcaptionBgColor, 8) + ';'); + Add(' GradientFromColor := $' + IntToHex(FGradientFromColor, 8) + ';'); + Add(' GradientToColor := $' + IntToHex(FGradientToColor, 8) + ';'); + Add(' GradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FGradientType)) + ';'); + Add(' Style := ' + GetEnumName(TypeInfo(TSpkPaneStyle), ord(FStyle))); + Add(' end;'); + end; +end; + procedure TSpkPaneAppearance.SaveToXML(Node: TSpkXMLNode); var Subnode: TSpkXMLNode; begin - if not(Assigned(Node)) then + if not Assigned(Node) then exit; Subnode := Node['CaptionFont',true]; @@ -830,85 +880,114 @@ begin FActiveCaptionColor := rgb(110, 66, 128); end; -procedure TSpkElementAppearance.SaveToXML(Node: TSpkXMLNode); - -var Subnode : TSpkXMLNode; - +procedure TSpkElementAppearance.SaveToPascal(AList: TStrings); begin -if not(assigned(Node)) then - exit; + with AList do begin + Add(' with Element do begin'); + SaveFontToPascal(AList, FCaptionFont, ' CaptionFont'); -Subnode:=Node['CaptionFont',true]; -TSpkXMLTools.Save(Subnode, FCaptionFont); + Add(' IdleFrameColor := $' + IntToHex(FIdleFrameColor, 8) + ';'); + Add(' IdleGradientFromColor := $' + IntToHex(FIdleGradientFromColor, 8) + ';'); + Add(' IdleGradientToColor := $' + IntToHex(FIdleGradientToColor, 8) + ';'); + Add(' IdleGradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FIdleGradientType)) + ';'); + Add(' IdleInnerDarkColor := $' + IntToHex(FIdleInnerDarkColor, 8) + ';'); + Add(' IdleInnerLightColor := $' + IntToHex(FIdleInnerLightColor, 8) + ';'); + Add(' IdleCaptionColor := $' + IntToHex(FIdleCaptionColor, 8) + ';'); -// *** Idle *** + Add(' HotTrackFrameColor := $' + IntToHex(FHotTrackFrameColor, 8) + ';'); + Add(' HotTrackGradientFromColor := $' + IntToHex(FHotTrackGradientFromColor, 8) + ';'); + Add(' HotTrackGradientToColor := $' + IntToHex(FHotTrackGradientToColor, 8) + ';'); + Add(' HotTrackGradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FHotTrackGradientType)) + ';'); + Add(' HotTrackInnerDarkColor := $' + IntToHex(FHotTrackInnerDarkColor, 8) + ';'); + Add(' HotTrackInnerLightColor := $' + IntToHex(FHotTrackInnerLightColor, 8) + ';'); + Add(' HotTrackCaptionColor := $' + IntToHex(FHotTrackCaptionColor, 8) + ';'); -Subnode:=Node['IdleFrameColor',true]; -Subnode.TextAsColor:=FIdleFrameColor; + Add(' ActiveFrameColor := $' + IntToHex(FActiveFrameColor, 8) + ';'); + Add(' ActiveGradientFromColor := $' + IntToHex(FActiveGradientFromColor, 8) + ';'); + Add(' ActiveGradientToColor := $' + IntToHex(FActiveGradientToColor, 8) + ';'); + Add(' ActiveGradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FActiveGradientType)) + ';'); + Add(' ActiveInnerDarkColor := $' + IntToHex(FActiveInnerDarkColor, 8) + ';'); + Add(' ActiveInnerLightColor := $' + IntToHex(FActiveInnerLightColor, 8) + ';'); + Add(' ActiveCaptionColor := $' + IntToHex(FActiveCaptionColor, 8) + ';'); + Add(' end;'); + end; +end; -Subnode:=Node['IdleGradientFromColor',true]; -Subnode.TextAsColor:=FIdleGradientFromColor; +procedure TSpkElementAppearance.SaveToXML(Node: TSpkXMLNode); +var + Subnode: TSpkXMLNode; +begin + if not Assigned(Node) then + exit; -Subnode:=Node['IdleGradientToColor',true]; -Subnode.TextAsColor:=FIdleGradientToColor; + Subnode := Node['CaptionFont',true]; + TSpkXMLTools.Save(Subnode, FCaptionFont); -Subnode:=Node['IdleGradientType',true]; -Subnode.TextAsInteger:=integer(FIdleGradientType); + // *** Idle *** + Subnode := Node['IdleFrameColor',true]; + Subnode.TextAsColor:=FIdleFrameColor; -Subnode:=Node['IdleInnerLightColor',true]; -Subnode.TextAsColor:=FIdleInnerLightColor; + Subnode := Node['IdleGradientFromColor',true]; + Subnode.TextAsColor:=FIdleGradientFromColor; -Subnode:=Node['IdleInnerDarkColor',true]; -Subnode.TextAsColor:=FIdleInnerDarkColor; + Subnode := Node['IdleGradientToColor',true]; + Subnode.TextAsColor:=FIdleGradientToColor; -Subnode:=Node['IdleCaptionColor',true]; -Subnode.TextAsColor:=FIdleCaptionColor; + Subnode := Node['IdleGradientType',true]; + Subnode.TextAsInteger:=integer(FIdleGradientType); -// *** Hottrack *** + Subnode := Node['IdleInnerLightColor',true]; + Subnode.TextAsColor:=FIdleInnerLightColor; -Subnode:=Node['HottrackFrameColor',true]; -Subnode.TextAsColor:=FHottrackFrameColor; + Subnode := Node['IdleInnerDarkColor',true]; + Subnode.TextAsColor:=FIdleInnerDarkColor; -Subnode:=Node['HottrackGradientFromColor',true]; -Subnode.TextAsColor:=FHottrackGradientFromColor; + Subnode := Node['IdleCaptionColor',true]; + Subnode.TextAsColor:=FIdleCaptionColor; -Subnode:=Node['HottrackGradientToColor',true]; -Subnode.TextAsColor:=FHottrackGradientToColor; + // *** Hottrack *** + Subnode := Node['HottrackFrameColor',true]; + Subnode.TextAsColor:=FHottrackFrameColor; -Subnode:=Node['HottrackGradientType',true]; -Subnode.TextAsInteger:=integer(FHottrackGradientType); + Subnode := Node['HottrackGradientFromColor',true]; + Subnode.TextAsColor:=FHottrackGradientFromColor; -Subnode:=Node['HottrackInnerLightColor',true]; -Subnode.TextAsColor:=FHottrackInnerLightColor; + Subnode := Node['HottrackGradientToColor',true]; + Subnode.TextAsColor:=FHottrackGradientToColor; -Subnode:=Node['HottrackInnerDarkColor',true]; -Subnode.TextAsColor:=FHottrackInnerDarkColor; + Subnode := Node['HottrackGradientType',true]; + Subnode.TextAsInteger:=integer(FHottrackGradientType); -Subnode:=Node['HottrackCaptionColor',true]; -Subnode.TextAsColor:=FHottrackCaptionColor; + Subnode := Node['HottrackInnerLightColor',true]; + Subnode.TextAsColor:=FHottrackInnerLightColor; -// *** Active *** + Subnode := Node['HottrackInnerDarkColor',true]; + Subnode.TextAsColor:=FHottrackInnerDarkColor; -Subnode:=Node['ActiveFrameColor',true]; -Subnode.TextAsColor:=FActiveFrameColor; + Subnode := Node['HottrackCaptionColor',true]; + Subnode.TextAsColor:=FHottrackCaptionColor; -Subnode:=Node['ActiveGradientFromColor',true]; -Subnode.TextAsColor:=FActiveGradientFromColor; + // *** Active *** + Subnode := Node['ActiveFrameColor',true]; + Subnode.TextAsColor:=FActiveFrameColor; -Subnode:=Node['ActiveGradientToColor',true]; -Subnode.TextAsColor:=FActiveGradientToColor; + Subnode := Node['ActiveGradientFromColor',true]; + Subnode.TextAsColor:=FActiveGradientFromColor; -Subnode:=Node['ActiveGradientType',true]; -Subnode.TextAsInteger:=integer(FActiveGradientType); + Subnode := Node['ActiveGradientToColor',true]; + Subnode.TextAsColor:=FActiveGradientToColor; -Subnode:=Node['ActiveInnerLightColor',true]; -Subnode.TextAsColor:=FActiveInnerLightColor; + Subnode := Node['ActiveGradientType',true]; + Subnode.TextAsInteger:=integer(FActiveGradientType); -Subnode:=Node['ActiveInnerDarkColor',true]; -Subnode.TextAsColor:=FActiveInnerDarkColor; + Subnode := Node['ActiveInnerLightColor',true]; + Subnode.TextAsColor:=FActiveInnerLightColor; -Subnode:=Node['ActiveCaptionColor',true]; -Subnode.TextAsColor:=FActiveCaptionColor; + Subnode := Node['ActiveInnerDarkColor',true]; + Subnode.TextAsColor:=FActiveInnerDarkColor; + + Subnode := Node['ActiveCaptionColor',true]; + Subnode.TextAsColor:=FActiveCaptionColor; end; procedure TSpkElementAppearance.SetActiveCaptionColor( @@ -1178,19 +1257,27 @@ begin FAppearanceDispatch.NotifyAppearanceChanged; end; -procedure TSpkToolbarAppearance.SaveToXML(Node: TSpkXMLNode); - -var Subnode : TSpkXMLNode; - +procedure TSpkToolbarAppearance.SaveToPascal(AList: TStrings); begin -Subnode:=Node['Tab',true]; -FTab.SaveToXML(Subnode); + AList.Add('with Appearance do begin'); + FTab.SaveToPascal(AList); + FPane.SaveToPascal(AList); + FElement.SaveToPascal(AList); + AList.ADd('end;'); +end; -Subnode:=Node['Pane',true]; -FPane.SaveToXML(Subnode); +procedure TSpkToolbarAppearance.SaveToXML(Node: TSpkXMLNode); +var + Subnode: TSpkXMLNode; +begin + Subnode:=Node['Tab',true]; + FTab.SaveToXML(Subnode); -Subnode:=Node['Element',true]; -FElement.SaveToXML(Subnode); + Subnode:=Node['Pane',true]; + FPane.SaveToXML(Subnode); + + Subnode:=Node['Element',true]; + FElement.SaveToXML(Subnode); end; procedure TSpkToolbarAppearance.SetElementAppearance( diff --git a/components/spktoolbar/designtime/spkte_AppearanceEditor.lfm b/components/spktoolbar/designtime/spkte_AppearanceEditor.lfm index 638b8f5ed..89c33db0a 100644 --- a/components/spktoolbar/designtime/spkte_AppearanceEditor.lfm +++ b/components/spktoolbar/designtime/spkte_AppearanceEditor.lfm @@ -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' diff --git a/components/spktoolbar/designtime/spkte_AppearanceEditor.pas b/components/spktoolbar/designtime/spkte_AppearanceEditor.pas index 5ad378d76..8698ee291 100644 --- a/components/spktoolbar/designtime/spkte_AppearanceEditor.pas +++ b/components/spktoolbar/designtime/spkte_AppearanceEditor.pas @@ -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. + +