anchordocking: converted options to frame

git-svn-id: trunk@26140 -
This commit is contained in:
mattias 2010-06-15 21:11:10 +00:00
parent b5e66e49f5
commit 223e3685a2
4 changed files with 146 additions and 107 deletions

View File

@ -1,21 +1,13 @@
object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Left = 595
Height = 372
Top = 319
Width = 311
Caption = 'AnchorDockOptionsDialog'
ClientHeight = 372
ClientWidth = 311
OnCreate = FormCreate
LCLVersion = '0.9.29'
object ButtonPanel1: TButtonPanel
Left = 6
Height = 42
Top = 324
Width = 299
TabOrder = 0
ShowButtons = [pbOK, pbCancel]
end
object AnchorDockOptionsFrame: TAnchorDockOptionsFrame
Left = 0
Height = 346
Top = 0
Width = 352
ClientHeight = 346
ClientWidth = 352
TabOrder = 0
DesignLeft = 456
DesignTop = 222
object DragThresholdLabel: TLabel
Left = 10
Height = 18
@ -72,7 +64,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Caption = 'ScaleOnResizeCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 1
TabOrder = 0
end
object DragThresholdTrackBar: TTrackBar
AnchorSideLeft.Control = DragThresholdLabel
@ -83,7 +75,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Left = 10
Height = 25
Top = 28
Width = 291
Width = 332
Max = 20
OnChange = DragThresholdTrackBarChange
Position = 0
@ -91,7 +83,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
BorderSpacing.Right = 10
ParentShowHint = False
ShowHint = True
TabOrder = 2
TabOrder = 1
end
object HeaderAlignTopTrackBar: TTrackBar
AnchorSideLeft.Control = DragThresholdTrackBar
@ -102,7 +94,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Left = 10
Height = 25
Top = 210
Width = 291
Width = 332
Frequency = 10
Max = 150
OnChange = HeaderAlignTopTrackBarChange
@ -111,7 +103,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Anchors = [akTop, akLeft, akRight]
ParentShowHint = False
ShowHint = True
TabOrder = 3
TabOrder = 2
end
object HeaderAlignLeftTrackBar: TTrackBar
AnchorSideLeft.Control = DragThresholdTrackBar
@ -122,7 +114,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Left = 10
Height = 25
Top = 263
Width = 291
Width = 332
Frequency = 10
Max = 200
OnChange = HeaderAlignLeftTrackBarChange
@ -131,7 +123,7 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Anchors = [akTop, akLeft, akRight]
ParentShowHint = False
ShowHint = True
TabOrder = 4
TabOrder = 3
end
object SplitterWidthTrackBar: TTrackBar
AnchorSideLeft.Control = DragThresholdTrackBar
@ -142,14 +134,14 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Left = 10
Height = 25
Top = 81
Width = 291
Width = 332
Min = 1
OnChange = SplitterWidthTrackBarChange
Position = 1
Anchors = [akTop, akLeft, akRight]
ParentShowHint = False
ShowHint = True
TabOrder = 5
TabOrder = 4
end
object ShowHeaderCaptionCheckBox: TCheckBox
AnchorSideLeft.Control = ScaleOnResizeCheckBox
@ -175,6 +167,6 @@ object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
Caption = 'HideHeaderCaptionForFloatingCheckBox'
ParentShowHint = False
ShowHint = True
TabOrder = 7
TabOrder = 5
end
end

View File

@ -39,10 +39,9 @@ uses
type
{ TAnchorDockOptionsDialog }
{ TAnchorDockOptionsFrame }
TAnchorDockOptionsDialog = class(TForm)
ButtonPanel1: TButtonPanel;
TAnchorDockOptionsFrame = class(TFrame)
DragThresholdLabel: TLabel;
DragThresholdTrackBar: TTrackBar;
HeaderAlignLeftLabel: TLabel;
@ -54,9 +53,8 @@ type
ShowHeaderCaptionCheckBox: TCheckBox;
SplitterWidthLabel: TLabel;
SplitterWidthTrackBar: TTrackBar;
procedure ButtonPanel1Click(Sender: TObject);
procedure OkClick(Sender: TObject);
procedure DragThresholdTrackBarChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure HeaderAlignLeftTrackBarChange(Sender: TObject);
procedure HeaderAlignTopTrackBarChange(Sender: TObject);
procedure SplitterWidthTrackBarChange(Sender: TObject);
@ -68,6 +66,8 @@ type
procedure UpdateHeaderAlignLeftLabel;
procedure UpdateSplitterWidthLabel;
public
procedure SaveToMaster;
procedure LoadFromMaster;
property Master: TAnchorDockMaster read FMaster write SetMaster;
end;
@ -77,11 +77,27 @@ implementation
function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult;
var
Dlg: TAnchorDockOptionsDialog;
Dlg: TForm;
OptsFrame: TAnchorDockOptionsFrame;
BtnPanel: TButtonPanel;
begin
Dlg:=TAnchorDockOptionsDialog.Create(nil);
Dlg:=TForm.Create(nil);
try
Dlg.Master:=ADockMaster;
Dlg.DisableAutoSizing;
Dlg.Position:=poScreenCenter;
Dlg.AutoSize:=true;
Dlg.Caption:=adrsGeneralDockingOptions;
OptsFrame:=TAnchorDockOptionsFrame.Create(Dlg);
OptsFrame.Align:=alClient;
OptsFrame.Parent:=Dlg;
OptsFrame.Master:=ADockMaster;
BtnPanel:=TButtonPanel.Create(Dlg);
BtnPanel.ShowButtons:=[pbOK, pbCancel];
BtnPanel.OKButton.OnClick:=@OptsFrame.OkClick;
BtnPanel.Parent:=Dlg;
Dlg.EnableAutoSizing;
Result:=Dlg.ShowModal;
finally
Dlg.Free;
@ -90,51 +106,68 @@ end;
{$R *.lfm}
{ TAnchorDockOptionsDialog }
{ TAnchorDockOptionsFrame }
procedure TAnchorDockOptionsDialog.FormCreate(Sender: TObject);
procedure TAnchorDockOptionsFrame.HeaderAlignLeftTrackBarChange(Sender: TObject
);
begin
UpdateHeaderAlignLeftLabel;
end;
procedure TAnchorDockOptionsFrame.HeaderAlignTopTrackBarChange(Sender: TObject
);
begin
UpdateHeaderAlignTopLabel;
end;
procedure TAnchorDockOptionsFrame.SplitterWidthTrackBarChange(Sender: TObject);
begin
UpdateSplitterWidthLabel;
end;
procedure TAnchorDockOptionsFrame.OkClick(Sender: TObject);
begin
SaveToMaster;
end;
procedure TAnchorDockOptionsFrame.DragThresholdTrackBarChange(Sender: TObject);
begin
Caption:='General docking options';
UpdateDragThresholdLabel;
DragThresholdTrackBar.Hint:=
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts;
UpdateHeaderAlignTopLabel;
HeaderAlignTopTrackBar.Hint:=
adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop;
UpdateHeaderAlignLeftLabel;
HeaderAlignLeftTrackBar.Hint:=
adrsMoveHeaderToLeftWhenWidthHeight100HeaderAlignLeft;
UpdateSplitterWidthLabel;
SplitterWidthTrackBar.Hint:=adrsSplitterThickness;
ScaleOnResizeCheckBox.Caption:=adrsScaleOnResize;
ScaleOnResizeCheckBox.Hint:=adrsScaleSubSitesWhenASiteIsResized;
ShowHeaderCaptionCheckBox.Caption:='Show header captions';
ShowHeaderCaptionCheckBox.Hint:='Show captions of docked controls in the header';
HideHeaderCaptionForFloatingCheckBox.Caption:='No captions for floating sites';
HideHeaderCaptionForFloatingCheckBox.Hint:='Hide header captions for sites with only one docked control, as that is already shown in the normal window title';
ButtonPanel1.OKButton.ModalResult:=mrNone;
ButtonPanel1.OKButton.OnClick:=@ButtonPanel1Click;
end;
procedure TAnchorDockOptionsDialog.HeaderAlignLeftTrackBarChange(Sender: TObject
);
procedure TAnchorDockOptionsFrame.SetMaster(const AValue: TAnchorDockMaster);
begin
UpdateHeaderAlignLeftLabel;
if FMaster=AValue then exit;
FMaster:=AValue;
if Master<>nil then
LoadFromMaster;
end;
procedure TAnchorDockOptionsDialog.HeaderAlignTopTrackBarChange(Sender: TObject
);
procedure TAnchorDockOptionsFrame.UpdateDragThresholdLabel;
begin
UpdateHeaderAlignTopLabel;
DragThresholdLabel.Caption:=adrsDragThreshold
+' ('+IntToStr(DragThresholdTrackBar.Position)+')';
end;
procedure TAnchorDockOptionsDialog.SplitterWidthTrackBarChange(Sender: TObject);
procedure TAnchorDockOptionsFrame.UpdateHeaderAlignTopLabel;
begin
UpdateSplitterWidthLabel;
HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop
+' ('+IntToStr(HeaderAlignTopTrackBar.Position)+')';
end;
procedure TAnchorDockOptionsDialog.ButtonPanel1Click(Sender: TObject);
procedure TAnchorDockOptionsFrame.UpdateHeaderAlignLeftLabel;
begin
HeaderAlignLeftLabel.Caption:=adrsHeaderAlignLeft
+' ('+IntToStr(HeaderAlignLeftTrackBar.Position)+')';
end;
procedure TAnchorDockOptionsFrame.UpdateSplitterWidthLabel;
begin
SplitterWidthLabel.Caption:=adrsSplitterWidth
+' ('+IntToStr(SplitterWidthTrackBar.Position)+')';
end;
procedure TAnchorDockOptionsFrame.SaveToMaster;
begin
Master.DragTreshold := DragThresholdTrackBar.Position;
Master.HeaderAlignTop := HeaderAlignTopTrackBar.Position;
@ -143,55 +176,41 @@ begin
Master.ScaleOnResize := ScaleOnResizeCheckBox.Checked;
Master.ShowHeaderCaption := ShowHeaderCaptionCheckBox.Checked;
Master.HideHeaderCaptionFloatingControl := HideHeaderCaptionForFloatingCheckBox.Checked;
ModalResult:=mrOk;
end;
procedure TAnchorDockOptionsDialog.DragThresholdTrackBarChange(Sender: TObject);
procedure TAnchorDockOptionsFrame.LoadFromMaster;
begin
DragThresholdTrackBar.Hint:=
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts;
DragThresholdTrackBar.Position:=Master.DragTreshold;
UpdateDragThresholdLabel;
end;
procedure TAnchorDockOptionsDialog.SetMaster(const AValue: TAnchorDockMaster);
begin
if FMaster=AValue then exit;
FMaster:=AValue;
if Master<>nil then begin
DragThresholdTrackBar.Position:=Master.DragTreshold;
UpdateDragThresholdLabel;
HeaderAlignTopTrackBar.Position:=Master.HeaderAlignTop;
UpdateHeaderAlignTopLabel;
HeaderAlignLeftTrackBar.Position:=Master.HeaderAlignLeft;
UpdateHeaderAlignLeftLabel;
SplitterWidthTrackBar.Position:=Master.SplitterWidth;
UpdateSplitterWidthLabel;
ScaleOnResizeCheckBox.Checked:=Master.ScaleOnResize;
ShowHeaderCaptionCheckBox.Checked:=Master.ShowHeaderCaption;
HideHeaderCaptionForFloatingCheckBox.Checked:=Master.HideHeaderCaptionFloatingControl;
end;
end;
HeaderAlignTopTrackBar.Hint:=
adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop;
HeaderAlignTopTrackBar.Position:=Master.HeaderAlignTop;
UpdateHeaderAlignTopLabel;
procedure TAnchorDockOptionsDialog.UpdateDragThresholdLabel;
begin
DragThresholdLabel.Caption:=adrsDragThreshold
+' ('+IntToStr(DragThresholdTrackBar.Position)+')';
end;
HeaderAlignLeftTrackBar.Hint:=
adrsMoveHeaderToLeftWhenWidthHeight100HeaderAlignLeft;
HeaderAlignLeftTrackBar.Position:=Master.HeaderAlignLeft;
UpdateHeaderAlignLeftLabel;
procedure TAnchorDockOptionsDialog.UpdateHeaderAlignTopLabel;
begin
HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop
+' ('+IntToStr(HeaderAlignTopTrackBar.Position)+')';
end;
SplitterWidthTrackBar.Hint:=adrsSplitterThickness;
SplitterWidthTrackBar.Position:=Master.SplitterWidth;
UpdateSplitterWidthLabel;
procedure TAnchorDockOptionsDialog.UpdateHeaderAlignLeftLabel;
begin
HeaderAlignLeftLabel.Caption:=adrsHeaderAlignLeft
+' ('+IntToStr(HeaderAlignLeftTrackBar.Position)+')';
end;
ScaleOnResizeCheckBox.Caption:=adrsScaleOnResize;
ScaleOnResizeCheckBox.Hint:=adrsScaleSubSitesWhenASiteIsResized;
ScaleOnResizeCheckBox.Checked:=Master.ScaleOnResize;
procedure TAnchorDockOptionsDialog.UpdateSplitterWidthLabel;
begin
SplitterWidthLabel.Caption:=adrsSplitterWidth
+' ('+IntToStr(SplitterWidthTrackBar.Position)+')';
ShowHeaderCaptionCheckBox.Caption:=adrsShowHeaderCaptions;
ShowHeaderCaptionCheckBox.Hint:=adrsShowCaptionsOfDockedControlsInTheHeader;
ShowHeaderCaptionCheckBox.Checked:=Master.ShowHeaderCaption;
HideHeaderCaptionForFloatingCheckBox.Caption:=adrsNoCaptionsForFloatingSites;
HideHeaderCaptionForFloatingCheckBox.Hint:=
adrsHideHeaderCaptionsForSitesWithOnlyOneDockedControl;
HideHeaderCaptionForFloatingCheckBox.Checked:=Master.HideHeaderCaptionFloatingControl;
end;
end.

View File

@ -75,6 +75,7 @@ resourcestring
adrsEmptyName = 'Empty name: ';
adrsDuplicateName = 'Duplicate name: ';
adrsDragThreshold = 'Drag threshold';
adrsGeneralDockingOptions = 'General docking options';
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts = 'Amount of pixel the '
+'mouse has to drag before drag starts';
adrsHeaderAlignTop = 'Header align top';
@ -88,6 +89,13 @@ resourcestring
adrsScaleOnResize = 'Scale on resize';
adrsScaleSubSitesWhenASiteIsResized =
'Scale sub sites when a site is resized';
adrsShowHeaderCaptions = 'Show header captions';
adrsShowCaptionsOfDockedControlsInTheHeader = 'Show captions of docked '
+'controls in the header';
adrsNoCaptionsForFloatingSites = 'No captions for floating sites';
adrsHideHeaderCaptionsForSitesWithOnlyOneDockedControl = 'Hide header '
+'captions for sites with only one docked control, as that is already '
+'shown in the normal window title';
implementation

View File

@ -69,6 +69,10 @@ msgstr ""
msgid "Enlarge %s side"
msgstr ""
#: anchordockstr.adrsgeneraldockingoptions
msgid "General docking options"
msgstr ""
#: anchordockstr.adrsheaderalignleft
msgid "Header align left"
msgstr ""
@ -81,6 +85,10 @@ msgstr ""
msgid "Header position"
msgstr ""
#: anchordockstr.adrshideheadercaptionsforsiteswithonlyonedockedcontrol
msgid "Hide header captions for sites with only one docked control, as that is already shown in the normal window title"
msgstr ""
#: anchordockstr.adrsleft
msgid "left"
msgstr ""
@ -125,6 +133,10 @@ msgstr ""
msgid "Move page rightmost"
msgstr ""
#: anchordockstr.adrsnocaptionsforfloatingsites
msgid "No captions for floating sites"
msgstr ""
#: anchordockstr.adrsnochildrenallowedfornodetype
msgid "No children allowed for Node=%s%s%s Type=%s"
msgstr ""
@ -153,6 +165,14 @@ msgstr ""
msgid "Scale sub sites when a site is resized"
msgstr ""
#: anchordockstr.adrsshowcaptionsofdockedcontrolsintheheader
msgid "Show captions of docked controls in the header"
msgstr ""
#: anchordockstr.adrsshowheadercaptions
msgid "Show header captions"
msgstr ""
#: anchordockstr.adrssplitterthickness
msgid "Splitter thickness"
msgstr ""