diff --git a/.gitattributes b/.gitattributes
index 78b1f06b7f..5354743f81 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2749,6 +2749,8 @@ examples/affinetransforms/unit1.pas svneol=native#text/plain
examples/anchordocking/README.txt svneol=native#text/plain
examples/anchordocking/anchordocking.lpk svneol=native#text/plain
examples/anchordocking/anchordocking.pas svneol=native#text/plain
+examples/anchordocking/anchordockoptionsdlg.lfm svneol=native#text/plain
+examples/anchordocking/anchordockoptionsdlg.pas svneol=native#text/plain
examples/anchordocking/anchordockpkg.pas svneol=native#text/plain
examples/anchordocking/anchordockstorage.pas svneol=native#text/plain
examples/anchordocking/anchordockstr.pas svneol=native#text/plain
diff --git a/examples/anchordocking/anchordocking.lpk b/examples/anchordocking/anchordocking.lpk
index c94c1651b4..9a6a59bc83 100644
--- a/examples/anchordocking/anchordocking.lpk
+++ b/examples/anchordocking/anchordocking.lpk
@@ -22,7 +22,7 @@
-
+
@@ -44,6 +44,10 @@
+
+
+
+
diff --git a/examples/anchordocking/anchordockoptionsdlg.lfm b/examples/anchordocking/anchordockoptionsdlg.lfm
new file mode 100644
index 0000000000..8d8801096a
--- /dev/null
+++ b/examples/anchordocking/anchordockoptionsdlg.lfm
@@ -0,0 +1,149 @@
+object AnchorDockOptionsDialog: TAnchorDockOptionsDialog
+ Left = 595
+ Height = 220
+ Top = 319
+ Width = 404
+ Caption = 'AnchorDockOptionsDialog'
+ ClientHeight = 220
+ ClientWidth = 404
+ OnCreate = FormCreate
+ LCLVersion = '0.9.29'
+ object ButtonPanel1: TButtonPanel
+ Left = 6
+ Height = 42
+ Top = 172
+ Width = 392
+ TabOrder = 0
+ ShowButtons = [pbOK, pbCancel]
+ end
+ object DragThresholdLabel: TLabel
+ Left = 10
+ Height = 18
+ Top = 10
+ Width = 131
+ Caption = 'DragThresholdLabel'
+ ParentColor = False
+ end
+ object HeaderAlignTopLabel: TLabel
+ AnchorSideLeft.Control = DragThresholdLabel
+ AnchorSideTop.Control = DragThresholdLabel
+ AnchorSideTop.Side = asrBottom
+ Left = 10
+ Height = 18
+ Top = 38
+ Width = 138
+ BorderSpacing.Top = 10
+ Caption = 'HeaderAlignTopLabel'
+ ParentColor = False
+ end
+ object HeaderAlignLeftLabel: TLabel
+ AnchorSideLeft.Control = DragThresholdLabel
+ AnchorSideTop.Control = HeaderAlignTopLabel
+ AnchorSideTop.Side = asrBottom
+ Left = 10
+ Height = 18
+ Top = 66
+ Width = 141
+ BorderSpacing.Top = 10
+ Caption = 'HeaderAlignLeftLabel'
+ ParentColor = False
+ end
+ object SplitterWidthLabel: TLabel
+ AnchorSideLeft.Control = DragThresholdLabel
+ AnchorSideTop.Control = HeaderAlignLeftLabel
+ AnchorSideTop.Side = asrBottom
+ Left = 10
+ Height = 18
+ Top = 94
+ Width = 121
+ BorderSpacing.Top = 10
+ Caption = 'SplitterWidthLabel'
+ ParentColor = False
+ end
+ object ScaleOnResizeCheckBox: TCheckBox
+ AnchorSideLeft.Control = DragThresholdLabel
+ AnchorSideTop.Control = SplitterWidthLabel
+ AnchorSideTop.Side = asrBottom
+ Left = 10
+ Height = 22
+ Top = 122
+ Width = 188
+ BorderSpacing.Top = 10
+ Caption = 'ScaleOnResizeCheckBox'
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 1
+ end
+ object DragThresholdTrackBar: TTrackBar
+ AnchorSideTop.Control = DragThresholdLabel
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = Owner
+ AnchorSideRight.Side = asrBottom
+ Left = 188
+ Height = 25
+ Top = 7
+ Width = 206
+ Max = 20
+ Position = 0
+ Anchors = [akTop, akRight]
+ BorderSpacing.Right = 10
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 2
+ end
+ object HeaderAlignTopTrackBar: TTrackBar
+ AnchorSideLeft.Control = DragThresholdTrackBar
+ AnchorSideTop.Control = HeaderAlignTopLabel
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = DragThresholdTrackBar
+ AnchorSideRight.Side = asrBottom
+ Left = 188
+ Height = 25
+ Top = 35
+ Width = 206
+ Frequency = 10
+ Max = 150
+ PageSize = 10
+ Position = 0
+ Anchors = [akTop, akLeft, akRight]
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 3
+ end
+ object HeaderAlignLeftTrackBar: TTrackBar
+ AnchorSideLeft.Control = DragThresholdTrackBar
+ AnchorSideTop.Control = HeaderAlignLeftLabel
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = DragThresholdTrackBar
+ AnchorSideRight.Side = asrBottom
+ Left = 188
+ Height = 25
+ Top = 63
+ Width = 206
+ Frequency = 10
+ Max = 200
+ PageSize = 10
+ Position = 0
+ Anchors = [akTop, akLeft, akRight]
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 4
+ end
+ object SplitterWidthTrackBar: TTrackBar
+ AnchorSideLeft.Control = DragThresholdTrackBar
+ AnchorSideTop.Control = SplitterWidthLabel
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = DragThresholdTrackBar
+ AnchorSideRight.Side = asrBottom
+ Left = 188
+ Height = 25
+ Top = 91
+ Width = 206
+ Min = 1
+ Position = 1
+ Anchors = [akTop, akLeft, akRight]
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 5
+ end
+end
diff --git a/examples/anchordocking/anchordockoptionsdlg.pas b/examples/anchordocking/anchordockoptionsdlg.pas
new file mode 100644
index 0000000000..97fb16e578
--- /dev/null
+++ b/examples/anchordocking/anchordockoptionsdlg.pas
@@ -0,0 +1,114 @@
+{ Unit implementing anchor docking.
+
+ Copyright (C) 2010 Mattias Gaertner mattias@freepascal.org
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version with the following modification:
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,and
+ to copy and distribute the resulting executable under terms of your choice,
+ provided that you also meet, for each linked independent module, the terms
+ and conditions of the license of that module. An independent module is a
+ module which is not derived from or based on this library. If you modify
+ this library, you may extend this exception to your version of the library,
+ but you are not obligated to do so. If you do not wish to do so, delete this
+ exception statement from your version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
+ for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+}
+unit AnchorDockOptionsDlg;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel,
+ Spin, StdCtrls, ComCtrls, AnchorDocking, AnchorDockStr;
+
+type
+
+ { TAnchorDockOptionsDialog }
+
+ TAnchorDockOptionsDialog = class(TForm)
+ ButtonPanel1: TButtonPanel;
+ DragThresholdLabel: TLabel;
+ DragThresholdTrackBar: TTrackBar;
+ HeaderAlignLeftLabel: TLabel;
+ HeaderAlignLeftTrackBar: TTrackBar;
+ HeaderAlignTopLabel: TLabel;
+ HeaderAlignTopTrackBar: TTrackBar;
+ ScaleOnResizeCheckBox: TCheckBox;
+ SplitterWidthLabel: TLabel;
+ SplitterWidthTrackBar: TTrackBar;
+ procedure FormCreate(Sender: TObject);
+ private
+ FMaster: TAnchorDockMaster;
+ procedure SetMaster(const AValue: TAnchorDockMaster);
+ public
+ property Master: TAnchorDockMaster read FMaster write SetMaster;
+ end;
+
+function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult;
+
+implementation
+
+function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult;
+var
+ Dlg: TAnchorDockOptionsDialog;
+begin
+ Dlg:=TAnchorDockOptionsDialog.Create(nil);
+ try
+ Dlg.Master:=ADockMaster;
+ Result:=Dlg.ShowModal;
+ finally
+ Dlg.Free;
+ end;
+end;
+
+{$R *.lfm}
+
+{ TAnchorDockOptionsDialog }
+
+procedure TAnchorDockOptionsDialog.FormCreate(Sender: TObject);
+begin
+ DragThresholdLabel.Caption:=adrsDragThreshold;
+ DragThresholdTrackBar.Hint:=adrsAmountOfPixelOfMouseMovementBeforeDragStarts;
+ HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop;
+ HeaderAlignTopTrackBar.Hint:=
+ adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop;
+ HeaderAlignLeftLabel.Caption:=adrsHeaderAlignLeft;
+ HeaderAlignLeftTrackBar.Hint:=
+ adrsMoveHeaderToLeftWhenWidthHeight100HeaderAlignLeft;
+ SplitterWidthLabel.Caption:=adrsSplitterWidth;
+ SplitterWidthTrackBar.Hint:=adrsSplitterThickness;
+ ScaleOnResizeCheckBox.Caption:=adrsScaleOnResize;
+ ScaleOnResizeCheckBox.Hint:=adrsScaleSubSitesWhenASiteIsResized;
+end;
+
+procedure TAnchorDockOptionsDialog.SetMaster(const AValue: TAnchorDockMaster);
+begin
+ if FMaster=AValue then exit;
+ FMaster:=AValue;
+ if Master<>nil then begin
+ DragThresholdTrackBar.Position:=Master.DragTreshold;
+ HeaderAlignTopTrackBar.Position:=Master.HeaderAlignTop;
+ HeaderAlignLeftTrackBar.Position:=Master.HeaderAlignLeft;
+ SplitterWidthTrackBar.Position:=Master.SplitterWidth;
+ ScaleOnResizeCheckBox.Checked:=Master.ScaleOnResize;
+ end;
+end;
+
+end.
+