IDE: new unit dependencies

git-svn-id: trunk@41782 -
This commit is contained in:
mattias 2013-06-21 13:41:07 +00:00
parent f4fb26c786
commit 24737576de
8 changed files with 2105 additions and 946 deletions

View File

@ -19,7 +19,7 @@
<Description Value="IDE extensions using Codetools."/> <Description Value="IDE extensions using Codetools."/>
<License Value="GPL2"/> <License Value="GPL2"/>
<Version Major="1" Minor="1"/> <Version Major="1" Minor="1"/>
<Files Count="17"> <Files Count="16">
<Item1> <Item1>
<Filename Value="ppulistdlg.pas"/> <Filename Value="ppulistdlg.pas"/>
<UnitName Value="PPUListDlg"/> <UnitName Value="PPUListDlg"/>
@ -85,10 +85,6 @@
<Filename Value="newidewnddlg.pas"/> <Filename Value="newidewnddlg.pas"/>
<UnitName Value="newidewnddlg"/> <UnitName Value="newidewnddlg"/>
</Item16> </Item16>
<Item17>
<Filename Value="codyunitdepwnd.pas"/>
<UnitName Value="codyunitdepwnd"/>
</Item17>
</Files> </Files>
<LazDoc Paths="doc"/> <LazDoc Paths="doc"/>
<i18n> <i18n>

View File

@ -10,8 +10,7 @@ uses
PPUListDlg, CodyStrConsts, AddAssignMethodDlg, CodyCtrls, CodyFrm, PPUListDlg, CodyStrConsts, AddAssignMethodDlg, CodyCtrls, CodyFrm,
CodyRegistration, DeclareVarDlg, CodyUtils, CodyNodeInfoDlg, CodyRegistration, DeclareVarDlg, CodyUtils, CodyNodeInfoDlg,
CodyCopyDeclaration, AddWithBlockDlg, CodyIdentifiersDlg, CodyMiscOptsFrame, CodyCopyDeclaration, AddWithBlockDlg, CodyIdentifiersDlg, CodyMiscOptsFrame,
CodyOpts, TemplateIDEDockableWindow, NewIDEWndDlg, CodyUnitDepWnd, CodyOpts, TemplateIDEDockableWindow, NewIDEWndDlg, LazarusPackageIntf;
LazarusPackageIntf;
implementation implementation

View File

@ -35,7 +35,7 @@ uses
IDECommands, NewIDEWndDlg, IDECommands, NewIDEWndDlg,
CodeToolManager, CodeToolManager,
CodyStrConsts, CodyUtils, CodyCtrls, CodyOpts, CodyStrConsts, CodyUtils, CodyCtrls, CodyOpts,
PPUListDlg, CodyUnitDepWnd, AddAssignMethodDlg, AddWithBlockDlg, PPUListDlg, AddAssignMethodDlg, AddWithBlockDlg,
CodyNodeInfoDlg, CodyFrm, DeclareVarDlg, CodyCopyDeclaration, CodyNodeInfoDlg, CodyFrm, DeclareVarDlg, CodyCopyDeclaration,
CodyIdentifiersDlg, CodyMiscOptsFrame; CodyIdentifiersDlg, CodyMiscOptsFrame;
@ -89,7 +89,6 @@ var
CmdCatView: TIDECommandCategory; CmdCatView: TIDECommandCategory;
ViewCodyWindowCommand: TIDECommand; ViewCodyWindowCommand: TIDECommand;
{$IFDEF EnableCodyExperiments} {$IFDEF EnableCodyExperiments}
ViewCodyUnitDependenciesWindowCommand: TIDECommand;
{$ENDIF} {$ENDIF}
begin begin
CodyOptions:=TCodyMiscOptions.Create; CodyOptions:=TCodyMiscOptions.Create;
@ -182,14 +181,6 @@ begin
.Visible:=false .Visible:=false
{$ENDIF}; {$ENDIF};
// Unit dependencies
{$IFDEF EnableCodyExperiments}
ViewCodyUnitDependenciesWindowCommand:=RegisterIDECommand(CmdCatView, 'UnitDependencies',
'Cody Unit Dependencies', CleanIDEShortCut, CleanIDEShortCut, nil, @ShowUnitDependenciesClicked);
RegisterIDEMenuCommand(itmViewMainWindows, 'UnitDependencies',
'Cody Unit Dependencies', nil, nil, ViewCodyUnitDependenciesWindowCommand);
{$ENDIF}
// Components - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Components - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TVIconRes:=LazarusResources.Find('TTreeView'); TVIconRes:=LazarusResources.Find('TTreeView');
LazarusResources.Add(TCodyTreeView.ClassName,TVIconRes.ValueType,TVIconRes.Value); LazarusResources.Add(TCodyTreeView.ClassName,TVIconRes.ValueType,TVIconRes.Value);

View File

@ -221,10 +221,6 @@ type
FFindInFilesMaskHistory: TStringList; FFindInFilesMaskHistory: TStringList;
FMaxFindHistory: Integer; FMaxFindHistory: Integer;
// Unit dependencies
FUnitDependenciesHistory: TStringList; // root files
FMaxUnitDependenciesHistory: integer;
// FPC config cache // FPC config cache
FFPCConfigCache: TFPCConfigCache; FFPCConfigCache: TFPCConfigCache;
@ -250,9 +246,8 @@ type
function AddToReplaceHistory(const AReplaceStr: String): boolean; function AddToReplaceHistory(const AReplaceStr: String): boolean;
function AddToFindInFilesPathHistory(const APathStr: String): boolean; function AddToFindInFilesPathHistory(const APathStr: String): boolean;
function AddToFindInFilesMaskHistory(const AMaskStr: String): boolean; function AddToFindInFilesMaskHistory(const AMaskStr: String): boolean;
// Unit dependencies
function AddToUnitDependenciesHistory(const ARootFilename: String): boolean;
// fpc units
function LastFPCUnitLinksValid: boolean; function LastFPCUnitLinksValid: boolean;
function LastFPCUnitLinksNeedsUpdate(const Options, SearchPath, function LastFPCUnitLinksNeedsUpdate(const Options, SearchPath,
FPCSrcDir: string): boolean; FPCSrcDir: string): boolean;
@ -284,11 +279,6 @@ type
property FindAutoComplete: boolean read FFindAutoComplete property FindAutoComplete: boolean read FFindAutoComplete
write FFindAutoComplete; write FFindAutoComplete;
// Unit dependencies
property UnitDependenciesHistory: TStringList read FUnitDependenciesHistory;
property MaxUnitDependenciesHistory: integer
read FMaxUnitDependenciesHistory write FMaxUnitDependenciesHistory;
// FPC config cache // FPC config cache
property FPCConfigCache: TFPCConfigCache read FFPCConfigCache; property FPCConfigCache: TFPCConfigCache read FFPCConfigCache;
@ -428,10 +418,6 @@ begin
FFindInFilesSearchOptions:=LazFindInFileSearchOptionsDefault; FFindInFilesSearchOptions:=LazFindInFileSearchOptionsDefault;
FFindOptions:=LazFindSearchOptionsDefault; FFindOptions:=LazFindSearchOptionsDefault;
// unit dependencies
FUnitDependenciesHistory:=TStringList.Create;
FMaxUnitDependenciesHistory:=20;
// file dialog // file dialog
FFileDialogSettings.HistoryList:=TStringList.Create; FFileDialogSettings.HistoryList:=TStringList.Create;
FFileDialogSettings.MaxHistory:=20; FFileDialogSettings.MaxHistory:=20;
@ -455,7 +441,6 @@ begin
FreeAndNil(FIgnores); FreeAndNil(FIgnores);
FreeAndNil(FHistoryLists); FreeAndNil(FHistoryLists);
FreeAndNil(FFileDialogSettings.HistoryList); FreeAndNil(FFileDialogSettings.HistoryList);
FreeAndNil(FUnitDependenciesHistory);
FreeAndNil(FFindHistory); FreeAndNil(FFindHistory);
FreeAndNil(FReplaceHistory); FreeAndNil(FReplaceHistory);
FreeAndNil(FFindInFilesPathHistory); FreeAndNil(FFindInFilesPathHistory);
@ -527,8 +512,6 @@ begin
Include(FFindOptions,FindOption); Include(FFindOptions,FindOption);
end; end;
// unit dependencies
LoadRecentList(XMLConfig,FUnitDependenciesHistory,Path+'UnitDependencies/History/',rltFile);
// fpc config cache // fpc config cache
FFPCConfigCache.LoadFromXMLConfig(XMLConfig,'FPCConfigCache/'); FFPCConfigCache.LoadFromXMLConfig(XMLConfig,'FPCConfigCache/');
// file dialog // file dialog
@ -605,8 +588,6 @@ begin
FindOption in LazFindSearchOptionsDefault); FindOption in LazFindSearchOptionsDefault);
end; end;
// unit dependencies
SaveRecentList(XMLConfig,FUnitDependenciesHistory,Path+'UnitDependencies/History/');
// fpc config cache // fpc config cache
FFPCConfigCache.SaveToXMLConfig(XMLConfig,'FPCConfigCache/'); FFPCConfigCache.SaveToXMLConfig(XMLConfig,'FPCConfigCache/');
// file dialog // file dialog
@ -719,12 +700,6 @@ begin
Result:= AddToRecentList(AMaskStr,FFindInFilesMaskHistory,FMaxFindHistory,rltFile); Result:= AddToRecentList(AMaskStr,FFindInFilesMaskHistory,FMaxFindHistory,rltFile);
end; end;
function TInputHistories.AddToUnitDependenciesHistory(const ARootFilename: String): boolean;
begin
Result:=AddToRecentList(ARootFilename,FUnitDependenciesHistory,
FMaxUnitDependenciesHistory,rltFile);
end;
function TInputHistories.LastFPCUnitLinksValid: boolean; function TInputHistories.LastFPCUnitLinksValid: boolean;
begin begin
Result:=FFPCConfigCache.Valid(false); Result:=FFPCConfigCache.Valid(false);

View File

@ -574,11 +574,6 @@ type
procedure CheckDirIsInIncludeSearchPath(UnitInfo: TUnitInfo; procedure CheckDirIsInIncludeSearchPath(UnitInfo: TUnitInfo;
AllowAddingDependencies: boolean; out DependencyAdded: boolean); AllowAddingDependencies: boolean; out DependencyAdded: boolean);
// unit dependencies events
procedure UnitDependenciesViewAccessingSources(Sender: TObject);
function UnitDependenciesViewGetProjectMainFilename(Sender: TObject): string;
procedure UnitDependenciesViewOpenFile(Sender: TObject; const Filename: string);
// code explorer events // code explorer events
procedure OnCodeExplorerGetDirectivesTree(Sender: TObject; procedure OnCodeExplorerGetDirectivesTree(Sender: TObject;
var ADirectivesTool: TDirectivesTool); var ADirectivesTool: TDirectivesTool);
@ -5908,27 +5903,7 @@ end;
procedure TMainIDE.DoViewUnitDependencies(Show: boolean); procedure TMainIDE.DoViewUnitDependencies(Show: boolean);
begin begin
if UnitDependenciesView=nil then begin ShowUnitDependencies(true,Show);
UnitDependenciesView:=TUnitDependenciesView.Create(OwningComponent);
UnitDependenciesView.OnAccessingSources:=
@UnitDependenciesViewAccessingSources;
UnitDependenciesView.OnGetProjectMainFilename:=
@UnitDependenciesViewGetProjectMainFilename;
UnitDependenciesView.OnOpenFile:=@UnitDependenciesViewOpenFile;
end;
if (Project1 <> nil) and (not UnitDependenciesView.RootValid) then begin
if Project1.MainUnitID>=0 then begin
UnitDependenciesView.BeginUpdate;
UnitDependenciesView.RootFilename:=Project1.MainUnitInfo.Filename;
UnitDependenciesView.RootShortFilename:=
ExtractFilename(Project1.MainUnitInfo.Filename);
UnitDependenciesView.EndUpdate;
end;
end;
if Show then
IDEWindowCreators.ShowForm(UnitDependenciesView,true);
end; end;
procedure TMainIDE.DoViewJumpHistory(Show: boolean); procedure TMainIDE.DoViewJumpHistory(Show: boolean);
@ -6101,7 +6076,7 @@ begin
else if ItIs(NonModalIDEWindowNames[nmiwUnitDependenciesName]) then else if ItIs(NonModalIDEWindowNames[nmiwUnitDependenciesName]) then
begin begin
DoViewUnitDependencies(false); DoViewUnitDependencies(false);
AForm:=UnitDependenciesView; AForm:=UnitDependenciesWindow;
end end
else if ItIs(NonModalIDEWindowNames[nmiwCodeExplorerName]) then else if ItIs(NonModalIDEWindowNames[nmiwCodeExplorerName]) then
begin begin
@ -9660,24 +9635,6 @@ end;
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
procedure TMainIDE.UnitDependenciesViewAccessingSources(Sender: TObject);
begin
SaveSourceEditorChangesToCodeCache(nil);
end;
function TMainIDE.UnitDependenciesViewGetProjectMainFilename(Sender: TObject): string;
begin
if (Project1<>nil) and (Project1.MainUnitID>=0) then
Result:=Project1.MainUnitInfo.Filename
else
Result:='';
end;
procedure TMainIDE.UnitDependenciesViewOpenFile(Sender: TObject; const Filename: string);
begin
DoOpenEditorFile(Filename,-1,-1,[]);
end;
procedure TMainIDE.OnCodeExplorerGetDirectivesTree(Sender: TObject; procedure TMainIDE.OnCodeExplorerGetDirectivesTree(Sender: TObject;
var ADirectivesTool: TDirectivesTool); var ADirectivesTool: TDirectivesTool);
var var

View File

@ -678,6 +678,7 @@ begin
CreateMenuItem(ParentMI,itmViewCodeExplorer,'itmViewCodeExplorer',lisMenuViewCodeExplorer, 'menu_view_code_explorer'); CreateMenuItem(ParentMI,itmViewCodeExplorer,'itmViewCodeExplorer',lisMenuViewCodeExplorer, 'menu_view_code_explorer');
CreateMenuItem(ParentMI,itmViewFPDocEditor,'itmViewFPDocEditor',lisFPDocEditor); CreateMenuItem(ParentMI,itmViewFPDocEditor,'itmViewFPDocEditor',lisFPDocEditor);
CreateMenuItem(ParentMI,itmViewCodeBrowser,'itmViewCodeBrowser',lisMenuViewCodeBrowser, 'menu_view_code_browser'); CreateMenuItem(ParentMI,itmViewCodeBrowser,'itmViewCodeBrowser',lisMenuViewCodeBrowser, 'menu_view_code_browser');
CreateMenuItem(ParentMI,itmSourceUnitDependencies,'itmSourceUnitDependencies',lisMenuViewUnitDependencies);
CreateMenuItem(ParentMI,itmViewRestrictionBrowser,'itmViewRestrictionBrowser',lisMenuViewRestrictionBrowser, 'menu_view_rectriction_browser'); CreateMenuItem(ParentMI,itmViewRestrictionBrowser,'itmViewRestrictionBrowser',lisMenuViewRestrictionBrowser, 'menu_view_rectriction_browser');
CreateMenuItem(ParentMI,itmViewComponents,'itmViewComponents',lisMenuViewComponents); CreateMenuItem(ParentMI,itmViewComponents,'itmViewComponents',lisMenuViewComponents);
CreateMenuItem(ParentMI,itmJumpHistory,'itmJumpHistory',lisMenuViewJumpHistory); CreateMenuItem(ParentMI,itmJumpHistory,'itmJumpHistory',lisMenuViewJumpHistory);
@ -798,7 +799,6 @@ begin
CreateMenuSeparatorSection(mnuSource,itmSourceTools,'itmSourceTools'); CreateMenuSeparatorSection(mnuSource,itmSourceTools,'itmSourceTools');
ParentMI:=itmSourceTools; ParentMI:=itmSourceTools;
CreateMenuItem(ParentMI,itmSourceUnitInfo,'itmViewUnitInfo',lisMenuViewUnitInfo, 'menu_view_unit_info'); CreateMenuItem(ParentMI,itmSourceUnitInfo,'itmViewUnitInfo',lisMenuViewUnitInfo, 'menu_view_unit_info');
CreateMenuItem(ParentMI,itmSourceUnitDependencies,'itmSourceUnitDependencies',lisMenuViewUnitDependencies);
end; end;
end; end;

View File

@ -1,92 +1,412 @@
object UnitDependenciesView: TUnitDependenciesView object UnitDependenciesWindow: TUnitDependenciesWindow
Left = 560 Left = 497
Height = 300 Height = 440
Top = 359 Top = 150
Width = 400 Width = 620
ActiveControl = UnitHistoryList Caption = 'UnitDependenciesWindow'
Caption = 'UnitDependenciesView' ClientHeight = 440
ClientHeight = 300 ClientWidth = 620
ClientWidth = 400 OnCreate = FormCreate
KeyPreview = True OnDestroy = FormDestroy
Position = poScreenCenter Position = poScreenCenter
LCLVersion = '0.9.29' LCLVersion = '1.1'
object ToolBar: TToolBar object MainPageControl: TPageControl
Left = 0 Left = 0
Height = 48 Height = 414
Top = 0 Top = 0
Width = 400 Width = 620
ButtonHeight = 46 ActivePage = UnitsTabSheet
ButtonWidth = 47 Align = alClient
Caption = 'ToolBar' TabIndex = 0
TabOrder = 0
object UnitsTabSheet: TTabSheet
Caption = 'UnitsTabSheet'
ClientHeight = 375
ClientWidth = 614
object ScopePanel: TPanel
Left = 0
Height = 47
Top = 0
Width = 614
Align = alTop
AutoSize = True
ClientHeight = 47
ClientWidth = 614
TabOrder = 0
object SearchCustomFilesCheckBox: TCheckBox
AnchorSideLeft.Control = ScopePanel
AnchorSideTop.Control = SearchCustomFilesComboBox
AnchorSideTop.Side = asrCenter
Left = 3
Height = 18
Top = 4
Width = 201
BorderSpacing.Around = 2
Caption = 'SearchCustomFilesCheckBox'
OnChange = SearchCustomFilesCheckBoxChange
ParentShowHint = False ParentShowHint = False
ShowCaptions = True
ShowHint = True ShowHint = True
TabOrder = 0 TabOrder = 0
object ShowProjectButton: TToolButton
Left = 219
Top = 2
Caption = 'ShowProjectButton'
OnClick = ShowProjectButtonClick
end end
object SelectUnitButton: TToolButton object SearchCustomFilesBrowseButton: TButton
Left = 1 AnchorSideLeft.Side = asrBottom
Top = 2 AnchorSideTop.Control = SearchCustomFilesComboBox
Caption = 'SelectUnitButton' AnchorSideTop.Side = asrCenter
OnClick = SelectUnitButtonClick AnchorSideRight.Control = ScopePanel
AnchorSideRight.Side = asrBottom
Left = 543
Height = 20
Top = 3
Width = 70
Anchors = [akTop, akRight]
AutoSize = True
Caption = 'Browse'
OnClick = SearchCustomFilesBrowseButtonClick
TabOrder = 1
end end
object RefreshButton: TToolButton object SearchCustomFilesComboBox: TComboBox
Left = 119 AnchorSideLeft.Control = SearchCustomFilesCheckBox
Top = 2 AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ScopePanel
AnchorSideRight.Control = SearchCustomFilesBrowseButton
Left = 206
Height = 21
Top = 3
Width = 335
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 2
ItemHeight = 0
OnChange = SearchCustomFilesComboBoxChange
TabOrder = 2
Text = 'SearchCustomFilesComboBox'
end
object SearchPkgsCheckBox: TCheckBox
AnchorSideLeft.Control = ScopePanel
AnchorSideTop.Control = SearchCustomFilesComboBox
AnchorSideTop.Side = asrBottom
Left = 3
Height = 18
Top = 26
Width = 153
BorderSpacing.Around = 2
Caption = 'SearchPkgsCheckBox'
OnChange = SearchPkgsCheckBoxChange
TabOrder = 3
end
object SearchSrcEditCheckBox: TCheckBox
AnchorSideLeft.Control = SearchPkgsCheckBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = SearchPkgsCheckBox
AnchorSideTop.Side = asrCenter
Left = 173
Height = 18
Top = 26
Width = 167
BorderSpacing.Left = 15
BorderSpacing.Around = 2
Caption = 'SearchSrcEditCheckBox'
Checked = True
OnChange = SearchSrcEditCheckBoxChange
State = cbChecked
TabOrder = 4
end
end
object AllUnitsGroupBox: TGroupBox
Left = 0
Height = 328
Top = 47
Width = 248
Align = alLeft
Caption = 'AllUnitsGroupBox'
ClientHeight = 306
ClientWidth = 240
TabOrder = 1
object AllUnitsShowGroupNodesSpeedButton: TSpeedButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AllUnitsFilterEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = AllUnitsShowDirsSpeedButton
Left = 194
Height = 22
Top = 0
Width = 23
AllowAllUp = True
Anchors = [akTop, akRight]
GroupIndex = 12
OnClick = AllUnitsShowGroupNodesSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object AllUnitsShowDirsSpeedButton: TSpeedButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AllUnitsFilterEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = AllUnitsGroupBox
AnchorSideRight.Side = asrBottom
Left = 217
Height = 22
Top = 0
Width = 23
AllowAllUp = True
Anchors = [akTop, akRight]
GroupIndex = 13
OnClick = AllUnitsShowDirsSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object AllUnitsFilterEdit: TEdit
AnchorSideLeft.Control = AllUnitsGroupBox
AnchorSideTop.Control = AllUnitsGroupBox
AnchorSideRight.Control = AllUnitsShowGroupNodesSpeedButton
Left = 0
Height = 22
Top = 0
Width = 194
Anchors = [akTop, akLeft, akRight]
OnChange = AllUnitsFilterEditChange
OnEnter = AllUnitsFilterEditEnter
OnExit = AllUnitsFilterEditExit
TabOrder = 0
Text = 'AllUnitsFilterEdit'
end
object AllUnitsSearchNextSpeedButton: TSpeedButton
AnchorSideTop.Control = AllUnitsSearchEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = AllUnitsSearchPrevSpeedButton
Left = 194
Height = 22
Top = 284
Width = 23
Anchors = [akTop, akRight]
OnClick = AllUnitsSearchNextSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object AllUnitsSearchPrevSpeedButton: TSpeedButton
AnchorSideTop.Control = AllUnitsSearchEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = AllUnitsGroupBox
AnchorSideRight.Side = asrBottom
Left = 217
Height = 22
Top = 284
Width = 23
Anchors = [akTop, akRight]
OnClick = AllUnitsSearchPrevSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object AllUnitsTreeView: TTreeView
AnchorSideLeft.Control = AllUnitsGroupBox
AnchorSideTop.Control = AllUnitsFilterEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = AllUnitsGroupBox
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = AllUnitsSearchEdit
Left = 0
Height = 262
Top = 22
Width = 240
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 18
HotTrack = True
MultiSelect = True
ParentShowHint = False
PopupMenu = UnitsTVPopupMenu
ReadOnly = True
RightClickSelect = True
ShowHint = True
ShowRoot = False
TabOrder = 1
OnAdvancedCustomDrawItem = AllUnitsTreeViewAdvancedCustomDrawItem
OnMouseDown = UnitsTreeViewMouseDown
OnSelectionChanged = AllUnitsTreeViewSelectionChanged
OnShowHint = UnitsTreeViewShowHint
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoHotTrack, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoToolTips, tvoThemedDraw]
end
object AllUnitsSearchEdit: TEdit
AnchorSideLeft.Control = AllUnitsGroupBox
AnchorSideRight.Control = AllUnitsSearchNextSpeedButton
AnchorSideBottom.Control = AllUnitsGroupBox
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 22
Top = 284
Width = 194
Anchors = [akLeft, akRight, akBottom]
OnChange = AllUnitsSearchEditChange
OnEnter = AllUnitsSearchEditEnter
OnExit = AllUnitsSearchEditExit
TabOrder = 2
Text = 'AllUnitsSearchEdit'
end
end
object UnitsSplitter: TSplitter
Left = 248
Height = 328
Top = 47
Width = 5
end
object SelectedUnitsGroupBox: TGroupBox
Left = 253
Height = 328
Top = 47
Width = 361
Align = alClient
Caption = 'SelectedUnitsGroupBox'
ClientHeight = 306
ClientWidth = 353
TabOrder = 3
object SelUnitsSearchNextSpeedButton: TSpeedButton
AnchorSideTop.Control = SelUnitsSearchEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = SelUnitsSearchPrevSpeedButton
Left = 307
Height = 22
Top = 284
Width = 23
Anchors = [akTop, akRight]
OnClick = SelUnitsSearchNextSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object SelUnitsSearchPrevSpeedButton: TSpeedButton
AnchorSideTop.Control = SelUnitsSearchEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = SelectedUnitsGroupBox
AnchorSideRight.Side = asrBottom
Left = 330
Height = 22
Top = 284
Width = 23
Anchors = [akTop, akRight]
OnClick = SelUnitsSearchPrevSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object SelUnitsSearchEdit: TEdit
AnchorSideLeft.Control = SelectedUnitsGroupBox
AnchorSideRight.Control = SelUnitsSearchNextSpeedButton
AnchorSideBottom.Control = SelectedUnitsGroupBox
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 22
Top = 284
Width = 307
Anchors = [akLeft, akRight, akBottom]
OnChange = SelUnitsSearchEditChange
OnEnter = SelUnitsSearchEditEnter
OnExit = SelUnitsSearchEditExit
TabOrder = 0
Text = 'SelUnitsSearchEdit'
end
object SelUnitsTreeView: TTreeView
AnchorSideLeft.Control = SelectedUnitsGroupBox
AnchorSideTop.Control = SelectedUnitsGroupBox
AnchorSideRight.Control = SelectedUnitsGroupBox
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = SelUnitsSearchEdit
Left = 0
Height = 284
Top = 0
Width = 353
Anchors = [akTop, akLeft, akRight, akBottom]
DefaultItemHeight = 18
HotTrack = True
ParentShowHint = False
PopupMenu = UnitsTVPopupMenu
ReadOnly = True
RightClickSelect = True
ShowHint = True
ShowRoot = False
TabOrder = 1
OnExpanding = SelUnitsTreeViewExpanding
OnMouseDown = UnitsTreeViewMouseDown
OnShowHint = UnitsTreeViewShowHint
Options = [tvoAutoItemHeight, tvoHideSelection, tvoHotTrack, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoToolTips, tvoThemedDraw]
end
end
end
object GroupsTabSheet: TTabSheet
Caption = 'GroupsTabSheet'
ClientHeight = 378
ClientWidth = 616
object GroupsSplitter: TSplitter
Cursor = crVSplit
Left = 0
Height = 5
Top = 0
Width = 665
Align = alTop
ResizeAnchor = akTop
end
end
end
object StatusPanel: TPanel
Left = 0
Height = 26
Top = 414
Width = 620
Align = alBottom
AutoSize = True
ClientHeight = 26
ClientWidth = 620
TabOrder = 1
object ProgressBar1: TProgressBar
AnchorSideLeft.Control = StatsLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = RefreshButton
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = RefreshButton
AnchorSideBottom.Side = asrBottom
Left = 77
Height = 20
Top = 3
Width = 425
Anchors = [akTop, akLeft, akRight]
TabOrder = 0
end
object RefreshButton: TButton
Left = 504
Height = 20
Top = 3
Width = 113
Align = alRight
AutoSize = True
BorderSpacing.Around = 2
Caption = 'RefreshButton' Caption = 'RefreshButton'
OnClick = RefreshButtonClick OnClick = RefreshButtonClick
end
end
object UnitHistoryList: TComboBox
Left = 6
Height = 27
Top = 54
Width = 388
Align = alTop
BorderSpacing.Around = 6
ItemHeight = 0
OnEditingDone = UnitHistoryListEditingDone
TabOrder = 1 TabOrder = 1
Text = 'UnitHistoryList'
end end
object CloseButton: TBitBtn object StatsLabel: TLabel
AnchorSideRight.Control = Owner AnchorSideLeft.Control = StatusPanel
AnchorSideRight.Side = asrBottom AnchorSideTop.Control = RefreshButton
AnchorSideBottom.Control = Owner AnchorSideTop.Side = asrCenter
AnchorSideBottom.Side = asrBottom Left = 7
Left = 309 Height = 16
Height = 30 Top = 5
Top = 264 Width = 64
Width = 85 BorderSpacing.Left = 6
Anchors = [akRight, akBottom] BorderSpacing.Right = 6
AutoSize = True Caption = 'StatsLabel'
BorderSpacing.Around = 6 ParentColor = False
Caption = '&Close' end
Constraints.MinWidth = 75 end
Kind = bkClose object UnitsTVPopupMenu: TPopupMenu
NumGlyphs = 0 OnPopup = UnitsTVPopupMenuPopup
TabOrder = 2 left = 120
top = 193
object UnitsTVCopyFilenameMenuItem: TMenuItem
Caption = 'UnitsTVCopyFilenameMenuItem'
OnClick = UnitsTVCopyFilenameMenuItemClick
end
object UnitsTVExpandAllMenuItem: TMenuItem
Caption = 'UnitsTVExpandAllMenuItem'
OnClick = UnitsTVExpandAllMenuItemClick
end
object UnitsTVCollapseAllMenuItem: TMenuItem
Caption = 'UnitsTVCollapseAllMenuItem'
OnClick = UnitsTVCollapseAllMenuItemClick
end end
object UnitTreeView: TTreeView
AnchorSideBottom.Control = CloseButton
Left = 6
Height = 171
Top = 87
Width = 388
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
DefaultItemHeight = 19
ReadOnly = True
TabOrder = 3
OnAdvancedCustomDrawItem = UnitTreeViewAdvancedCustomDrawItem
OnCollapsing = UnitTreeViewCollapsing
OnExpanding = UnitTreeViewExpanding
OnMouseDown = UnitTreeViewMouseDown
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
end end
end end

File diff suppressed because it is too large Load Diff