mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 18:59:21 +02:00
anchordocking: started options dialog
git-svn-id: trunk@26071 -
This commit is contained in:
parent
797f804dc4
commit
923c7a6c81
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -2749,6 +2749,8 @@ examples/affinetransforms/unit1.pas svneol=native#text/plain
|
|||||||
examples/anchordocking/README.txt svneol=native#text/plain
|
examples/anchordocking/README.txt svneol=native#text/plain
|
||||||
examples/anchordocking/anchordocking.lpk svneol=native#text/plain
|
examples/anchordocking/anchordocking.lpk svneol=native#text/plain
|
||||||
examples/anchordocking/anchordocking.pas 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/anchordockpkg.pas svneol=native#text/plain
|
||||||
examples/anchordocking/anchordockstorage.pas svneol=native#text/plain
|
examples/anchordocking/anchordockstorage.pas svneol=native#text/plain
|
||||||
examples/anchordocking/anchordockstr.pas svneol=native#text/plain
|
examples/anchordocking/anchordockstr.pas svneol=native#text/plain
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
<License Value="modified LGPL-2 like LCL
|
<License Value="modified LGPL-2 like LCL
|
||||||
"/>
|
"/>
|
||||||
<Version Minor="5"/>
|
<Version Minor="5"/>
|
||||||
<Files Count="5">
|
<Files Count="6">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="anchordockpkg.pas"/>
|
<Filename Value="anchordockpkg.pas"/>
|
||||||
<Type Value="Main Unit"/>
|
<Type Value="Main Unit"/>
|
||||||
@ -44,6 +44,10 @@
|
|||||||
<Filename Value="README.txt"/>
|
<Filename Value="README.txt"/>
|
||||||
<Type Value="Text"/>
|
<Type Value="Text"/>
|
||||||
</Item5>
|
</Item5>
|
||||||
|
<Item6>
|
||||||
|
<Filename Value="anchordockoptionsdlg.pas"/>
|
||||||
|
<UnitName Value="anchordockoptionsdlg"/>
|
||||||
|
</Item6>
|
||||||
</Files>
|
</Files>
|
||||||
<Type Value="RunAndDesignTime"/>
|
<Type Value="RunAndDesignTime"/>
|
||||||
<RequiredPkgs Count="2">
|
<RequiredPkgs Count="2">
|
||||||
|
149
examples/anchordocking/anchordockoptionsdlg.lfm
Normal file
149
examples/anchordocking/anchordockoptionsdlg.lfm
Normal file
@ -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
|
114
examples/anchordocking/anchordockoptionsdlg.pas
Normal file
114
examples/anchordocking/anchordockoptionsdlg.pas
Normal file
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user