git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
645 lines
22 KiB
ObjectPascal
645 lines
22 KiB
ObjectPascal
unit DockingMegaDemoMain;
|
|
|
|
{$I ..\cxVer.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
|
|
Dialogs, ComCtrls, dxDockPanel, Menus, StdCtrls, ExtCtrls, ImgList,
|
|
Clipbrd, dxBar, ActnList, dxDockControl, StdActns, dxBarExtItems, dxsbar,
|
|
cxClasses, EBarsUtils;
|
|
|
|
type
|
|
TDockingMegaDemoMainForm = class(TForm)
|
|
dsHost: TdxDockSite;
|
|
dpStartPage: TdxDockPanel;
|
|
dpOutput: TdxDockPanel;
|
|
dpToolbox: TdxDockPanel;
|
|
dxDockingManager1: TdxDockingManager;
|
|
dpProperties: TdxDockPanel;
|
|
dxLayoutDockSite1: TdxLayoutDockSite;
|
|
dpClassView: TdxDockPanel;
|
|
dxLayoutDockSite4: TdxLayoutDockSite;
|
|
dxLayoutDockSite2: TdxLayoutDockSite;
|
|
dpCallStack: TdxDockPanel;
|
|
dxTabContainerDockSite1: TdxTabContainerDockSite;
|
|
dpSolutionExplorer: TdxDockPanel;
|
|
dxTabContainerDockSite2: TdxTabContainerDockSite;
|
|
dpWatch: TdxDockPanel;
|
|
BarManager: TdxBarManager;
|
|
dxBarButtonLoad: TdxBarLargeButton;
|
|
dxBarButtonSave: TdxBarLargeButton;
|
|
dxBarSubItemFile: TdxBarSubItem;
|
|
dxBarSubItemInsert: TdxBarSubItem;
|
|
dxBarSubItemFormat: TdxBarSubItem;
|
|
dxBarSubItemWindow: TdxBarSubItem;
|
|
dxBarButtonExit: TdxBarLargeButton;
|
|
dxBarSubItemHelp: TdxBarSubItem;
|
|
imBarIcons: TImageList;
|
|
dxBarButtonToolBox: TdxBarLargeButton;
|
|
dxBarButtonWatch: TdxBarLargeButton;
|
|
dxBarButtonOutput: TdxBarLargeButton;
|
|
dxBarButtonCallStack: TdxBarLargeButton;
|
|
dxBarButtonProperties: TdxBarLargeButton;
|
|
dxBarButtonClassView: TdxBarLargeButton;
|
|
dxBarButtonSolutionExplorer: TdxBarLargeButton;
|
|
dxBarButtonFont: TdxBarLargeButton;
|
|
dxBarButtonColor: TdxBarLargeButton;
|
|
dxBarButtonStandardView: TdxBarLargeButton;
|
|
dxBarButtonNETView: TdxBarLargeButton;
|
|
dxBarButtonXPView: TdxBarLargeButton;
|
|
dxBarSubItemOtherWindows: TdxBarSubItem;
|
|
ColorDialog1: TColorDialog;
|
|
FontDialog1: TFontDialog;
|
|
ilDockIcons: TImageList;
|
|
dxBarPopupMenu1: TdxBarPopupMenu;
|
|
dxBarButtonDockable: TdxBarButton;
|
|
dxBarButtonHide: TdxBarButton;
|
|
dxBarButtonFloating: TdxBarButton;
|
|
dxBarButtonAutoHide: TdxBarButton;
|
|
OpenDialog1: TOpenDialog;
|
|
SaveDialog1: TSaveDialog;
|
|
dxLayoutDockSite3: TdxLayoutDockSite;
|
|
dxBarButtonStartPage: TdxBarLargeButton;
|
|
dxBarButtonOffice11View: TdxBarLargeButton;
|
|
dxBarButton1: TdxBarLargeButton;
|
|
dxBarButton2: TdxBarLargeButton;
|
|
dxBarButton3: TdxBarLargeButton;
|
|
dxBarButton4: TdxBarLargeButton;
|
|
dxBarButton5: TdxBarLargeButton;
|
|
dxBarButton6: TdxBarLargeButton;
|
|
dxBarButton7: TdxBarLargeButton;
|
|
ilDisabledImages: TImageList;
|
|
ilHotImages: TImageList;
|
|
ListView1: TListView;
|
|
Memo1: TMemo;
|
|
Panel1: TPanel;
|
|
ComboBox1: TComboBox;
|
|
ListView2: TListView;
|
|
tvSolutionExplorer: TTreeView;
|
|
tvClassView: TTreeView;
|
|
iComponentsIcons: TImageList;
|
|
dxSideBar1: TdxSideBar;
|
|
ScrollBox1: TScrollBox;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
cbManagerColor: TCheckBox;
|
|
cbManagerFont: TCheckBox;
|
|
eCaption: TEdit;
|
|
cbShowCaption: TCheckBox;
|
|
cbShowCloseButton: TCheckBox;
|
|
cbShowMaxButton: TCheckBox;
|
|
cbShowHideButton: TCheckBox;
|
|
cbAllowDockLeft: TCheckBox;
|
|
cbAllowDockTop: TCheckBox;
|
|
cbAllowDockClient: TCheckBox;
|
|
cbAllowFloating: TCheckBox;
|
|
cbAllowDockBottom: TCheckBox;
|
|
cbAllowDockRight: TCheckBox;
|
|
cbAllowDockClientsLeft: TCheckBox;
|
|
cbAllowDockClientsTop: TCheckBox;
|
|
cbAllowDockClientsClient: TCheckBox;
|
|
cbAllowDockClientsBottom: TCheckBox;
|
|
cbAllowDockClientsRight: TCheckBox;
|
|
cbTabsOnTop: TCheckBox;
|
|
cbTabsScrollable: TCheckBox;
|
|
Panel2: TPanel;
|
|
Image2: TImage;
|
|
Panel3: TPanel;
|
|
Label4: TLabel;
|
|
Image3: TImage;
|
|
Image4: TImage;
|
|
Label5: TLabel;
|
|
Panel4: TPanel;
|
|
btnApply: TButton;
|
|
btnCancel: TButton;
|
|
dxVertContainerDockSite1: TdxVertContainerDockSite;
|
|
Panel5: TPanel;
|
|
Image1: TImage;
|
|
dxBarLargeButton1: TdxBarLargeButton;
|
|
dxBarLargeButton2: TdxBarLargeButton;
|
|
procedure dxBarButtonExitClick(Sender: TObject);
|
|
procedure dxBarButtonSolutionExplorerClick(Sender: TObject);
|
|
procedure dxBarButtonClassViewClick(Sender: TObject);
|
|
procedure dxBarButtonPropertiesClick(Sender: TObject);
|
|
procedure dxBarButtonToolBoxClick(Sender: TObject);
|
|
procedure dxBarButtonCallStackClick(Sender: TObject);
|
|
procedure dxBarButtonOutputClick(Sender: TObject);
|
|
procedure dxBarButtonFontClick(Sender: TObject);
|
|
procedure dxBarButtonColorClick(Sender: TObject);
|
|
procedure dxBarButtonStandardViewClick(Sender: TObject);
|
|
procedure dxBarButtonNETViewClick(Sender: TObject);
|
|
procedure dxBarButtonXPViewClick(Sender: TObject);
|
|
procedure frSolutionExplorer1TreeView1MouseDown(Sender: TObject;
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
procedure dxBarButtonOnWebClick(Sender: TObject);
|
|
procedure dxBarButtonWatchClick(Sender: TObject);
|
|
procedure dpContextPopup(Sender: TObject; MousePos: TPoint;
|
|
var Handled: Boolean);
|
|
procedure dxBarButtonDockableClick(Sender: TObject);
|
|
procedure dxBarButtonHideClick(Sender: TObject);
|
|
procedure dxBarButtonFloatingClick(Sender: TObject);
|
|
procedure dxBarButtonAutoHideClick(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure dxBarButtonLoadClick(Sender: TObject);
|
|
procedure dxBarButtonSaveClick(Sender: TObject);
|
|
procedure dxBarButtonStartPageClick(Sender: TObject);
|
|
procedure dxBarButtonOffice11ViewClick(Sender: TObject);
|
|
procedure dxDockingManager1LayoutChanged(Sender: TdxCustomDockControl);
|
|
procedure btnApplyClick(Sender: TObject);
|
|
procedure btnCancelClick(Sender: TObject);
|
|
procedure tvSolutionExplorerChange(Sender: TObject; Node: TTreeNode);
|
|
procedure FormCreate(Sender: TObject);
|
|
private
|
|
FDockControl: TdxCustomDockControl;
|
|
procedure SetDockControl(const Value: TdxCustomDockControl);
|
|
procedure ApplyProperties;
|
|
procedure UpdateProperties;
|
|
procedure DisableProperties;
|
|
private
|
|
FPopupMenuDockControl: TdxCustomDockControl;
|
|
procedure UpdateSolutionTV;
|
|
procedure UpdateClassViewTV;
|
|
property DockControl: TdxCustomDockControl read FDockControl write SetDockControl;
|
|
end;
|
|
|
|
var
|
|
DockingMegaDemoMainForm: TDockingMegaDemoMainForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
DockingMegaDemoAbout, EBarsDemoRating;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TDockingMegaDemoMainForm.UpdateSolutionTV;
|
|
procedure CheckSite(AControl: TdxCustomDockControl; ANode: TTreeNode);
|
|
var
|
|
I: Integer;
|
|
AChild: TTreeNode;
|
|
ANodeName: string;
|
|
begin
|
|
if AControl.Name <> '' then
|
|
ANodeName := AControl.Name
|
|
else ANodeName := AControl.ClassName;
|
|
AChild := tvSolutionExplorer.Items.AddChildObject(ANode, ANodeName, AControl);
|
|
AChild.StateIndex := AControl.ImageIndex;
|
|
for I := 0 to AControl.ChildCount - 1 do
|
|
CheckSite(AControl.Children[I], AChild);
|
|
end;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
if not tvSolutionExplorer.HandleAllocated then exit;
|
|
tvSolutionExplorer.Items.BeginUpdate;
|
|
try
|
|
tvSolutionExplorer.Items.Clear;
|
|
CheckSite(dsHost, nil);
|
|
tvSolutionExplorer.FullExpand;
|
|
finally
|
|
tvSolutionExplorer.Items.EndUpdate;
|
|
end;
|
|
tvSolutionExplorer.Selected := nil;
|
|
for I := 0 to tvSolutionExplorer.Items.Count - 1 do
|
|
if TdxCustomDockControl(tvSolutionExplorer.Items[I].Data) = DockControl then
|
|
tvSolutionExplorer.Selected := tvSolutionExplorer.Items[I];
|
|
UpdateProperties;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.UpdateClassViewTV;
|
|
var
|
|
ANode: TTreeNode;
|
|
begin
|
|
if not tvClassView.HandleAllocated then Exit;
|
|
tvClassView.Items.BeginUpdate;
|
|
try
|
|
tvClassView.Items.Clear;
|
|
ANode := tvClassView.Items.AddChild(nil, 'TdxCustomDockControl');
|
|
ANode := tvClassView.Items.AddChild(ANode, 'TdxCustomDockSite');
|
|
tvClassView.Items.AddChild(ANode, 'TdxLayoutDockSite');
|
|
ANode := tvClassView.Items.AddChild(ANode, 'TdxContainerDockSite');
|
|
tvClassView.Items.AddChild(ANode, 'TdxTabContainerDockSite');
|
|
ANode := tvClassView.Items.AddChild(ANode, 'TdxSideContainerDockSite');
|
|
tvClassView.Items.AddChild(ANode, 'TdxHorizContainerDockSite');
|
|
tvClassView.Items.AddChild(ANode, 'TdxVertContainerDockSite');
|
|
tvClassView.Items.AddChild(tvClassView.Items[1], 'TdxFloatDockSite');
|
|
tvClassView.Items.AddChild(tvClassView.Items[1], 'TdxDockSite');
|
|
tvClassView.Items.AddChild(tvClassView.Items[0], 'TdxDockPanel');
|
|
tvClassView.FullExpand;
|
|
finally
|
|
tvClassView.Items.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonStartPageClick(Sender: TObject);
|
|
begin
|
|
if (dpStartPage = nil) then exit;
|
|
if not dpStartPage.Visible then
|
|
dpStartPage.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpStartPage;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonSolutionExplorerClick(Sender: TObject);
|
|
begin
|
|
if (dpSolutionExplorer = nil) then exit;
|
|
if not dpSolutionExplorer.Visible then
|
|
dpSolutionExplorer.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpSolutionExplorer;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonClassViewClick(Sender: TObject);
|
|
begin
|
|
if (dpClassView = nil) then exit;
|
|
if not dpClassView.Visible then
|
|
dpClassView.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpClassView;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonPropertiesClick(Sender: TObject);
|
|
begin
|
|
if (dpProperties = nil) then exit;
|
|
if not dpProperties.Visible then
|
|
dpProperties.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpProperties;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonToolBoxClick(Sender: TObject);
|
|
begin
|
|
if (dpToolbox = nil) then exit;
|
|
if not dpToolbox.Visible then
|
|
dpToolbox.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpToolbox;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonCallStackClick(Sender: TObject);
|
|
begin
|
|
if (dpCallStack = nil) then exit;
|
|
if not dpCallStack.Visible then
|
|
dpCallStack.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpCallStack;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonOutputClick(Sender: TObject);
|
|
begin
|
|
if (dpOutput = nil) then exit;
|
|
if not dpOutput.Visible then
|
|
dpOutput.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpOutput;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonWatchClick(Sender: TObject);
|
|
begin
|
|
if (dpWatch = nil) then exit;
|
|
if not dpWatch.Visible then
|
|
dpWatch.Visible := True;
|
|
dxDockingController.ActiveDockControl := dpWatch;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonFontClick(Sender: TObject);
|
|
begin
|
|
FontDialog1.Font := dxDockingManager1.Font;
|
|
if FontDialog1.Execute then
|
|
dxDockingManager1.Font := FontDialog1.Font;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonColorClick(Sender: TObject);
|
|
begin
|
|
ColorDialog1.Color := dxDockingManager1.Color;
|
|
if ColorDialog1.Execute then
|
|
dxDockingManager1.Color := ColorDialog1.Color;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonStandardViewClick(Sender: TObject);
|
|
begin
|
|
dxDockingManager1.ViewStyle := vsStandard;
|
|
BarManager.Style := bmsStandard;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonNETViewClick(Sender: TObject);
|
|
begin
|
|
dxDockingManager1.ViewStyle := vsNET;
|
|
BarManager.Style := bmsFlat;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonOffice11ViewClick(Sender: TObject);
|
|
begin
|
|
dxDockingManager1.ViewStyle := vsOffice11;
|
|
BarManager.Style := bmsOffice11;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonXPViewClick(Sender: TObject);
|
|
begin
|
|
dxDockingManager1.ViewStyle := vsXP;
|
|
BarManager.Style := bmsXP;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.frSolutionExplorer1TreeView1MouseDown(Sender: TObject;
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
var
|
|
ANode: TTreeNode;
|
|
begin
|
|
ANode := tvSolutionExplorer.GetNodeAt(X, Y);
|
|
if ANode <> nil then
|
|
DockControl := TdxCustomDockControl(ANode.Data)
|
|
else DockControl := dsHost;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonOnWebClick(Sender: TObject);
|
|
begin
|
|
Browse(spStart);
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dpContextPopup(Sender: TObject;
|
|
MousePos: TPoint; var Handled: Boolean);
|
|
var
|
|
pt: TPoint;
|
|
AControl: TdxCustomDockControl;
|
|
begin
|
|
GetCursorPos(pt);
|
|
AControl := dxDockingController.GetDockControlAtPos(pt);
|
|
if AControl <> nil then
|
|
begin
|
|
FPopupMenuDockControl := AControl;
|
|
dxBarButtonDockable.Down := FPopupMenuDockControl.Dockable;
|
|
dxBarButtonFloating.Down := FPopupMenuDockControl.FloatDockSite <> nil;
|
|
dxBarButtonAutoHide.Enabled := FPopupMenuDockControl.CanAutoHide;
|
|
dxBarButtonAutoHide.Down := FPopupMenuDockControl.AutoHide;
|
|
dxBarPopupMenu1.PopupFromCursorPos;
|
|
Handled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonDockableClick(Sender: TObject);
|
|
begin
|
|
if FPopupMenuDockControl <> nil then
|
|
begin
|
|
FPopupMenuDockControl.Dockable := (Sender as TdxBarButton).Down;
|
|
FPopupMenuDockControl := nil;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonHideClick(Sender: TObject);
|
|
begin
|
|
if FPopupMenuDockControl <> nil then
|
|
begin
|
|
FPopupMenuDockControl.Visible := False;
|
|
FPopupMenuDockControl := nil;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonFloatingClick(Sender: TObject);
|
|
var
|
|
pt: TPoint;
|
|
begin
|
|
if (FPopupMenuDockControl <> nil) and (FPopupMenuDockControl.DockState <> dsFloating) then
|
|
begin
|
|
GetCursorPos(pt);
|
|
FPopupMenuDockControl.MakeFloating(pt.X, pt.Y);
|
|
FPopupMenuDockControl := nil;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonAutoHideClick(Sender: TObject);
|
|
begin
|
|
if FPopupMenuDockControl <> nil then
|
|
begin
|
|
FPopupMenuDockControl.AutoHide := (Sender as TdxBarButton).Down;
|
|
FPopupMenuDockControl := nil;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.FormShow(Sender: TObject);
|
|
begin
|
|
DockControl := dsHost;
|
|
UpdateSolutionTV;
|
|
UpdateClassViewTV;
|
|
ComboBox1.Align := alClient;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonLoadClick(Sender: TObject);
|
|
begin
|
|
if OpenDialog1.Execute then
|
|
dxDockingManager1.LoadLayoutFromIniFile(OpenDialog1.FileName);
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxBarButtonSaveClick(Sender: TObject);
|
|
begin
|
|
if SaveDialog1.Execute then
|
|
dxDockingManager1.SaveLayoutToIniFile(SaveDialog1.FileName);
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.dxDockingManager1LayoutChanged(Sender: TdxCustomDockControl);
|
|
begin
|
|
UpdateSolutionTV;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.SetDockControl(const Value: TdxCustomDockControl);
|
|
begin
|
|
if FDockControl <> Value then
|
|
begin
|
|
FDockControl := Value;
|
|
UpdateProperties;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.ApplyProperties;
|
|
var
|
|
ADockTypes: TdxDockingTypes;
|
|
ACaptionButtons: TdxCaptionButtons;
|
|
begin
|
|
if (FDockControl = nil) or (csDestroying in FDockControl.ComponentState) then exit;
|
|
|
|
FDockControl.ManagerColor := cbManagerColor.Checked;
|
|
FDockControl.ManagerFont := cbManagerFont.Checked;
|
|
FDockControl.Caption := eCaption.Text;
|
|
FDockControl.ShowCaption := cbShowCaption.Checked;
|
|
|
|
ACaptionButtons := [];
|
|
if cbShowCloseButton.Checked then
|
|
ACaptionButtons := ACaptionButtons + [cbClose];
|
|
if cbShowMaxButton.Checked then
|
|
ACaptionButtons := ACaptionButtons + [cbMaximize];
|
|
if cbShowHideButton.Checked then
|
|
ACaptionButtons := ACaptionButtons + [cbHide];
|
|
|
|
FDockControl.CaptionButtons := ACaptionButtons;
|
|
|
|
ADockTypes := [];
|
|
if cbAllowDockLeft.Checked then ADockTypes := ADockTypes + [dtLeft];
|
|
if cbAllowDockTop.Checked then ADockTypes := ADockTypes + [dtTop];
|
|
if cbAllowDockRight.Checked then ADockTypes := ADockTypes + [dtRight];
|
|
if cbAllowDockBottom.Checked then ADockTypes := ADockTypes + [dtBottom];
|
|
if cbAllowDockClient.Checked then ADockTypes := ADockTypes + [dtClient];
|
|
FDockControl.AllowDock := ADockTypes;
|
|
|
|
FDockControl.AllowFloating := cbAllowFloating.Checked;
|
|
|
|
ADockTypes := [];
|
|
if cbAllowDockClientsLeft.Checked then ADockTypes := ADockTypes + [dtLeft];
|
|
if cbAllowDockClientsTop.Checked then ADockTypes := ADockTypes + [dtTop];
|
|
if cbAllowDockClientsRight.Checked then ADockTypes := ADockTypes + [dtRight];
|
|
if cbAllowDockClientsBottom.Checked then ADockTypes := ADockTypes + [dtBottom];
|
|
if cbAllowDockClientsClient.Checked then ADockTypes := ADockTypes + [dtClient];
|
|
FDockControl.AllowDockClients := ADockTypes;
|
|
|
|
if FDockControl is TdxTabContainerDockSite then
|
|
begin
|
|
if cbTabsOnTop.Checked then
|
|
(FDockControl as TdxTabContainerDockSite).TabsPosition := tctpTop
|
|
else (FDockControl as TdxTabContainerDockSite).TabsPosition := tctpBottom;
|
|
(FDockControl as TdxTabContainerDockSite).TabsScroll := cbTabsScrollable.Checked;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.UpdateProperties;
|
|
begin
|
|
if (FDockControl <> nil) and not (csDestroying in FDockControl.ComponentState) then
|
|
begin
|
|
cbManagerColor.Enabled := True;
|
|
cbManagerColor.Checked := FDockControl.ManagerColor;
|
|
cbManagerFont.Enabled := True;
|
|
cbManagerFont.Checked := FDockControl.ManagerFont;
|
|
eCaption.Enabled := True;
|
|
eCaption.Text := FDockControl.Caption;
|
|
cbShowCaption.Enabled := True;
|
|
cbShowCaption.Checked := FDockControl.ShowCaption;
|
|
cbShowCloseButton.Enabled := True;
|
|
cbShowCloseButton.Checked := cbClose in FDockControl.CaptionButtons;
|
|
cbShowMaxButton.Enabled := True;
|
|
cbShowMaxButton.Checked := cbMaximize in FDockControl.CaptionButtons;
|
|
cbShowHideButton.Enabled := True;
|
|
cbShowHideButton.Checked := cbHide in FDockControl.CaptionButtons;
|
|
|
|
cbAllowDockLeft.Enabled := True;
|
|
cbAllowDockLeft.Checked := dtLeft in FDockControl.AllowDock;
|
|
cbAllowDockTop.Enabled := True;
|
|
cbAllowDockTop.Checked := dtTop in FDockControl.AllowDock;
|
|
cbAllowDockRight.Enabled := True;
|
|
cbAllowDockRight.Checked := dtRight in FDockControl.AllowDock;
|
|
cbAllowDockBottom.Enabled := True;
|
|
cbAllowDockBottom.Checked := dtBottom in FDockControl.AllowDock;
|
|
cbAllowDockClient.Enabled := True;
|
|
cbAllowDockClient.Checked := dtClient in FDockControl.AllowDock;
|
|
cbAllowFloating.Enabled := True;
|
|
cbAllowFloating.Checked := FDockControl.AllowFloating;
|
|
cbAllowDockClientsLeft.Enabled := True;
|
|
cbAllowDockClientsLeft.Checked := dtLeft in FDockControl.AllowDockClients;
|
|
cbAllowDockClientsTop.Enabled := True;
|
|
cbAllowDockClientsTop.Checked := dtTop in FDockControl.AllowDockClients;
|
|
cbAllowDockClientsRight.Enabled := True;
|
|
cbAllowDockClientsRight.Checked := dtRight in FDockControl.AllowDockClients;
|
|
cbAllowDockClientsBottom.Enabled := True;
|
|
cbAllowDockClientsBottom.Checked := dtBottom in FDockControl.AllowDockClients;
|
|
cbAllowDockClientsClient.Enabled := True;
|
|
cbAllowDockClientsClient.Checked := dtClient in FDockControl.AllowDockClients;
|
|
|
|
if FDockControl is TdxTabContainerDockSite then
|
|
begin
|
|
cbTabsOnTop.Enabled := True;
|
|
cbTabsOnTop.Checked := (FDockControl as TdxTabContainerDockSite).TabsPosition = tctpTop;
|
|
cbTabsScrollable.Enabled := True;
|
|
cbTabsScrollable.Checked := (FDockControl as TdxTabContainerDockSite).TabsScroll;
|
|
end
|
|
else
|
|
begin
|
|
cbTabsOnTop.Enabled := False;
|
|
cbTabsScrollable.Enabled := False;
|
|
end;
|
|
btnApply.Enabled := True;
|
|
btnCancel.Enabled := True;
|
|
end
|
|
else DisableProperties;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.DisableProperties;
|
|
begin
|
|
cbManagerColor.Checked := False;
|
|
cbManagerColor.Enabled := False;
|
|
cbManagerFont.Checked := False;
|
|
cbManagerFont.Enabled := False;
|
|
eCaption.Text := '';
|
|
eCaption.Enabled := False;
|
|
cbShowCaption.Checked := False;
|
|
cbShowCaption.Enabled := False;
|
|
cbShowCloseButton.Checked := False;
|
|
cbShowCloseButton.Enabled := False;
|
|
cbShowMaxButton.Checked := False;
|
|
cbShowMaxButton.Enabled := False;
|
|
cbShowHideButton.Checked := False;
|
|
cbShowHideButton.Enabled := False;
|
|
cbAllowDockLeft.Checked := False;
|
|
cbAllowDockLeft.Enabled := False;
|
|
cbAllowDockTop.Checked := False;
|
|
cbAllowDockTop.Enabled := False;
|
|
cbAllowDockRight.Checked := False;
|
|
cbAllowDockRight.Enabled := False;
|
|
cbAllowDockBottom.Checked := False;
|
|
cbAllowDockBottom.Enabled := False;
|
|
cbAllowDockClient.Checked := False;
|
|
cbAllowDockClient.Enabled := False;
|
|
cbAllowFloating.Checked := False;
|
|
cbAllowFloating.Enabled := False;
|
|
cbAllowDockClientsLeft.Checked := False;
|
|
cbAllowDockClientsLeft.Enabled := False;
|
|
cbAllowDockClientsTop.Checked := False;
|
|
cbAllowDockClientsTop.Enabled := False;
|
|
cbAllowDockClientsRight.Checked := False;
|
|
cbAllowDockClientsRight.Enabled := False;
|
|
cbAllowDockClientsBottom.Checked := False;
|
|
cbAllowDockClientsBottom.Enabled := False;
|
|
cbAllowDockClientsClient.Checked := False;
|
|
cbAllowDockClientsClient.Enabled := False;
|
|
cbTabsOnTop.Checked := False;
|
|
cbTabsOnTop.Enabled := False;
|
|
cbTabsScrollable.Checked := False;
|
|
cbTabsScrollable.Enabled := False;
|
|
btnApply.Enabled := False;
|
|
btnCancel.Enabled := False;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.btnApplyClick(Sender: TObject);
|
|
begin
|
|
ApplyProperties;
|
|
UpdateProperties;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.btnCancelClick(Sender: TObject);
|
|
begin
|
|
UpdateProperties;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.tvSolutionExplorerChange(Sender: TObject;
|
|
Node: TTreeNode);
|
|
begin
|
|
Node := tvSolutionExplorer.Selected;
|
|
if Node <> nil then
|
|
DockControl := TdxCustomDockControl(Node.Data)
|
|
else DockControl := dsHost;
|
|
end;
|
|
|
|
procedure TDockingMegaDemoMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
dmCommonData.AboutFormClass := TDockingMegaDemoAboutForm;
|
|
|
|
{$IFDEF DELPHI5}
|
|
dpStartPage.OnContextPopup := dpContextPopup;
|
|
dpProperties.OnContextPopup := dpContextPopup;
|
|
dpSolutionExplorer.OnContextPopup := dpContextPopup;
|
|
dpClassView.OnContextPopup := dpContextPopup;
|
|
dpOutput.OnContextPopup := dpContextPopup;
|
|
dpCallStack.OnContextPopup := dpContextPopup;
|
|
dpWatch.OnContextPopup := dpContextPopup;
|
|
dpToolbox.OnContextPopup := dpContextPopup;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
end.
|