anchordocking: options dialog

git-svn-id: trunk@26072 -
This commit is contained in:
mattias 2010-06-13 07:13:59 +00:00
parent 923c7a6c81
commit bc384354dc
4 changed files with 66 additions and 5 deletions

View File

@ -383,6 +383,8 @@ type
procedure ClearLayoutProperties(AControl: TControl);
procedure PopupMenuPopup(Sender: TObject);
procedure PopupMenuCloseUp(Sender: TObject);
procedure SetShowHeaderCaptionFloatingControl(const AValue: boolean);
procedure SetSplitterWidth(const AValue: integer);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation);
override;
@ -438,10 +440,10 @@ type
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 FHeaderHint;
property SplitterWidth: integer read FSplitterWidth write FSplitterWidth default 4;
property SplitterWidth: integer read FSplitterWidth write SetSplitterWidth default 4;
property ScaleOnResize: boolean read FScaleOnResize write FScaleOnResize default true; // scale children when resizing a site
property ShowHeaderCaptionFloatingControl: boolean read FShowHeaderCaptionFloatingControl
write FShowHeaderCaptionFloatingControl default false;
write SetShowHeaderCaptionFloatingControl default false;
property OnCreateControl: TADCreateControlEvent read FOnCreateControl write FOnCreateControl;
property AllowDragging: boolean read FAllowDragging write FAllowDragging default true;
@ -1356,6 +1358,36 @@ begin
Popup.Items.Clear;
end;
procedure TAnchorDockMaster.SetShowHeaderCaptionFloatingControl(
const AValue: boolean);
var
Site: TAnchorDockHostSite;
i: Integer;
begin
if AValue=ShowHeaderCaptionFloatingControl then exit;
for i:=0 to ComponentCount-1 do begin
Site:=TAnchorDockHostSite(Components[i]);
if not (Site is TAnchorDockHostSite) then continue;
Site.UpdateHeaderShowing;
end;
end;
procedure TAnchorDockMaster.SetSplitterWidth(const AValue: integer);
var
i: Integer;
Splitter: TAnchorDockSplitter;
begin
if AValue=SplitterWidth then exit;
for i:=0 to ComponentCount-1 do begin
Splitter:=TAnchorDockSplitter(Components[i]);
if not (Splitter is TAnchorDockSplitter) then continue;
if Splitter.ResizeAnchor in [akLeft,akRight] then
Splitter.Width:=SplitterWidth
else
Splitter.Height:=SplitterWidth;
end;
end;
procedure TAnchorDockMaster.Notification(AComponent: TComponent;
Operation: TOperation);
var

View File

@ -35,7 +35,7 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel,
Spin, StdCtrls, ComCtrls, AnchorDocking, AnchorDockStr;
StdCtrls, ComCtrls, AnchorDocking, AnchorDockStr;
type
@ -52,6 +52,7 @@ type
ScaleOnResizeCheckBox: TCheckBox;
SplitterWidthLabel: TLabel;
SplitterWidthTrackBar: TTrackBar;
procedure ButtonPanel1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FMaster: TAnchorDockMaster;
@ -84,7 +85,8 @@ end;
procedure TAnchorDockOptionsDialog.FormCreate(Sender: TObject);
begin
DragThresholdLabel.Caption:=adrsDragThreshold;
DragThresholdTrackBar.Hint:=adrsAmountOfPixelOfMouseMovementBeforeDragStarts;
DragThresholdTrackBar.Hint:=
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts;
HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop;
HeaderAlignTopTrackBar.Hint:=
adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop;
@ -95,6 +97,18 @@ begin
SplitterWidthTrackBar.Hint:=adrsSplitterThickness;
ScaleOnResizeCheckBox.Caption:=adrsScaleOnResize;
ScaleOnResizeCheckBox.Hint:=adrsScaleSubSitesWhenASiteIsResized;
ButtonPanel1.OKButton.ModalResult:=mrNone;
ButtonPanel1.OKButton.OnClick:=@ButtonPanel1Click;
end;
procedure TAnchorDockOptionsDialog.ButtonPanel1Click(Sender: TObject);
begin
Master.DragTreshold := DragThresholdTrackBar.Position;
Master.HeaderAlignTop := HeaderAlignTopTrackBar.Position;
Master.HeaderAlignLeft := HeaderAlignLeftTrackBar.Position;
Master.SplitterWidth := SplitterWidthTrackBar.Position;
Master.ScaleOnResize := ScaleOnResizeCheckBox.Checked;
end;
procedure TAnchorDockOptionsDialog.SetMaster(const AValue: TAnchorDockMaster);

View File

@ -7,7 +7,8 @@ unit anchordockpkg;
interface
uses
AnchorDocking, AnchorDockStorage, AnchorDockStr, LazarusPackageIntf;
AnchorDocking, AnchorDockStorage, AnchorDockStr, AnchorDockOptionsDlg,
LazarusPackageIntf;
implementation

View File

@ -72,6 +72,20 @@ resourcestring
+'only one site.';
adrsEmptyName = 'Empty name: ';
adrsDuplicateName = 'Duplicate name: ';
adrsDragThreshold = 'Drag threshold';
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts = 'Amount of pixel the '
+'mouse has to drag before drag starts';
adrsHeaderAlignTop = 'Header align top';
adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop = 'Move header to top '
+'when (Width/Height)*100<=HeaderAlignTop';
adrsHeaderAlignLeft = 'Header align left';
adrsMoveHeaderToLeftWhenWidthHeight100HeaderAlignLeft = 'Move header to '
+'left when (Width/Height)*100>=HeaderAlignLeft';
adrsSplitterWidth = 'Splitter width';
adrsSplitterThickness = 'Splitter thickness';
adrsScaleOnResize = 'Scale on resize';
adrsScaleSubSitesWhenASiteIsResized =
'Scale sub sites when a site is resized';
implementation