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

View File

@ -39,10 +39,9 @@ uses
type type
{ TAnchorDockOptionsDialog } { TAnchorDockOptionsFrame }
TAnchorDockOptionsDialog = class(TForm) TAnchorDockOptionsFrame = class(TFrame)
ButtonPanel1: TButtonPanel;
DragThresholdLabel: TLabel; DragThresholdLabel: TLabel;
DragThresholdTrackBar: TTrackBar; DragThresholdTrackBar: TTrackBar;
HeaderAlignLeftLabel: TLabel; HeaderAlignLeftLabel: TLabel;
@ -54,9 +53,8 @@ type
ShowHeaderCaptionCheckBox: TCheckBox; ShowHeaderCaptionCheckBox: TCheckBox;
SplitterWidthLabel: TLabel; SplitterWidthLabel: TLabel;
SplitterWidthTrackBar: TTrackBar; SplitterWidthTrackBar: TTrackBar;
procedure ButtonPanel1Click(Sender: TObject); procedure OkClick(Sender: TObject);
procedure DragThresholdTrackBarChange(Sender: TObject); procedure DragThresholdTrackBarChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure HeaderAlignLeftTrackBarChange(Sender: TObject); procedure HeaderAlignLeftTrackBarChange(Sender: TObject);
procedure HeaderAlignTopTrackBarChange(Sender: TObject); procedure HeaderAlignTopTrackBarChange(Sender: TObject);
procedure SplitterWidthTrackBarChange(Sender: TObject); procedure SplitterWidthTrackBarChange(Sender: TObject);
@ -68,6 +66,8 @@ type
procedure UpdateHeaderAlignLeftLabel; procedure UpdateHeaderAlignLeftLabel;
procedure UpdateSplitterWidthLabel; procedure UpdateSplitterWidthLabel;
public public
procedure SaveToMaster;
procedure LoadFromMaster;
property Master: TAnchorDockMaster read FMaster write SetMaster; property Master: TAnchorDockMaster read FMaster write SetMaster;
end; end;
@ -77,11 +77,27 @@ implementation
function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult; function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult;
var var
Dlg: TAnchorDockOptionsDialog; Dlg: TForm;
OptsFrame: TAnchorDockOptionsFrame;
BtnPanel: TButtonPanel;
begin begin
Dlg:=TAnchorDockOptionsDialog.Create(nil); Dlg:=TForm.Create(nil);
try 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; Result:=Dlg.ShowModal;
finally finally
Dlg.Free; Dlg.Free;
@ -90,51 +106,68 @@ end;
{$R *.lfm} {$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 begin
Caption:='General docking options';
UpdateDragThresholdLabel; 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; end;
procedure TAnchorDockOptionsDialog.HeaderAlignLeftTrackBarChange(Sender: TObject procedure TAnchorDockOptionsFrame.SetMaster(const AValue: TAnchorDockMaster);
);
begin begin
UpdateHeaderAlignLeftLabel; if FMaster=AValue then exit;
FMaster:=AValue;
if Master<>nil then
LoadFromMaster;
end; end;
procedure TAnchorDockOptionsDialog.HeaderAlignTopTrackBarChange(Sender: TObject procedure TAnchorDockOptionsFrame.UpdateDragThresholdLabel;
);
begin begin
UpdateHeaderAlignTopLabel; DragThresholdLabel.Caption:=adrsDragThreshold
+' ('+IntToStr(DragThresholdTrackBar.Position)+')';
end; end;
procedure TAnchorDockOptionsDialog.SplitterWidthTrackBarChange(Sender: TObject); procedure TAnchorDockOptionsFrame.UpdateHeaderAlignTopLabel;
begin begin
UpdateSplitterWidthLabel; HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop
+' ('+IntToStr(HeaderAlignTopTrackBar.Position)+')';
end; 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 begin
Master.DragTreshold := DragThresholdTrackBar.Position; Master.DragTreshold := DragThresholdTrackBar.Position;
Master.HeaderAlignTop := HeaderAlignTopTrackBar.Position; Master.HeaderAlignTop := HeaderAlignTopTrackBar.Position;
@ -143,55 +176,41 @@ begin
Master.ScaleOnResize := ScaleOnResizeCheckBox.Checked; Master.ScaleOnResize := ScaleOnResizeCheckBox.Checked;
Master.ShowHeaderCaption := ShowHeaderCaptionCheckBox.Checked; Master.ShowHeaderCaption := ShowHeaderCaptionCheckBox.Checked;
Master.HideHeaderCaptionFloatingControl := HideHeaderCaptionForFloatingCheckBox.Checked; Master.HideHeaderCaptionFloatingControl := HideHeaderCaptionForFloatingCheckBox.Checked;
ModalResult:=mrOk;
end; end;
procedure TAnchorDockOptionsDialog.DragThresholdTrackBarChange(Sender: TObject); procedure TAnchorDockOptionsFrame.LoadFromMaster;
begin begin
DragThresholdTrackBar.Hint:=
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts;
DragThresholdTrackBar.Position:=Master.DragTreshold;
UpdateDragThresholdLabel; UpdateDragThresholdLabel;
end;
procedure TAnchorDockOptionsDialog.SetMaster(const AValue: TAnchorDockMaster); HeaderAlignTopTrackBar.Hint:=
begin adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop;
if FMaster=AValue then exit; HeaderAlignTopTrackBar.Position:=Master.HeaderAlignTop;
FMaster:=AValue; UpdateHeaderAlignTopLabel;
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;
procedure TAnchorDockOptionsDialog.UpdateDragThresholdLabel; HeaderAlignLeftTrackBar.Hint:=
begin adrsMoveHeaderToLeftWhenWidthHeight100HeaderAlignLeft;
DragThresholdLabel.Caption:=adrsDragThreshold HeaderAlignLeftTrackBar.Position:=Master.HeaderAlignLeft;
+' ('+IntToStr(DragThresholdTrackBar.Position)+')'; UpdateHeaderAlignLeftLabel;
end;
procedure TAnchorDockOptionsDialog.UpdateHeaderAlignTopLabel; SplitterWidthTrackBar.Hint:=adrsSplitterThickness;
begin SplitterWidthTrackBar.Position:=Master.SplitterWidth;
HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop UpdateSplitterWidthLabel;
+' ('+IntToStr(HeaderAlignTopTrackBar.Position)+')';
end;
procedure TAnchorDockOptionsDialog.UpdateHeaderAlignLeftLabel; ScaleOnResizeCheckBox.Caption:=adrsScaleOnResize;
begin ScaleOnResizeCheckBox.Hint:=adrsScaleSubSitesWhenASiteIsResized;
HeaderAlignLeftLabel.Caption:=adrsHeaderAlignLeft ScaleOnResizeCheckBox.Checked:=Master.ScaleOnResize;
+' ('+IntToStr(HeaderAlignLeftTrackBar.Position)+')';
end;
procedure TAnchorDockOptionsDialog.UpdateSplitterWidthLabel; ShowHeaderCaptionCheckBox.Caption:=adrsShowHeaderCaptions;
begin ShowHeaderCaptionCheckBox.Hint:=adrsShowCaptionsOfDockedControlsInTheHeader;
SplitterWidthLabel.Caption:=adrsSplitterWidth ShowHeaderCaptionCheckBox.Checked:=Master.ShowHeaderCaption;
+' ('+IntToStr(SplitterWidthTrackBar.Position)+')';
HideHeaderCaptionForFloatingCheckBox.Caption:=adrsNoCaptionsForFloatingSites;
HideHeaderCaptionForFloatingCheckBox.Hint:=
adrsHideHeaderCaptionsForSitesWithOnlyOneDockedControl;
HideHeaderCaptionForFloatingCheckBox.Checked:=Master.HideHeaderCaptionFloatingControl;
end; end;
end. end.

View File

@ -75,6 +75,7 @@ resourcestring
adrsEmptyName = 'Empty name: '; adrsEmptyName = 'Empty name: ';
adrsDuplicateName = 'Duplicate name: '; adrsDuplicateName = 'Duplicate name: ';
adrsDragThreshold = 'Drag threshold'; adrsDragThreshold = 'Drag threshold';
adrsGeneralDockingOptions = 'General docking options';
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts = 'Amount of pixel the ' adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts = 'Amount of pixel the '
+'mouse has to drag before drag starts'; +'mouse has to drag before drag starts';
adrsHeaderAlignTop = 'Header align top'; adrsHeaderAlignTop = 'Header align top';
@ -88,6 +89,13 @@ resourcestring
adrsScaleOnResize = 'Scale on resize'; adrsScaleOnResize = 'Scale on resize';
adrsScaleSubSitesWhenASiteIsResized = adrsScaleSubSitesWhenASiteIsResized =
'Scale sub sites when a site is resized'; '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 implementation

View File

@ -69,6 +69,10 @@ msgstr ""
msgid "Enlarge %s side" msgid "Enlarge %s side"
msgstr "" msgstr ""
#: anchordockstr.adrsgeneraldockingoptions
msgid "General docking options"
msgstr ""
#: anchordockstr.adrsheaderalignleft #: anchordockstr.adrsheaderalignleft
msgid "Header align left" msgid "Header align left"
msgstr "" msgstr ""
@ -81,6 +85,10 @@ msgstr ""
msgid "Header position" msgid "Header position"
msgstr "" 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 #: anchordockstr.adrsleft
msgid "left" msgid "left"
msgstr "" msgstr ""
@ -125,6 +133,10 @@ msgstr ""
msgid "Move page rightmost" msgid "Move page rightmost"
msgstr "" msgstr ""
#: anchordockstr.adrsnocaptionsforfloatingsites
msgid "No captions for floating sites"
msgstr ""
#: anchordockstr.adrsnochildrenallowedfornodetype #: anchordockstr.adrsnochildrenallowedfornodetype
msgid "No children allowed for Node=%s%s%s Type=%s" msgid "No children allowed for Node=%s%s%s Type=%s"
msgstr "" msgstr ""
@ -153,6 +165,14 @@ msgstr ""
msgid "Scale sub sites when a site is resized" msgid "Scale sub sites when a site is resized"
msgstr "" msgstr ""
#: anchordockstr.adrsshowcaptionsofdockedcontrolsintheheader
msgid "Show captions of docked controls in the header"
msgstr ""
#: anchordockstr.adrsshowheadercaptions
msgid "Show header captions"
msgstr ""
#: anchordockstr.adrssplitterthickness #: anchordockstr.adrssplitterthickness
msgid "Splitter thickness" msgid "Splitter thickness"
msgstr "" msgstr ""