mirror of https://gitlab.com/basile.b/dexed.git
docking, temp fix until next Laz rlz
This commit is contained in:
parent
241732d8b5
commit
aa36408c0a
|
@ -0,0 +1,8 @@
|
|||
The package anchordocking.lpk implements a docking manager for LCL applications.
|
||||
It handles drag and docking forms together via splitters and pages
|
||||
(like a TPageControl).
|
||||
It can save and restore layouts.
|
||||
|
||||
More information can be found at
|
||||
http://wiki.lazarus.freepascal.org/Anchor_Docking
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,248 @@
|
|||
object AnchorDockOptionsFrame: TAnchorDockOptionsFrame
|
||||
Left = 0
|
||||
Height = 482
|
||||
Top = 0
|
||||
Width = 416
|
||||
ClientHeight = 482
|
||||
ClientWidth = 416
|
||||
OnClick = FrameClick
|
||||
TabOrder = 0
|
||||
DesignLeft = 513
|
||||
DesignTop = 189
|
||||
object DragThresholdLabel: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = HeaderStyleComboBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 106
|
||||
BorderSpacing.Left = 10
|
||||
Caption = 'DragThresholdLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object HeaderAlignTopLabel: TLabel
|
||||
AnchorSideLeft.Control = DragThresholdLabel
|
||||
AnchorSideTop.Control = FilledHeaders
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 15
|
||||
Top = 295
|
||||
Width = 114
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'HeaderAlignTopLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object HeaderAlignLeftLabel: TLabel
|
||||
AnchorSideLeft.Control = DragThresholdLabel
|
||||
AnchorSideTop.Control = HeaderAlignTopTrackBar
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 15
|
||||
Top = 367
|
||||
Width = 114
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'HeaderAlignLeftLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object SplitterWidthLabel: TLabel
|
||||
AnchorSideLeft.Control = DragThresholdLabel
|
||||
AnchorSideTop.Control = DragThresholdTrackBar
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 15
|
||||
Top = 106
|
||||
Width = 97
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'SplitterWidthLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object ScaleOnResizeCheckBox: TCheckBox
|
||||
AnchorSideLeft.Control = DragThresholdLabel
|
||||
AnchorSideTop.Control = SplitterWidthTrackBar
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 19
|
||||
Top = 171
|
||||
Width = 147
|
||||
BorderSpacing.Top = 4
|
||||
Caption = 'ScaleOnResizeCheckBox'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object DragThresholdTrackBar: TTrackBar
|
||||
AnchorSideLeft.Control = DragThresholdLabel
|
||||
AnchorSideTop.Control = DragThresholdLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 46
|
||||
Top = 50
|
||||
Width = 396
|
||||
Max = 20
|
||||
OnChange = DragThresholdTrackBarChange
|
||||
Position = 0
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 10
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object HeaderAlignTopTrackBar: TTrackBar
|
||||
AnchorSideLeft.Control = DragThresholdTrackBar
|
||||
AnchorSideTop.Control = HeaderAlignTopLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = DragThresholdTrackBar
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 47
|
||||
Top = 310
|
||||
Width = 396
|
||||
Frequency = 10
|
||||
Max = 150
|
||||
OnChange = HeaderAlignTopTrackBarChange
|
||||
PageSize = 10
|
||||
Position = 0
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object HeaderAlignLeftTrackBar: TTrackBar
|
||||
AnchorSideLeft.Control = DragThresholdTrackBar
|
||||
AnchorSideTop.Control = HeaderAlignLeftLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = DragThresholdTrackBar
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 47
|
||||
Top = 382
|
||||
Width = 396
|
||||
Frequency = 10
|
||||
Max = 200
|
||||
OnChange = HeaderAlignLeftTrackBarChange
|
||||
PageSize = 10
|
||||
Position = 0
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object SplitterWidthTrackBar: TTrackBar
|
||||
AnchorSideLeft.Control = DragThresholdTrackBar
|
||||
AnchorSideTop.Control = SplitterWidthLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = DragThresholdTrackBar
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 46
|
||||
Top = 121
|
||||
Width = 396
|
||||
Min = 1
|
||||
OnChange = SplitterWidthTrackBarChange
|
||||
Position = 1
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
end
|
||||
object ShowHeaderCaptionCheckBox: TCheckBox
|
||||
AnchorSideLeft.Control = ScaleOnResizeCheckBox
|
||||
AnchorSideTop.Control = ShowHeaderCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 25
|
||||
Height = 19
|
||||
Top = 209
|
||||
Width = 181
|
||||
BorderSpacing.Left = 15
|
||||
Caption = 'ShowHeaderCaptionCheckBox'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 6
|
||||
end
|
||||
object HideHeaderCaptionForFloatingCheckBox: TCheckBox
|
||||
AnchorSideLeft.Control = ShowHeaderCaptionCheckBox
|
||||
AnchorSideTop.Control = ShowHeaderCaptionCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 25
|
||||
Height = 19
|
||||
Top = 228
|
||||
Width = 237
|
||||
Caption = 'HideHeaderCaptionForFloatingCheckBox'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 5
|
||||
end
|
||||
object ShowHeaderCheckBox: TCheckBox
|
||||
AnchorSideLeft.Control = ScaleOnResizeCheckBox
|
||||
AnchorSideTop.Control = ScaleOnResizeCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 19
|
||||
Top = 190
|
||||
Width = 139
|
||||
Caption = 'ShowHeaderCheckBox'
|
||||
OnChange = ShowHeaderCheckBoxChange
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 7
|
||||
end
|
||||
object HeaderStyleComboBox: TComboBox
|
||||
AnchorSideLeft.Control = HeaderStyleLabel
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 107
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 299
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 4
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 15
|
||||
OnDrawItem = HeaderStyleComboBoxDrawItem
|
||||
Style = csDropDownList
|
||||
TabOrder = 8
|
||||
end
|
||||
object HeaderStyleLabel: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = HeaderStyleComboBox
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 10
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 91
|
||||
BorderSpacing.Left = 10
|
||||
Caption = 'HeaderStyleLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object FlattenHeaders: TCheckBox
|
||||
AnchorSideLeft.Control = HideHeaderCaptionForFloatingCheckBox
|
||||
AnchorSideTop.Control = HideHeaderCaptionForFloatingCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 25
|
||||
Height = 19
|
||||
Top = 247
|
||||
Width = 99
|
||||
Caption = 'FlattenHeaders'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 9
|
||||
end
|
||||
object FilledHeaders: TCheckBox
|
||||
AnchorSideLeft.Control = FlattenHeaders
|
||||
AnchorSideTop.Control = FlattenHeaders
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 25
|
||||
Height = 19
|
||||
Top = 266
|
||||
Width = 91
|
||||
Caption = 'FilledHeaders'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 10
|
||||
end
|
||||
end
|
|
@ -0,0 +1,369 @@
|
|||
{ 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 xAnchorDockOptionsDlg;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, types,
|
||||
Forms, Controls, ButtonPanel, StdCtrls, ComCtrls,
|
||||
xAnchorDocking, xAnchorDockStr;
|
||||
|
||||
type
|
||||
TAnchorDockOptionsFlag = (
|
||||
adofShow_ShowHeader
|
||||
);
|
||||
TAnchorDockOptionsFlags = set of TAnchorDockOptionsFlag;
|
||||
|
||||
{ TAnchorDockOptionsFrame }
|
||||
|
||||
TAnchorDockOptionsFrame = class(TFrame)
|
||||
FlattenHeaders: TCheckBox;
|
||||
FilledHeaders: TCheckBox;
|
||||
DragThresholdLabel: TLabel;
|
||||
DragThresholdTrackBar: TTrackBar;
|
||||
HeaderAlignLeftLabel: TLabel;
|
||||
HeaderAlignLeftTrackBar: TTrackBar;
|
||||
HeaderAlignTopLabel: TLabel;
|
||||
HeaderAlignTopTrackBar: TTrackBar;
|
||||
HeaderStyleComboBox: TComboBox;
|
||||
HeaderStyleLabel: TLabel;
|
||||
HideHeaderCaptionForFloatingCheckBox: TCheckBox;
|
||||
ScaleOnResizeCheckBox: TCheckBox;
|
||||
ShowHeaderCaptionCheckBox: TCheckBox;
|
||||
ShowHeaderCheckBox: TCheckBox;
|
||||
SplitterWidthLabel: TLabel;
|
||||
SplitterWidthTrackBar: TTrackBar;
|
||||
procedure FrameClick(Sender: TObject);
|
||||
procedure HeaderStyleComboBoxDrawItem(Control: TWinControl; Index: Integer;
|
||||
ARect: TRect; {%H-}State: TOwnerDrawState);
|
||||
procedure OkClick(Sender: TObject);
|
||||
procedure DragThresholdTrackBarChange(Sender: TObject);
|
||||
procedure HeaderAlignLeftTrackBarChange(Sender: TObject);
|
||||
procedure HeaderAlignTopTrackBarChange(Sender: TObject);
|
||||
procedure ShowHeaderCheckBoxChange(Sender: TObject);
|
||||
procedure SplitterWidthTrackBarChange(Sender: TObject);
|
||||
private
|
||||
FFlags: TAnchorDockOptionsFlags;
|
||||
FMaster: TAnchorDockMaster;
|
||||
FSettings: TAnchorDockSettings;
|
||||
procedure SetFlags(AValue: TAnchorDockOptionsFlags);
|
||||
procedure SetMaster(const AValue: TAnchorDockMaster);
|
||||
procedure SetSettings(AValue: TAnchorDockSettings);
|
||||
procedure UpdateDragThresholdLabel;
|
||||
procedure UpdateHeaderAlignTopLabel;
|
||||
procedure UpdateHeaderAlignLeftLabel;
|
||||
procedure UpdateSplitterWidthLabel;
|
||||
procedure UpdateHeaderOptions;
|
||||
procedure ApplyFlags;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
procedure SaveToMaster;
|
||||
procedure LoadFromMaster;
|
||||
procedure SaveToSettings(TheSettings: TAnchorDockSettings);
|
||||
procedure LoadFromSettings(TheSettings: TAnchorDockSettings);
|
||||
property Master: TAnchorDockMaster read FMaster write SetMaster;
|
||||
property Settings: TAnchorDockSettings read FSettings write SetSettings;
|
||||
property Flags: TAnchorDockOptionsFlags read FFlags write SetFlags;
|
||||
end;
|
||||
|
||||
var
|
||||
DefaultAnchorDockOptionFlags: TAnchorDockOptionsFlags = [];
|
||||
|
||||
function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult;
|
||||
|
||||
implementation
|
||||
|
||||
function ShowAnchorDockOptions(ADockMaster: TAnchorDockMaster): TModalResult;
|
||||
var
|
||||
Dlg: TForm;
|
||||
OptsFrame: TAnchorDockOptionsFrame;
|
||||
BtnPanel: TButtonPanel;
|
||||
begin
|
||||
Dlg:=TForm.Create(nil);
|
||||
try
|
||||
Dlg.DisableAutoSizing{$IFDEF DebugDisableAutoSizing}('ShowAnchorDockOptions'){$ENDIF};
|
||||
try
|
||||
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;
|
||||
finally
|
||||
Dlg.EnableAutoSizing{$IFDEF DebugDisableAutoSizing}('ShowAnchorDockOptions'){$ENDIF};
|
||||
end;
|
||||
Result:=Dlg.ShowModal;
|
||||
finally
|
||||
Dlg.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
{ TAnchorDockOptionsFrame }
|
||||
|
||||
procedure TAnchorDockOptionsFrame.HeaderAlignLeftTrackBarChange(Sender: TObject);
|
||||
begin
|
||||
UpdateHeaderAlignLeftLabel;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.HeaderAlignTopTrackBarChange(Sender: TObject);
|
||||
begin
|
||||
UpdateHeaderAlignTopLabel;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.ShowHeaderCheckBoxChange(Sender: TObject);
|
||||
begin
|
||||
UpdateHeaderOptions;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.SplitterWidthTrackBarChange(Sender: TObject);
|
||||
begin
|
||||
UpdateSplitterWidthLabel;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.OkClick(Sender: TObject);
|
||||
begin
|
||||
if Settings<>nil then
|
||||
SaveToSettings(Settings);
|
||||
if Master<>nil then
|
||||
SaveToMaster;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.HeaderStyleComboBoxDrawItem(
|
||||
Control: TWinControl; Index: Integer; ARect: TRect; State: TOwnerDrawState);
|
||||
begin
|
||||
DrawADHeader(TComboBox(Control).Canvas,TADHeaderStyle(Index),ARect,true);
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.FrameClick(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.DragThresholdTrackBarChange(Sender: TObject);
|
||||
begin
|
||||
UpdateDragThresholdLabel;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.SetMaster(const AValue: TAnchorDockMaster);
|
||||
begin
|
||||
if FMaster=AValue then exit;
|
||||
FMaster:=AValue;
|
||||
if Master<>nil then
|
||||
LoadFromMaster;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.SetFlags(AValue: TAnchorDockOptionsFlags);
|
||||
begin
|
||||
if FFlags=AValue then Exit;
|
||||
FFlags:=AValue;
|
||||
ApplyFlags;
|
||||
UpdateHeaderOptions;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.SetSettings(AValue: TAnchorDockSettings);
|
||||
begin
|
||||
if FSettings=AValue then Exit;
|
||||
FSettings:=AValue;
|
||||
if Settings<>nil then
|
||||
LoadFromSettings(Settings);
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.UpdateDragThresholdLabel;
|
||||
begin
|
||||
DragThresholdLabel.Caption:=adrsDragThreshold
|
||||
+' ('+IntToStr(DragThresholdTrackBar.Position)+')';
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.UpdateHeaderAlignTopLabel;
|
||||
begin
|
||||
HeaderAlignTopLabel.Caption:=adrsHeaderAlignTop
|
||||
+' ('+IntToStr(HeaderAlignTopTrackBar.Position)+')';
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.UpdateHeaderAlignLeftLabel;
|
||||
begin
|
||||
HeaderAlignLeftLabel.Caption:=adrsHeaderAlignLeft
|
||||
+' ('+IntToStr(HeaderAlignLeftTrackBar.Position)+')';
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.UpdateSplitterWidthLabel;
|
||||
begin
|
||||
SplitterWidthLabel.Caption:=adrsSplitterWidth
|
||||
+' ('+IntToStr(SplitterWidthTrackBar.Position)+')';
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.UpdateHeaderOptions;
|
||||
var
|
||||
HasHeaders: Boolean;
|
||||
begin
|
||||
HasHeaders:=ShowHeaderCheckBox.Checked;
|
||||
ShowHeaderCaptionCheckBox.Enabled:=HasHeaders;
|
||||
HideHeaderCaptionForFloatingCheckBox.Enabled:=HasHeaders;
|
||||
FlattenHeaders.Enabled:=HasHeaders;
|
||||
FilledHeaders.Enabled:=HasHeaders;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.ApplyFlags;
|
||||
begin
|
||||
ShowHeaderCheckBox.Visible:=adofShow_ShowHeader in Flags;
|
||||
if ShowHeaderCheckBox.Visible then
|
||||
ShowHeaderCaptionCheckBox.BorderSpacing.Left:=15
|
||||
else
|
||||
ShowHeaderCaptionCheckBox.BorderSpacing.Left:=0;
|
||||
end;
|
||||
|
||||
constructor TAnchorDockOptionsFrame.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
FFlags:=DefaultAnchorDockOptionFlags;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.SaveToMaster;
|
||||
var
|
||||
CurSettings: TAnchorDockSettings;
|
||||
begin
|
||||
CurSettings:=TAnchorDockSettings.Create;
|
||||
try
|
||||
Master.SaveSettings(CurSettings);
|
||||
SaveToSettings(CurSettings);
|
||||
Master.LoadSettings(CurSettings);
|
||||
finally
|
||||
CurSettings.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.LoadFromMaster;
|
||||
var
|
||||
CurSettings: TAnchorDockSettings;
|
||||
begin
|
||||
CurSettings:=TAnchorDockSettings.Create;
|
||||
try
|
||||
Master.SaveSettings(CurSettings);
|
||||
LoadFromSettings(CurSettings);
|
||||
finally
|
||||
CurSettings.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.SaveToSettings(
|
||||
TheSettings: TAnchorDockSettings);
|
||||
begin
|
||||
TheSettings.HeaderStyle:=TADHeaderStyle(HeaderStyleComboBox.ItemIndex);
|
||||
TheSettings.DragTreshold:=DragThresholdTrackBar.Position;
|
||||
TheSettings.HeaderAlignTop:=HeaderAlignTopTrackBar.Position;
|
||||
TheSettings.HeaderAlignLeft:=HeaderAlignLeftTrackBar.Position;
|
||||
TheSettings.SplitterWidth:=SplitterWidthTrackBar.Position;
|
||||
TheSettings.ScaleOnResize:=ScaleOnResizeCheckBox.Checked;
|
||||
TheSettings.ShowHeader:=ShowHeaderCheckBox.Checked;
|
||||
TheSettings.ShowHeaderCaption:=ShowHeaderCaptionCheckBox.Checked;
|
||||
TheSettings.HideHeaderCaptionFloatingControl:=HideHeaderCaptionForFloatingCheckBox.Checked;
|
||||
TheSettings.HeaderFlatten:=FlattenHeaders.Checked;
|
||||
TheSettings.HeaderFilled:=FilledHeaders.Checked;
|
||||
end;
|
||||
|
||||
procedure TAnchorDockOptionsFrame.LoadFromSettings(
|
||||
TheSettings: TAnchorDockSettings);
|
||||
var
|
||||
hs: TADHeaderStyle;
|
||||
sl: TStringList;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
try
|
||||
for hs:=Low(TADHeaderStyle) to High(TADHeaderStyle) do
|
||||
sl.Add(ADHeaderStyleNames[hs]);
|
||||
HeaderStyleComboBox.Items.Assign(sl);
|
||||
finally
|
||||
sl.Free;
|
||||
end;
|
||||
HeaderStyleLabel.Caption:=adrsHeaderStyle;
|
||||
HeaderStyleComboBox.ItemIndex:=ord(TheSettings.HeaderStyle);
|
||||
|
||||
DragThresholdTrackBar.Hint:=
|
||||
adrsAmountOfPixelTheMouseHasToDragBeforeDragStarts;
|
||||
DragThresholdTrackBar.Position:=TheSettings.DragTreshold;
|
||||
UpdateDragThresholdLabel;
|
||||
|
||||
HeaderAlignTopTrackBar.Hint:=
|
||||
adrsMoveHeaderToTopWhenWidthHeight100HeaderAlignTop;
|
||||
HeaderAlignTopTrackBar.Position:=TheSettings.HeaderAlignTop;
|
||||
UpdateHeaderAlignTopLabel;
|
||||
|
||||
HeaderAlignLeftTrackBar.Hint:=
|
||||
adrsMoveHeaderToLeftWhenWidthHeight100HeaderAlignLeft;
|
||||
HeaderAlignLeftTrackBar.Position:=TheSettings.HeaderAlignLeft;
|
||||
UpdateHeaderAlignLeftLabel;
|
||||
|
||||
SplitterWidthTrackBar.Hint:=adrsSplitterThickness;
|
||||
SplitterWidthTrackBar.Position:=TheSettings.SplitterWidth;
|
||||
UpdateSplitterWidthLabel;
|
||||
|
||||
ScaleOnResizeCheckBox.Caption:=adrsScaleOnResize;
|
||||
ScaleOnResizeCheckBox.Hint:=adrsScaleSubSitesWhenASiteIsResized;
|
||||
ScaleOnResizeCheckBox.Checked:=TheSettings.ScaleOnResize;
|
||||
|
||||
ShowHeaderCheckBox.Caption:=adrsShowHeaders;
|
||||
ShowHeaderCheckBox.Hint:=
|
||||
adrsEachDockedWindowHasAHeaderThatAllowsDraggingHasACo;
|
||||
ShowHeaderCheckBox.Checked:=TheSettings.ShowHeader;
|
||||
UpdateHeaderOptions;
|
||||
|
||||
ShowHeaderCaptionCheckBox.Caption:=adrsShowHeaderCaptions;
|
||||
ShowHeaderCaptionCheckBox.Hint:=adrsShowCaptionsOfDockedControlsInTheHeader;
|
||||
ShowHeaderCaptionCheckBox.Checked:=TheSettings.ShowHeaderCaption;
|
||||
|
||||
HideHeaderCaptionForFloatingCheckBox.Caption:=adrsNoCaptionsForFloatingSites;
|
||||
HideHeaderCaptionForFloatingCheckBox.Hint:=
|
||||
adrsHideHeaderCaptionsForSitesWithOnlyOneDockedControl;
|
||||
HideHeaderCaptionForFloatingCheckBox.Checked:=
|
||||
TheSettings.HideHeaderCaptionFloatingControl;
|
||||
|
||||
FlattenHeaders.Checked:=TheSettings.HeaderFlatten;
|
||||
FlattenHeaders.Caption:=adrsFlattenHeaders;
|
||||
FlattenHeaders.Hint:=adrsFlattenHeadersHint;
|
||||
|
||||
FilledHeaders.Checked:=TheSettings.HeaderFilled;
|
||||
FilledHeaders.Caption:=adrsFilledHeaders;
|
||||
FilledHeaders.Hint:=adrsFilledHeadersHint;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,128 @@
|
|||
{ 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 xAnchorDockStr;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
resourcestring
|
||||
adrsClose = 'Close';
|
||||
adrsQuit = 'Quit %s';
|
||||
adrsTabPosition = 'Tab position';
|
||||
adrsMovePageRight = 'Move page right';
|
||||
adrsMovePageRightmost = 'Move page rightmost';
|
||||
adrsUndock = 'Undock';
|
||||
adrsHeaderPosition = 'Header position';
|
||||
adrsEnlargeSide = 'Enlarge %s side';
|
||||
adrsMerge = 'Merge';
|
||||
adrsEnlarge = 'Enlarge';
|
||||
adrsAutomatically = 'Automatically';
|
||||
adrsLeft = 'left';
|
||||
adrsTop = 'top';
|
||||
adrsRight = 'right';
|
||||
adrsBottom = 'bottom';
|
||||
adrsLocked = 'Locked';
|
||||
adrsDockingOptions = 'Docking options';
|
||||
adrsMovePageLeft = 'Move page left';
|
||||
adrsMovePageLeftmost = 'Move page leftmost';
|
||||
adrsRequestedButCreated = '%s requested, but %s created';
|
||||
adrsDragAndDockC = 'Use the mouse to drag and dock window "%s"';
|
||||
adrsMissingControlName = 'missing control name';
|
||||
adrsModalFormsCanNotBeMadeDockable = 'modal forms can not be made dockable';
|
||||
adrsControlIsAlreadyADocksite = 'control is already a docksite';
|
||||
adrsNotSupportedHasParent = 'Not supported: %s has parent %s';
|
||||
adrsAnchorNotFoundNodeAnchors = 'Anchor not found: Node="%s" Anchors[%s]="%s"';
|
||||
adrsAnchorIsNotSplitterNodeAnchors = 'Anchor is not splitter: Node="%s" Anchors[%s]="%s"';
|
||||
adrsAFreeSideOfASplitterMustNotBeAnchoredNodeTypeAncho = 'A free side of a '
|
||||
+'splitter must not be anchored: Node="%s" Type=%s Anchors[%s]="%s"';
|
||||
adrsAPageMustNotBeAnchoredNodeParentParentTypeAnchors = 'A page must not be '
|
||||
+'anchored: Node="%s" Parent=%s ParentType=%s Anchors[%s]="%s"';
|
||||
adrsAnchorToWrongSideOfSplitterNodeAnchors = 'Anchor to wrong side of '
|
||||
+'splitter: Node="%s" Anchors[%s]="%s"';
|
||||
adrsNoChildrenAllowedForNodeType = 'No children allowed for Node="%s" Type=%s';
|
||||
adrsCustomDockSiteCanHaveOnlyOneSite = 'Custom dock site "%s" can have only one site.';
|
||||
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';
|
||||
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';
|
||||
adrsShowHeaderCaptions = 'Show header captions';
|
||||
adrsShowCaptionsOfDockedControlsInTheHeader = 'Show captions of docked '
|
||||
+'controls in the header';
|
||||
adrsShowHeaders = 'Show headers';
|
||||
adrsEachDockedWindowHasAHeaderThatAllowsDraggingHasACo = 'Each docked window'
|
||||
+' has a header that allows dragging, has a context menu with extra layout'
|
||||
+' functions and shows the caption of the docked window';
|
||||
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';
|
||||
adrsErrorWritingWindowLayoutToFile = 'Error writing window layout to file "%s"%s%s';
|
||||
adrsToUseAnchordockingYouMustFirstUninstall = 'To use anchordocking you '
|
||||
+'must first uninstall %s';
|
||||
adrsThereIsAnotherDockMasterInstalledOnlyOneDockingPac = 'There is another '
|
||||
+'dock master installed. Only one docking package can be installed at a '
|
||||
+'time. Please uninstall the other dock master %s and restart the IDE';
|
||||
adrsLoadWindowLayoutFromFileXml = 'Load window layout from file (*.xml)';
|
||||
adrsSaveWindowLayoutAsDefault = 'Save window layout as default';
|
||||
adrsSaveWindowLayoutToFile = 'Save window layout to file ...';
|
||||
adrsLoadWindowLayoutFromFile = 'Load window layout from file ...';
|
||||
adrsRestoreDefaultLayout = 'Restore default layout';
|
||||
adrsErrorLoadingWindowLayoutFromFile = 'Error loading window layout from '
|
||||
+'file "%s"%s%s';
|
||||
adrsError = 'Error';
|
||||
adrsSaveWindowLayoutToFileXml = 'Save window layout to file (*.xml)';
|
||||
adrsAllFiles = 'All files';
|
||||
adrsAnchorDockingLayout = 'Anchor Docking Layout';
|
||||
adrsDockingAnchordocking = 'Docking / Anchordocking';
|
||||
adrsHeaderStyle = 'Header Style:';
|
||||
|
||||
adrsFlattenHeaders = 'Flatten headers';
|
||||
adrsFlattenHeadersHint = 'Flatten headers of docked controls';
|
||||
adrsFilledHeaders = 'Fill headers';
|
||||
adrsFilledHeadersHint = 'Fill headers of docked controls';
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value="..\src;..\etc\fcl-json\src"/>
|
||||
<OtherUnitFiles Value="..\src;..\etc\fcl-json\src;..\etc\anchordocking"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
|
@ -73,7 +73,7 @@
|
|||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value="..\src;..\etc\fcl-json\src"/>
|
||||
<OtherUnitFiles Value="..\src;..\etc\fcl-json\src;..\etc\anchordocking"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
|
@ -117,25 +117,22 @@
|
|||
<FormatVersion Value="1"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="6">
|
||||
<RequiredPackages Count="5">
|
||||
<Item1>
|
||||
<PackageName Value="AnchorDocking"/>
|
||||
<PackageName Value="FCL"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="FCL"/>
|
||||
<PackageName Value="RunTimeTypeInfoControls"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="RunTimeTypeInfoControls"/>
|
||||
<PackageName Value="SynEdit"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<PackageName Value="SynEdit"/>
|
||||
<PackageName Value="LazControls"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<PackageName Value="LazControls"/>
|
||||
</Item5>
|
||||
<Item6>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item6>
|
||||
</Item5>
|
||||
</RequiredPackages>
|
||||
<Units Count="46">
|
||||
<Unit0>
|
||||
|
@ -390,7 +387,7 @@
|
|||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value="..\src;..\etc\fcl-json\src"/>
|
||||
<OtherUnitFiles Value="..\src;..\etc\fcl-json\src;..\etc\anchordocking"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
|
|
|
@ -5,8 +5,8 @@ unit ce_dockoptions;
|
|||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, AnchorDocking, AnchorDockOptionsDlg, XMLPropStorage,
|
||||
AnchorDockStr, Forms, Controls, ce_observer, ce_interfaces;
|
||||
Classes, SysUtils, xAnchorDocking, xAnchorDockOptionsDlg, XMLPropStorage,
|
||||
xAnchorDockStr, Forms, Controls, ce_observer, ce_interfaces;
|
||||
|
||||
type
|
||||
|
||||
|
@ -39,7 +39,7 @@ constructor TDockOptionsEditor.Create(TheOwner: TComponent);
|
|||
begin
|
||||
inherited;
|
||||
fBackup := TXMLConfigStorage.Create('', False);
|
||||
Master := AnchorDocking.DockMaster;
|
||||
Master := xAnchorDocking.DockMaster;
|
||||
//
|
||||
HeaderAlignLeftTrackBar.OnChange := @doChanged;
|
||||
HeaderAlignTopTrackBar.OnChange := @doChanged;
|
||||
|
|
|
@ -6,7 +6,7 @@ interface
|
|||
|
||||
uses
|
||||
Classes, SysUtils, LazFileUtils, SynEditKeyCmds, SynHighlighterLFM, Forms, StdCtrls,
|
||||
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics, strutils,
|
||||
xAnchorDocking, xAnchorDockStorage, xAnchorDockOptionsDlg, Controls, Graphics, strutils,
|
||||
Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, SynExportHTML,
|
||||
ce_common, ce_dmdwrap, ce_nativeproject, ce_dcd, ce_synmemo, ce_writableComponent,
|
||||
ce_widget, ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf,
|
||||
|
@ -1172,8 +1172,8 @@ begin
|
|||
LoadLastDocsAndProj;
|
||||
|
||||
// http://bugs.freepascal.org/view.php?id=29475
|
||||
// TODO-cgonnawork: activate this when Laz 1.6 released.
|
||||
// DockMaster.ResetSplitter;
|
||||
// TODO-cgonnawork: when Laz 1.6 is rlzd, remove etc/anchordocking and use Laz package
|
||||
DockMaster.ResetSplitters;
|
||||
|
||||
fFirstShown := true;
|
||||
end;
|
||||
|
|
|
@ -6,7 +6,7 @@ interface
|
|||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
|
||||
lcltype, ce_widget, ActnList, Menus, clipbrd, AnchorDocking, TreeFilterEdit,
|
||||
lcltype, ce_widget, ActnList, Menus, clipbrd, xAnchorDocking, TreeFilterEdit,
|
||||
Buttons, math, process, ce_writableComponent, ce_common, ce_synmemo, GraphType,
|
||||
ce_dlangutils, ce_interfaces, ce_observer, ce_symstring, ce_processes, ce_sharedres, EditBtn;
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ object CEWidget: TCEWidget
|
|||
ShowHint = True
|
||||
ShowInTaskBar = stNever
|
||||
LCLVersion = '1.6.0.2'
|
||||
Visible = False
|
||||
object Back: TPanel
|
||||
Left = 0
|
||||
Height = 121
|
||||
|
|
|
@ -6,7 +6,7 @@ interface
|
|||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, ActnList, Menus,
|
||||
AnchorDocking, ce_interfaces;
|
||||
xAnchorDocking, ce_interfaces;
|
||||
|
||||
type
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
- setup: screenshots.
|
||||
- project config widget, base/overridden. Note about pre/post build proc as their options cant be overridden.
|
|
@ -691,6 +691,7 @@ These options are defined per-configuration.
|
|||
|
||||
They define the options of two processes and a bunch of commands, respectively executed before and after the compilation.
|
||||
These options are defined per-configuration.
|
||||
These options are not compatible with the system of _base_ & _overridden_ configuration.
|
||||
|
||||

|
||||
|
||||
|
@ -717,6 +718,7 @@ The _executable_ field is not present because it relies on the project parameter
|
|||
|
||||
If the output is piped then the [process input widget][lnk_widg_procinp] can be used to pass the input to the program being executed.
|
||||
These options are defined per-configuration.
|
||||
These options are not compatible with the system of _base_ & _overridden_ configuration.
|
||||
|
||||
#### All categories
|
||||
|
||||
|
@ -812,7 +814,7 @@ A few typical examples:
|
|||
- launch a console with its working directory set to the project file directory.
|
||||
- analyze the current document in _Dscanner_. (see the tutorials).
|
||||
- generate the documentation for all the project sources. (see the tutorials).
|
||||
- launch a custom build tool (_make_, _DUB_).
|
||||
- launch a custom build tool.
|
||||
- launch a script that will zip and upload the latest project build.
|
||||
|
||||

|
||||
|
|
Loading…
Reference in New Issue