mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 21:00:43 +02:00
anchordocking: added property HeaderStyle
git-svn-id: trunk@39577 -
This commit is contained in:
parent
39dde6cf13
commit
6a5a6fe963
@ -384,6 +384,13 @@ type
|
|||||||
|
|
||||||
{ TAnchorDockSettings }
|
{ TAnchorDockSettings }
|
||||||
|
|
||||||
|
TADHeaderStyle = (
|
||||||
|
adhsFrame3D,
|
||||||
|
adhsLine
|
||||||
|
);
|
||||||
|
const
|
||||||
|
adhsDefault = adhsFrame3D;
|
||||||
|
type
|
||||||
TAnchorDockSettings = class
|
TAnchorDockSettings = class
|
||||||
private
|
private
|
||||||
FAllowDragging: boolean;
|
FAllowDragging: boolean;
|
||||||
@ -395,6 +402,7 @@ type
|
|||||||
FHeaderAlignTop: integer;
|
FHeaderAlignTop: integer;
|
||||||
FHeaderButtonSize: integer;
|
FHeaderButtonSize: integer;
|
||||||
FHeaderHint: string;
|
FHeaderHint: string;
|
||||||
|
FHeaderStyle: TADHeaderStyle;
|
||||||
FHideHeaderCaptionFloatingControl: boolean;
|
FHideHeaderCaptionFloatingControl: boolean;
|
||||||
FPageAreaInPercent: integer;
|
FPageAreaInPercent: integer;
|
||||||
FScaleOnResize: boolean;
|
FScaleOnResize: boolean;
|
||||||
@ -409,6 +417,7 @@ type
|
|||||||
procedure SetHeaderAlignTop(AValue: integer);
|
procedure SetHeaderAlignTop(AValue: integer);
|
||||||
procedure SetHeaderButtonSize(AValue: integer);
|
procedure SetHeaderButtonSize(AValue: integer);
|
||||||
procedure SetHeaderHint(AValue: string);
|
procedure SetHeaderHint(AValue: string);
|
||||||
|
procedure SetHeaderStyle(AValue: TADHeaderStyle);
|
||||||
procedure SetHideHeaderCaptionFloatingControl(AValue: boolean);
|
procedure SetHideHeaderCaptionFloatingControl(AValue: boolean);
|
||||||
procedure SetPageAreaInPercent(AValue: integer);
|
procedure SetPageAreaInPercent(AValue: integer);
|
||||||
procedure SetScaleOnResize(AValue: boolean);
|
procedure SetScaleOnResize(AValue: boolean);
|
||||||
@ -430,6 +439,7 @@ type
|
|||||||
property HideHeaderCaptionFloatingControl: boolean read FHideHeaderCaptionFloatingControl write SetHideHeaderCaptionFloatingControl;
|
property HideHeaderCaptionFloatingControl: boolean read FHideHeaderCaptionFloatingControl write SetHideHeaderCaptionFloatingControl;
|
||||||
property AllowDragging: boolean read FAllowDragging write SetAllowDragging;
|
property AllowDragging: boolean read FAllowDragging write SetAllowDragging;
|
||||||
property HeaderButtonSize: integer read FHeaderButtonSize write SetHeaderButtonSize;
|
property HeaderButtonSize: integer read FHeaderButtonSize write SetHeaderButtonSize;
|
||||||
|
property HeaderStyle: TADHeaderStyle read FHeaderStyle write SetHeaderStyle;
|
||||||
procedure IncreaseChangeStamp; inline;
|
procedure IncreaseChangeStamp; inline;
|
||||||
property ChangeStamp: integer read FChangeStamp;
|
property ChangeStamp: integer read FChangeStamp;
|
||||||
procedure LoadFromConfig(Config: TConfigStorage);
|
procedure LoadFromConfig(Config: TConfigStorage);
|
||||||
@ -460,6 +470,7 @@ type
|
|||||||
FHeaderButtonSize: integer;
|
FHeaderButtonSize: integer;
|
||||||
FHeaderClass: TAnchorDockHeaderClass;
|
FHeaderClass: TAnchorDockHeaderClass;
|
||||||
FHeaderHint: string;
|
FHeaderHint: string;
|
||||||
|
FHeaderStyle: TADHeaderStyle;
|
||||||
FIdleConnected: Boolean;
|
FIdleConnected: Boolean;
|
||||||
FManagerClass: TAnchorDockManagerClass;
|
FManagerClass: TAnchorDockManagerClass;
|
||||||
FOnCreateControl: TADCreateControlEvent;
|
FOnCreateControl: TADCreateControlEvent;
|
||||||
@ -502,6 +513,7 @@ type
|
|||||||
procedure SetDockParentMargin(AValue: integer);
|
procedure SetDockParentMargin(AValue: integer);
|
||||||
procedure SetDragTreshold(AValue: integer);
|
procedure SetDragTreshold(AValue: integer);
|
||||||
procedure SetHeaderHint(AValue: string);
|
procedure SetHeaderHint(AValue: string);
|
||||||
|
procedure SetHeaderStyle(AValue: TADHeaderStyle);
|
||||||
procedure SetPageAreaInPercent(AValue: integer);
|
procedure SetPageAreaInPercent(AValue: integer);
|
||||||
procedure SetScaleOnResize(AValue: boolean);
|
procedure SetScaleOnResize(AValue: boolean);
|
||||||
procedure SetShowMenuItemShowHeader(AValue: boolean);
|
procedure SetShowMenuItemShowHeader(AValue: boolean);
|
||||||
@ -607,18 +619,19 @@ type
|
|||||||
property DockOutsideMargin: integer read FDockOutsideMargin write SetDockOutsideMargin default 10; // max distance for outside mouse snapping
|
property DockOutsideMargin: integer read FDockOutsideMargin write SetDockOutsideMargin default 10; // max distance for outside mouse snapping
|
||||||
property DockParentMargin: integer read FDockParentMargin write SetDockParentMargin default 10; // max distance for snap to parent
|
property DockParentMargin: integer read FDockParentMargin write SetDockParentMargin default 10; // max distance for snap to parent
|
||||||
property PageAreaInPercent: integer read FPageAreaInPercent write SetPageAreaInPercent default 40; // size of inner mouse snapping area for page docking
|
property PageAreaInPercent: integer read FPageAreaInPercent write SetPageAreaInPercent default 40; // size of inner mouse snapping area for page docking
|
||||||
property HeaderAlignTop: integer read FHeaderAlignTop write SetHeaderAlignTop default 80; // move header to top, when (width/height)*100<=HeaderAlignTop
|
|
||||||
property HeaderAlignLeft: integer read FHeaderAlignLeft write SetHeaderAlignLeft default 120; // move header to left, when (width/height)*100>=HeaderAlignLeft
|
|
||||||
property HeaderHint: string read FHeaderHint write SetHeaderHint;
|
|
||||||
property SplitterWidth: integer read FSplitterWidth write SetSplitterWidth default 4;
|
|
||||||
property ScaleOnResize: boolean read FScaleOnResize write SetScaleOnResize default true; // scale children when resizing a site
|
|
||||||
property ShowHeader: boolean read FShowHeader write SetShowHeader default true; // set to false to hide all headers
|
property ShowHeader: boolean read FShowHeader write SetShowHeader default true; // set to false to hide all headers
|
||||||
property ShowMenuItemShowHeader: boolean read FShowMenuItemShowHeader write SetShowMenuItemShowHeader default false;
|
property ShowMenuItemShowHeader: boolean read FShowMenuItemShowHeader write SetShowMenuItemShowHeader default false;
|
||||||
property ShowHeaderCaption: boolean read FShowHeaderCaption write SetShowHeaderCaption default true; // set to false to remove the text in the headers
|
property ShowHeaderCaption: boolean read FShowHeaderCaption write SetShowHeaderCaption default true; // set to false to remove the text in the headers
|
||||||
property HideHeaderCaptionFloatingControl: boolean read FHideHeaderCaptionFloatingControl
|
property HideHeaderCaptionFloatingControl: boolean read FHideHeaderCaptionFloatingControl
|
||||||
write SetHideHeaderCaptionFloatingControl default true; // disables ShowHeaderCaption for floating controls
|
write SetHideHeaderCaptionFloatingControl default true; // disables ShowHeaderCaption for floating controls
|
||||||
property AllowDragging: boolean read FAllowDragging write SetAllowDragging default true;
|
property HeaderAlignTop: integer read FHeaderAlignTop write SetHeaderAlignTop default 80; // move header to top, when (width/height)*100<=HeaderAlignTop
|
||||||
|
property HeaderAlignLeft: integer read FHeaderAlignLeft write SetHeaderAlignLeft default 120; // move header to left, when (width/height)*100>=HeaderAlignLeft
|
||||||
property HeaderButtonSize: integer read FHeaderButtonSize write SetHeaderButtonSize default 10;
|
property HeaderButtonSize: integer read FHeaderButtonSize write SetHeaderButtonSize default 10;
|
||||||
|
property HeaderHint: string read FHeaderHint write SetHeaderHint;
|
||||||
|
property HeaderStyle: TADHeaderStyle read FHeaderStyle write SetHeaderStyle default adhsDefault;
|
||||||
|
property SplitterWidth: integer read FSplitterWidth write SetSplitterWidth default 4;
|
||||||
|
property ScaleOnResize: boolean read FScaleOnResize write SetScaleOnResize default true; // scale children when resizing a site
|
||||||
|
property AllowDragging: boolean read FAllowDragging write SetAllowDragging default true;
|
||||||
property OptionsChangeStamp: int64 read FOptionsChangeStamp;
|
property OptionsChangeStamp: int64 read FOptionsChangeStamp;
|
||||||
procedure IncreaseOptionsChangeStamp; inline;
|
procedure IncreaseOptionsChangeStamp; inline;
|
||||||
|
|
||||||
@ -634,6 +647,13 @@ type
|
|||||||
var
|
var
|
||||||
DockMaster: TAnchorDockMaster = nil;
|
DockMaster: TAnchorDockMaster = nil;
|
||||||
|
|
||||||
|
const
|
||||||
|
ADHeaderStyle: array[TADHeaderStyle] of string = (
|
||||||
|
'Frame3D',
|
||||||
|
'Line'
|
||||||
|
);
|
||||||
|
|
||||||
|
function StrToADHeaderStyle(const s: string): TADHeaderStyle;
|
||||||
function dbgs(SiteType: TAnchorDockHostSiteType): string; overload;
|
function dbgs(SiteType: TAnchorDockHostSiteType): string; overload;
|
||||||
|
|
||||||
procedure CopyAnchorBounds(Source, Target: TControl);
|
procedure CopyAnchorBounds(Source, Target: TControl);
|
||||||
@ -662,6 +682,13 @@ function GetEnclosedControls(const ARect: TAnchorControlsRect): TFPList;
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
function StrToADHeaderStyle(const s: string): TADHeaderStyle;
|
||||||
|
begin
|
||||||
|
for Result:=Low(TADHeaderStyle) to High(TADHeaderStyle) do
|
||||||
|
if CompareText(ADHeaderStyle[Result],s)=0 then exit;
|
||||||
|
Result:=adhsDefault;
|
||||||
|
end;
|
||||||
|
|
||||||
function dbgs(SiteType: TAnchorDockHostSiteType): string; overload;
|
function dbgs(SiteType: TAnchorDockHostSiteType): string; overload;
|
||||||
begin
|
begin
|
||||||
case SiteType of
|
case SiteType of
|
||||||
@ -1094,6 +1121,13 @@ begin
|
|||||||
IncreaseChangeStamp;
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TAnchorDockSettings.SetHeaderStyle(AValue: TADHeaderStyle);
|
||||||
|
begin
|
||||||
|
if FHeaderStyle=AValue then Exit;
|
||||||
|
FHeaderStyle:=AValue;
|
||||||
|
IncreaseChangeStamp;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockSettings.SetHideHeaderCaptionFloatingControl(
|
procedure TAnchorDockSettings.SetHideHeaderCaptionFloatingControl(
|
||||||
AValue: boolean);
|
AValue: boolean);
|
||||||
begin
|
begin
|
||||||
@ -1158,6 +1192,7 @@ begin
|
|||||||
HideHeaderCaptionFloatingControl:=Config.GetValue('HideHeaderCaptionFloatingControl',true);
|
HideHeaderCaptionFloatingControl:=Config.GetValue('HideHeaderCaptionFloatingControl',true);
|
||||||
AllowDragging:=Config.GetValue('AllowDragging',true);
|
AllowDragging:=Config.GetValue('AllowDragging',true);
|
||||||
HeaderButtonSize:=Config.GetValue('HeaderButtonSize',10);
|
HeaderButtonSize:=Config.GetValue('HeaderButtonSize',10);
|
||||||
|
HeaderStyle:=StrToADHeaderStyle(Config.GetValue('HeaderStyle',ADHeaderStyle[adhsDefault]));
|
||||||
Config.UndoAppendBasePath;
|
Config.UndoAppendBasePath;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1177,6 +1212,7 @@ begin
|
|||||||
Config.SetDeleteValue('HideHeaderCaptionFloatingControl',HideHeaderCaptionFloatingControl,true);
|
Config.SetDeleteValue('HideHeaderCaptionFloatingControl',HideHeaderCaptionFloatingControl,true);
|
||||||
Config.SetDeleteValue('AllowDragging',AllowDragging,true);
|
Config.SetDeleteValue('AllowDragging',AllowDragging,true);
|
||||||
Config.SetDeleteValue('HeaderButtonSize',HeaderButtonSize,10);
|
Config.SetDeleteValue('HeaderButtonSize',HeaderButtonSize,10);
|
||||||
|
Config.SetDeleteValue('HeaderStyle',ADHeaderStyle[HeaderStyle],ADHeaderStyle[adhsDefault]);
|
||||||
Config.UndoAppendBasePath;
|
Config.UndoAppendBasePath;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1878,6 +1914,13 @@ begin
|
|||||||
OptionsChanged;
|
OptionsChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TAnchorDockMaster.SetHeaderStyle(AValue: TADHeaderStyle);
|
||||||
|
begin
|
||||||
|
if FHeaderStyle=AValue then Exit;
|
||||||
|
FHeaderStyle:=AValue;
|
||||||
|
OptionsChanged;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockMaster.SetPageAreaInPercent(AValue: integer);
|
procedure TAnchorDockMaster.SetPageAreaInPercent(AValue: integer);
|
||||||
begin
|
begin
|
||||||
if FPageAreaInPercent=AValue then Exit;
|
if FPageAreaInPercent=AValue then Exit;
|
||||||
@ -4838,9 +4881,32 @@ end;
|
|||||||
procedure TAnchorDockHeader.Paint;
|
procedure TAnchorDockHeader.Paint;
|
||||||
|
|
||||||
procedure DrawGrabber(r: TRect);
|
procedure DrawGrabber(r: TRect);
|
||||||
|
var
|
||||||
|
Center: Integer;
|
||||||
begin
|
begin
|
||||||
Canvas.Frame3d(r,2,bvLowered);
|
case DockMaster.HeaderStyle of
|
||||||
Canvas.Frame3d(r,4,bvRaised);
|
adhsFrame3D:
|
||||||
|
begin
|
||||||
|
Canvas.Frame3d(r,2,bvLowered);
|
||||||
|
Canvas.Frame3d(r,4,bvRaised);
|
||||||
|
end;
|
||||||
|
adhsLine:
|
||||||
|
if r.Bottom-r.Top < r.Right-r.Left then
|
||||||
|
begin
|
||||||
|
Center:=r.Top+(r.Bottom-r.Top) div 2;
|
||||||
|
Canvas.Pen.Color:=clltgray;
|
||||||
|
Canvas.Line(r.Left+5,Center-1,r.Right-3,Center-1);
|
||||||
|
Canvas.Pen.Color:=clgray;
|
||||||
|
Canvas.Line(r.Left+5,Center,r.Right-3,Center);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Center:=r.Right+(r.Left-r.Right) div 2;
|
||||||
|
Canvas.Pen.Color:=clltgray;
|
||||||
|
Canvas.Line(Center-1,r.Top+3,Center-1,r.Bottom-5);
|
||||||
|
Canvas.Pen.Color:=clgray;
|
||||||
|
Canvas.Line(Center,r.Top+3,Center,r.Bottom-5);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<CONFIG>
|
<CONFIG>
|
||||||
<ProjectOptions>
|
<ProjectOptions>
|
||||||
<Version Value="7"/>
|
<Version Value="9"/>
|
||||||
<General>
|
<General>
|
||||||
<Flags>
|
|
||||||
<UseDefaultCompilerOptions Value="True"/>
|
|
||||||
</Flags>
|
|
||||||
<SessionStorage Value="InIDEConfig"/>
|
<SessionStorage Value="InIDEConfig"/>
|
||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<TargetFileExt Value=""/>
|
|
||||||
<ResourceType Value="res"/>
|
<ResourceType Value="res"/>
|
||||||
<UseXPManifest Value="True"/>
|
<UseXPManifest Value="True"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<Language Value=""/>
|
<Language Value=""/>
|
||||||
<CharSet Value=""/>
|
<CharSet Value=""/>
|
||||||
<StringTable Comments="" CompanyName="" FileDescription="" FileVersion="" InternalName="" LegalCopyright="" LegalTrademarks="" OriginalFilename="" ProductName="" ProductVersion=""/>
|
<StringTable ProductVersion=""/>
|
||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
<IgnoreBinaries Value="False"/>
|
<IgnoreBinaries Value="False"/>
|
||||||
@ -62,12 +61,12 @@
|
|||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="9"/>
|
<Version Value="11"/>
|
||||||
<Target>
|
<Target>
|
||||||
<Filename Value="miniide1"/>
|
<Filename Value="miniide1"/>
|
||||||
</Target>
|
</Target>
|
||||||
<SearchPaths>
|
<SearchPaths>
|
||||||
<IncludeFiles Value="$(ProjOutDir)/"/>
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
|
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
|
||||||
</SearchPaths>
|
</SearchPaths>
|
||||||
<CodeGeneration>
|
<CodeGeneration>
|
||||||
|
Loading…
Reference in New Issue
Block a user