git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jvcl@19 7f62d464-2af8-f54e-996c-e91b33f51cbe
650 lines
19 KiB
ObjectPascal
650 lines
19 KiB
ObjectPascal
{-----------------------------------------------------------------------------
|
|
The contents of this file are subject to the Mozilla Public License
|
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
|
the specific language governing rights and limitations under the License.
|
|
|
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
|
located at http://jvcl.delphi-jedi.org
|
|
|
|
Known Issues:
|
|
-----------------------------------------------------------------------------}
|
|
|
|
unit MSDN2002MainUnit;
|
|
|
|
{$I jvcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
ActnList, Menus, ImgList, JvDockControlForm, JvDockVIDStyle, JvDockGlobals,
|
|
JvDockVSNetStyle, StdCtrls, ComCtrls, ToolWin, ExtCtrls, OleCtrls, SHDocVw,
|
|
JvComponent, JvAppStorage, JvAppIniStorage, JvMenus, JvDockTree, JvComponentBase;
|
|
|
|
type
|
|
{ Helper class; set property Form, and then use the properties or methods
|
|
of the adapter class to manipulate the form }
|
|
TDockFormAdapter = class
|
|
private
|
|
FForm: TCustomForm;
|
|
FDockClient: TJvDockClient;
|
|
function GetCanAutoHide: Boolean;
|
|
function GetDockClient: TJvDockClient;
|
|
function GetIsAutoHidden: Boolean;
|
|
function GetIsDockable: Boolean;
|
|
function GetIsFloating: Boolean;
|
|
function GetIsTabbedDocument: Boolean;
|
|
procedure SetForm(AForm: TCustomForm);
|
|
procedure SetIsAutoHidden(const Value: Boolean);
|
|
procedure SetIsDockable(const Value: Boolean);
|
|
procedure SetIsFloating(const Value: Boolean);
|
|
procedure SetIsTabbedDocument(const Value: Boolean);
|
|
public
|
|
constructor Create(AForm: TCustomForm);
|
|
|
|
procedure Float;
|
|
procedure Hide;
|
|
procedure Show;
|
|
procedure AutoHide;
|
|
procedure UnAutoHide;
|
|
|
|
property Form: TCustomForm read FForm write SetForm;
|
|
property DockClient: TJvDockClient read GetDockClient;
|
|
|
|
{ In Visual Studio there are 5 states a window can be in
|
|
|
|
* Floating
|
|
* Dockable
|
|
* Tabbed Document (in the mdi space) // not implemented
|
|
* AutoHide
|
|
* Hide
|
|
}
|
|
|
|
property CanAutoHide: Boolean read GetCanAutoHide;
|
|
property IsAutoHidden: Boolean read GetIsAutoHidden write SetIsAutoHidden;
|
|
property IsTabbedDocument: Boolean read GetIsTabbedDocument write SetIsTabbedDocument;
|
|
property IsDockable: Boolean read GetIsDockable write SetIsDockable;
|
|
property IsFloating: Boolean read GetIsFloating write SetIsFloating;
|
|
end;
|
|
|
|
TMSDN2002 = class(TForm)
|
|
ActionList1: TActionList;
|
|
MainMenu1: TJvMainMenu;
|
|
File_Print_Action: TAction;
|
|
File_Exit_Action: TAction;
|
|
Edit_Undo_Action: TAction;
|
|
Edit_Redo_Action: TAction;
|
|
Edit_Cut_Action: TAction;
|
|
Edit_Copy_Action: TAction;
|
|
Edit_Paste_Action: TAction;
|
|
Edit_Delete_Action: TAction;
|
|
Edit_Select_All_Action: TAction;
|
|
Edit_Find_in_this_Topic_Action: TAction;
|
|
View_Full_Screen_Action: TAction;
|
|
View_Text_Size_Action: TAction;
|
|
View_View_Source_Action: TAction;
|
|
View_Web_Browser_Show_Web_Browser_Action: TAction;
|
|
View_Web_Browser_Web_Navigate_Back_Action: TAction;
|
|
View_Web_Browser_Web_Navigate_Forward_Action: TAction;
|
|
View_Web_Browser_Home_Action: TAction;
|
|
View_Web_Browser_Search_Action: TAction;
|
|
View_Toolbars_Full_Screen_Action: TAction;
|
|
View_Toolbars_Standard_Action: TAction;
|
|
View_Toolbars_Customize_Action: TAction;
|
|
View_Text_Size_Largest_Action: TAction;
|
|
View_Text_Size_Larger_Action: TAction;
|
|
View_Text_Size_Medium_Action: TAction;
|
|
View_Text_Size_Smaller_Action: TAction;
|
|
View_Text_Size_Smallest_Action: TAction;
|
|
Window_New_Window_Action: TAction;
|
|
Window_Dockable_Action: TAction;
|
|
Window_Split_Action: TAction;
|
|
Window_Hide_Action: TAction;
|
|
Window_Floating_Action: TAction;
|
|
Window_Auto_Hide_Action: TAction;
|
|
Window_Close_All_Document_Action: TAction;
|
|
Window_Windows_Action: TAction;
|
|
Help_Contents_Action: TAction;
|
|
Help_Index_Action: TAction;
|
|
Help_Search_Action: TAction;
|
|
Help_Favorites_Action: TAction;
|
|
Help_Index_results_Action: TAction;
|
|
Help_Search_results_Action: TAction;
|
|
Help_Previous_topic_Action: TAction;
|
|
Help_Next_topic_Action: TAction;
|
|
Help_Sync_Contents_Action: TAction;
|
|
Help_Technical_Support_Action: TAction;
|
|
Help_About_Action: TAction;
|
|
ImageList1: TImageList;
|
|
File1: TMenuItem;
|
|
Print1: TMenuItem;
|
|
Edit1: TMenuItem;
|
|
Undo1: TMenuItem;
|
|
Redo1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Cut1: TMenuItem;
|
|
Copy1: TMenuItem;
|
|
Paste1: TMenuItem;
|
|
Delete1: TMenuItem;
|
|
N2: TMenuItem;
|
|
SelectAll1: TMenuItem;
|
|
N3: TMenuItem;
|
|
FindinthisTopic1: TMenuItem;
|
|
ViewSource1: TMenuItem;
|
|
WebBrowser1: TMenuItem;
|
|
ShowWebBrowser1: TMenuItem;
|
|
WebNavigateBack1: TMenuItem;
|
|
WebNavigateForward1: TMenuItem;
|
|
Home1: TMenuItem;
|
|
Search1: TMenuItem;
|
|
N4: TMenuItem;
|
|
N5: TMenuItem;
|
|
Navigation1: TMenuItem;
|
|
Contents1: TMenuItem;
|
|
Index1: TMenuItem;
|
|
Search2: TMenuItem;
|
|
Favorites1: TMenuItem;
|
|
Toolbars1: TMenuItem;
|
|
N6: TMenuItem;
|
|
FullScreen1: TMenuItem;
|
|
Standard1: TMenuItem;
|
|
N7: TMenuItem;
|
|
Customize1: TMenuItem;
|
|
FullScreen2: TMenuItem;
|
|
N8: TMenuItem;
|
|
ViewTextSizeAction1: TMenuItem;
|
|
N9: TMenuItem;
|
|
ViewSource2: TMenuItem;
|
|
Largest1: TMenuItem;
|
|
Larger1: TMenuItem;
|
|
Medium1: TMenuItem;
|
|
Smaller1: TMenuItem;
|
|
Smallest1: TMenuItem;
|
|
Tools1: TMenuItem;
|
|
Customize2: TMenuItem;
|
|
Options1: TMenuItem;
|
|
Window1: TMenuItem;
|
|
Split1: TMenuItem;
|
|
NewWindow1: TMenuItem;
|
|
Dockable1: TMenuItem;
|
|
N10: TMenuItem;
|
|
Hide1: TMenuItem;
|
|
Floating1: TMenuItem;
|
|
N11: TMenuItem;
|
|
AutoHide1: TMenuItem;
|
|
CloseAllDocument1: TMenuItem;
|
|
N12: TMenuItem;
|
|
Windows1: TMenuItem;
|
|
Help1: TMenuItem;
|
|
Contents2: TMenuItem;
|
|
Index2: TMenuItem;
|
|
Search3: TMenuItem;
|
|
Favorites2: TMenuItem;
|
|
Indexresults1: TMenuItem;
|
|
Searchresults1: TMenuItem;
|
|
EditFilters1: TMenuItem;
|
|
Previoustopic1: TMenuItem;
|
|
Nexttopic1: TMenuItem;
|
|
SyncContents1: TMenuItem;
|
|
TechnicalSupport1: TMenuItem;
|
|
HelponHelp1: TMenuItem;
|
|
About1: TMenuItem;
|
|
N13: TMenuItem;
|
|
N14: TMenuItem;
|
|
N15: TMenuItem;
|
|
N16: TMenuItem;
|
|
N17: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
lbDockServer1: TJvDockServer;
|
|
ControlBar1: TControlBar;
|
|
ToolBar1: TToolBar;
|
|
tbBack: TToolButton;
|
|
tbFwd: TToolButton;
|
|
tbStop: TToolButton;
|
|
tbRefresh: TToolButton;
|
|
tbHome: TToolButton;
|
|
View_Web_Browser_Stop_Browser_Action: TAction;
|
|
View_Web_Browser_Refresh_Browser_Action: TAction;
|
|
Help_Add_to_Favorites_Action: TAction;
|
|
ToolButton6: TToolButton;
|
|
tbExplorer: TToolButton;
|
|
tbFavorites: TToolButton;
|
|
tbAddFavorite: TToolButton;
|
|
ToolButton10: TToolButton;
|
|
URLComboBox: TComboBox;
|
|
ToolButton11: TToolButton;
|
|
ToolButton12: TToolButton;
|
|
ToolButton13: TToolButton;
|
|
ToolButton14: TToolButton;
|
|
ToolButton15: TToolButton;
|
|
ToolButton16: TToolButton;
|
|
ToolButton17: TToolButton;
|
|
ToolButton18: TToolButton;
|
|
ToolButton19: TToolButton;
|
|
ToolButton20: TToolButton;
|
|
ToolButton21: TToolButton;
|
|
ToolButton22: TToolButton;
|
|
StatusBar1: TStatusBar;
|
|
PopupMenu1: TJvPopupMenu;
|
|
Dockable_Item: TMenuItem;
|
|
Hide_Item: TMenuItem;
|
|
Float_Item: TMenuItem;
|
|
AutoHide_Item: TMenuItem;
|
|
JvDockVSNetStyle1: TJvDockVSNetStyle;
|
|
Tools_Customize: TAction;
|
|
Tools_Options: TAction;
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure Help_Contents_ActionExecute(Sender: TObject);
|
|
procedure Help_Index_ActionExecute(Sender: TObject);
|
|
procedure Help_Search_ActionExecute(Sender: TObject);
|
|
procedure Help_Favorites_ActionExecute(Sender: TObject);
|
|
procedure Help_Index_results_ActionExecute(Sender: TObject);
|
|
procedure Help_Search_results_ActionExecute(Sender: TObject);
|
|
procedure File_Exit_ActionExecute(Sender: TObject);
|
|
procedure Hide_ItemClick(Sender: TObject);
|
|
procedure Float_ItemClick(Sender: TObject);
|
|
procedure PopupMenu1Popup(Sender: TObject);
|
|
procedure Dockable_ItemClick(Sender: TObject);
|
|
procedure AutoHide_ItemClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
InternalWebBrowser: TWebBrowser;
|
|
JvAppStorage:TJvAppIniFileStorage;
|
|
FAdapter: TDockFormAdapter;
|
|
//procedure CreateXPMenu; //
|
|
procedure CreateToolForm; // create everything
|
|
procedure DefaultDockLayout;
|
|
procedure LoadDockInfo;
|
|
procedure LoadToolFormLayout; // load previous layout
|
|
procedure SaveToolFormLayout; // save current layout
|
|
procedure CreateVSNETPageControl;
|
|
// procedure SafeExecWB(ACommand:TOleEnum);
|
|
// function BrowserSupports(ACommand:TOleEnum):boolean;
|
|
procedure DoCommandStateChange(Sender: TObject; Command: Integer;
|
|
Enable: WordBool);
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
MSDN2002: TMSDN2002;
|
|
|
|
implementation
|
|
|
|
uses
|
|
ShellAPI, ActiveX,
|
|
ContentsFormUnit, FavoritesFormUnit, IndexFormUnit,
|
|
IndexResultFormUnit, SearchFormUnit, SearchResultFormUnit;
|
|
|
|
const
|
|
cStorageFilename = 'DockLayout.ini';
|
|
type
|
|
TAccessWinControl = class(TWinControl);
|
|
|
|
{$R *.dfm}
|
|
|
|
{
|
|
procedure TMSDN2002.CreateXPMenu;
|
|
begin
|
|
with TJvMainMenu.Create(Self) do
|
|
;//Active := True;
|
|
end;
|
|
}
|
|
|
|
procedure TMSDN2002.AutoHide_ItemClick(Sender: TObject);
|
|
begin
|
|
if PopupMenu1.PopupComponent is TForm then
|
|
with FAdapter do
|
|
begin
|
|
Form := TForm(PopupMenu1.PopupComponent);
|
|
IsAutoHidden := not IsAutoHidden;
|
|
end;
|
|
end;
|
|
|
|
procedure TMSDN2002.CreateToolForm;
|
|
begin
|
|
ContentsForm := TContentsForm.Create(Application);
|
|
ImageList1.GetIcon(20, ContentsForm.Icon);
|
|
IndexForm := TIndexForm.Create(Application);
|
|
ImageList1.GetIcon(21, IndexForm.Icon);
|
|
SearchForm := TSearchForm.Create(Application);
|
|
ImageList1.GetIcon(22, SearchForm.Icon);
|
|
FavoritesForm := TFavoritesForm.Create(Application);
|
|
ImageList1.GetIcon(23, FavoritesForm.Icon);
|
|
IndexResultForm := TIndexResultForm.Create(Application);
|
|
ImageList1.GetIcon(25, IndexResultForm.Icon);
|
|
SearchResultForm := TSearchResultForm.Create(Application);
|
|
ImageList1.GetIcon(26, SearchResultForm.Icon);
|
|
end;
|
|
|
|
procedure TMSDN2002.LoadDockInfo;
|
|
begin
|
|
CreateToolForm;
|
|
if not FileExists(ExtractFilePath(Application.ExeName) + cStorageFilename) then
|
|
DefaultDockLayout
|
|
else
|
|
LoadToolFormLayout;
|
|
end;
|
|
|
|
procedure TMSDN2002.DefaultDockLayout;
|
|
|
|
{ Dock AForm on APanel, and set it to 'auto hide' }
|
|
procedure VSNetDockForm(AForm: TForm; APanel: TJvDockVSNETPanel);
|
|
begin
|
|
// AForm.Width := 180;
|
|
AForm.Top := 10000;
|
|
// AForm.Visible := true;
|
|
AForm.ManualDock(APanel,nil,APanel.Align);
|
|
APanel.ShowDockPanel(True, AForm);
|
|
APanel.DoHideControl(AForm);
|
|
end;
|
|
begin
|
|
lbDockServer1.RightDockPanel.Width := 180;
|
|
lbDockServer1.LeftDockPanel.Width := 180;
|
|
lbDockServer1.BottomDockPanel.Height := 100;
|
|
|
|
VSNetDockForm(ContentsForm, lbDockServer1.RightDockPanel as TJvDockVSNETPanel);
|
|
VSNetDockForm(FavoritesForm, lbDockServer1.RightDockPanel as TJvDockVSNETPanel);
|
|
VSNetDockForm(IndexForm, lbDockServer1.LeftDockPanel as TJvDockVSNETPanel);
|
|
VSNetDockForm(IndexResultForm, lbDockServer1.LeftDockPanel as TJvDockVSNETPanel);
|
|
VSNetDockForm(SearchForm, lbDockServer1.BottomDockPanel as TJvDockVSNETPanel);
|
|
VSNetDockForm(SearchResultForm, lbDockServer1.BottomDockPanel as TJvDockVSNETPanel);
|
|
end;
|
|
|
|
procedure TMSDN2002.LoadToolFormLayout;
|
|
begin
|
|
JvAppStorage.Filename := ExtractFilePath(Application.ExeName) + cStorageFilename;
|
|
JvAppStorage.Reload; // !!!
|
|
LoadDockTreeFromAppStorage(JvAppStorage);
|
|
end;
|
|
|
|
procedure TMSDN2002.SaveToolFormLayout;
|
|
begin
|
|
JvAppStorage.Filename := ExtractFilePath(Application.ExeName) + cStorageFilename;
|
|
SaveDockTreeToAppStorage(JvAppStorage);
|
|
JvAppStorage.Flush; // !!!
|
|
end;
|
|
|
|
procedure TMSDN2002.FormClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
SaveToolFormLayout;
|
|
FAdapter.Free;
|
|
end;
|
|
|
|
procedure TMSDN2002.FormCreate(Sender: TObject);
|
|
begin
|
|
FAdapter := TDockFormAdapter.Create(nil);
|
|
JvAppStorage := TJvAppIniFileStorage.Create(self);
|
|
CreateVSNETPageControl;
|
|
LoadDockInfo;
|
|
end;
|
|
|
|
procedure TMSDN2002.Help_Contents_ActionExecute(Sender: TObject);
|
|
begin
|
|
ShowDockForm(ContentsForm);
|
|
end;
|
|
|
|
procedure TMSDN2002.Help_Index_ActionExecute(Sender: TObject);
|
|
begin
|
|
ShowDockForm(IndexForm);
|
|
end;
|
|
|
|
procedure TMSDN2002.Help_Search_ActionExecute(Sender: TObject);
|
|
begin
|
|
ShowDockForm(SearchForm);
|
|
end;
|
|
|
|
procedure TMSDN2002.Help_Favorites_ActionExecute(Sender: TObject);
|
|
begin
|
|
ShowDockForm(FavoritesForm);
|
|
end;
|
|
|
|
procedure TMSDN2002.Help_Index_results_ActionExecute(
|
|
Sender: TObject);
|
|
begin
|
|
ShowDockForm(IndexResultForm);
|
|
end;
|
|
|
|
procedure TMSDN2002.Help_Search_results_ActionExecute(
|
|
Sender: TObject);
|
|
begin
|
|
ShowDockForm(SearchResultForm);
|
|
end;
|
|
|
|
procedure TMSDN2002.CreateVSNETPageControl;
|
|
var
|
|
Page: TJvDockVSNETTabPageControl;
|
|
Sheet: TJvDockVSNETTabSheet;
|
|
|
|
PageFont: TFont;
|
|
begin
|
|
Page := TJvDockVSNETTabPageControl.Create(Self);
|
|
Page.Parent := Self;
|
|
Page.Align := alClient;
|
|
Page.TabPosition := tpTop;
|
|
Page.ActiveSheetColor := clBtnface;
|
|
Page.InactiveFont.Color := clGray;
|
|
Page.InactiveSheetColor := VSNETPageInactiveSheetColor;
|
|
Page.ParentFont := True;
|
|
SetDockSite(Page, False);
|
|
Page.SendToBack;
|
|
Sheet := TJvDockVSNETTabSheet.Create(Page);
|
|
Sheet.PageControl := Page;
|
|
Sheet.Caption := 'MSDN Library Start';
|
|
PageFont := Page.ActiveFont;
|
|
PageFont.Name := 'Tahoma';
|
|
PageFont.Style := [fsBold];
|
|
Page.ActiveFont := PageFont;
|
|
|
|
InternalWebBrowser := TWebBrowser.Create(Sheet);
|
|
InternalWebBrowser.OnCommandStateChange := DoCommandStateChange;
|
|
TWinControl(InternalWebBrowser).Parent := Sheet;
|
|
InternalWebBrowser.Align := alClient;
|
|
View_Web_Browser_Home_Action.Execute;
|
|
end;
|
|
|
|
procedure TMSDN2002.DoCommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
|
|
begin
|
|
if Command = CSC_NAVIGATEBACK then
|
|
View_Web_Browser_Web_Navigate_Back_Action.Enabled := Enable
|
|
else if Command = CSC_NAVIGATEBACK then
|
|
View_Web_Browser_Web_Navigate_Forward_Action.Enabled := Enable;
|
|
end;
|
|
|
|
procedure TMSDN2002.File_Exit_ActionExecute(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TMSDN2002.PopupMenu1Popup(Sender: TObject);
|
|
begin
|
|
if PopupMenu1.PopupComponent is TForm then
|
|
with FAdapter do
|
|
begin
|
|
Form := TForm(PopupMenu1.PopupComponent);
|
|
AutoHide_Item.Checked := IsAutoHidden;
|
|
AutoHide_Item.Visible := CanAutoHide;
|
|
Dockable_Item.Checked := IsDockable;
|
|
Dockable_Item.Enabled := not IsAutoHidden;
|
|
Float_Item.Checked := IsFloating;
|
|
Float_Item.Enabled := not IsAutoHidden;
|
|
Hide_Item.Enabled := not IsAutoHidden;
|
|
end;
|
|
end;
|
|
|
|
procedure TMSDN2002.Dockable_ItemClick(Sender: TObject);
|
|
begin
|
|
if PopupMenu1.PopupComponent is TForm then
|
|
with FAdapter do
|
|
begin
|
|
Form := TForm(PopupMenu1.PopupComponent);
|
|
IsDockable := not IsDockable;
|
|
end;
|
|
end;
|
|
|
|
procedure TMSDN2002.Hide_ItemClick(Sender: TObject);
|
|
begin
|
|
if PopupMenu1.PopupComponent is TForm then
|
|
with FAdapter do
|
|
begin
|
|
Form := TForm(PopupMenu1.PopupComponent);
|
|
Hide;
|
|
end;
|
|
end;
|
|
|
|
procedure TMSDN2002.Float_ItemClick(Sender: TObject);
|
|
begin
|
|
if PopupMenu1.PopupComponent is TForm then
|
|
with FAdapter do
|
|
begin
|
|
Form := TForm(PopupMenu1.PopupComponent);
|
|
IsFloating := not IsFloating;
|
|
end;
|
|
end;
|
|
|
|
//=== { TDockFormAdapter } ===================================================
|
|
|
|
constructor TDockFormAdapter.Create(AForm: TCustomForm);
|
|
begin
|
|
inherited Create;
|
|
Form := AForm;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.AutoHide;
|
|
begin
|
|
if Form.HostDockSite is TJvDockVSNETPanel then
|
|
TJvDockVSNETPanel(Form.HostDockSite).DoHideControl(Form);
|
|
end;
|
|
|
|
procedure TDockFormAdapter.Float;
|
|
begin
|
|
SetIsFloating(True);
|
|
end;
|
|
|
|
function TDockFormAdapter.GetCanAutoHide: Boolean;
|
|
begin
|
|
Result := IsAutoHidden or (DockClient.DockState <> JvDockState_Floating);
|
|
end;
|
|
|
|
function TDockFormAdapter.GetDockClient: TJvDockClient;
|
|
begin
|
|
if FDockClient = nil then
|
|
FDockClient := FindDockClient(Form);
|
|
Result := FDockClient;
|
|
end;
|
|
|
|
function TDockFormAdapter.GetIsAutoHidden: Boolean;
|
|
var
|
|
HostDockSite: TWinControl;
|
|
begin
|
|
HostDockSite := Form.HostDockSite;
|
|
while (HostDockSite <> nil) and
|
|
(HostDockSite.Parent <> nil) and
|
|
(HostDockSite.Parent.HostDockSite <> nil) do
|
|
HostDockSite := HostDockSite.Parent.HostDockSite;
|
|
Result := HostDockSite is TJvDockVSPopupPanel;
|
|
end;
|
|
|
|
function TDockFormAdapter.GetIsDockable: Boolean;
|
|
begin
|
|
Result := not IsAutoHidden and not IsTabbedDocument and DockClient.EnableDock;
|
|
end;
|
|
|
|
function TDockFormAdapter.GetIsFloating: Boolean;
|
|
begin
|
|
Result := not IsAutoHidden and not IsTabbedDocument and not DockClient.EnableDock;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.Hide;
|
|
begin
|
|
HideDockForm(Form);
|
|
// or call DockClient.HideParentForm;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.SetForm(AForm: TCustomForm);
|
|
begin
|
|
if AForm <> FForm then
|
|
begin
|
|
FDockClient := nil;
|
|
FForm := AForm;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.SetIsAutoHidden(const Value: Boolean);
|
|
begin
|
|
if Value then
|
|
AutoHide
|
|
else
|
|
UnAutoHide;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.SetIsDockable(const Value: Boolean);
|
|
begin
|
|
if not IsAutoHidden then
|
|
begin
|
|
if Value then
|
|
begin
|
|
if IsTabbedDocument then
|
|
IsTabbedDocument := False;
|
|
|
|
DockClient.EnableDock := True;
|
|
end
|
|
else
|
|
begin
|
|
if not IsFloating then
|
|
IsTabbedDocument := True;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.SetIsFloating(const Value: Boolean);
|
|
begin
|
|
if not IsAutoHidden then
|
|
begin
|
|
if Value then
|
|
begin
|
|
if IsTabbedDocument then
|
|
IsTabbedDocument := False;
|
|
|
|
DockClient.RestoreChild;
|
|
DockClient.EnableDock := False;
|
|
end
|
|
else
|
|
begin
|
|
if not IsDockable then
|
|
IsTabbedDocument := True;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.Show;
|
|
begin
|
|
ShowDockForm(Form);
|
|
// or call DockClient.ShowParentForm;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.UnAutoHide;
|
|
begin
|
|
UnAutoHideDockForm(Form);
|
|
end;
|
|
|
|
function TDockFormAdapter.GetIsTabbedDocument: Boolean;
|
|
begin
|
|
{ Not implemented }
|
|
Result := False;
|
|
end;
|
|
|
|
procedure TDockFormAdapter.SetIsTabbedDocument(const Value: Boolean);
|
|
begin
|
|
{ Not implemented }
|
|
end;
|
|
|
|
end.
|