diff --git a/.gitattributes b/.gitattributes
index 8279d638a4..5286341f8a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1345,14 +1345,13 @@ components/dockedformeditor/source/dockeddesignform.pas svneol=native#text/pasca
components/dockedformeditor/source/dockedformaccesses.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedgrip.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedmainide.pas svneol=native#text/pascal
-components/dockedformeditor/source/dockedmodulepagecontrol.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedoptionsframe.lfm svneol=native#text/plain
components/dockedformeditor/source/dockedoptionsframe.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedoptionside.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedregister.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedresizecontrol.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedresizer.pas svneol=native#text/pascal
-components/dockedformeditor/source/dockedsourceeditorpagecontrols.pas svneol=native#text/pascal
+components/dockedformeditor/source/dockedsourcepagecontrol.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedsourcewindow.pas svneol=native#text/pascal
components/dockedformeditor/source/dockedtools.pas svneol=native#text/pascal
components/education/README.txt svneol=native#text/plain
diff --git a/components/dockedformeditor/dockedformeditor.lpk b/components/dockedformeditor/dockedformeditor.lpk
index 404c6b076e..77d395bfd9 100644
--- a/components/dockedformeditor/dockedformeditor.lpk
+++ b/components/dockedformeditor/dockedformeditor.lpk
@@ -22,7 +22,7 @@
-
+
@@ -62,41 +62,37 @@
-
-
+
+
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/components/dockedformeditor/dockedformeditor.pas b/components/dockedformeditor/dockedformeditor.pas
index 856e524ca7..1feb64c3e3 100644
--- a/components/dockedformeditor/dockedformeditor.pas
+++ b/components/dockedformeditor/dockedformeditor.pas
@@ -10,10 +10,9 @@ interface
uses
DockedRegister, DockedStrConsts, DockedFormAccesses, DockedMainIDE,
DockedResizer, DockedOptionsIDE, DockedOptionsFrame, DockedTools,
- DockedDesignForm, DockedModulePageControl, DockedSourceWindow,
- DockedSourceEditorPageControls, DockedAnchorDesigner,
- DockedBasicAnchorDesigner, DockedAnchorControl, DockedGrip,
- DockedResizeControl, LazarusPackageIntf;
+ DockedDesignForm, DockedSourcePageControl, DockedSourceWindow,
+ DockedAnchorDesigner, DockedBasicAnchorDesigner, DockedAnchorControl,
+ DockedGrip, DockedResizeControl, LazarusPackageIntf;
implementation
diff --git a/components/dockedformeditor/source/dockedmainide.pas b/components/dockedformeditor/source/dockedmainide.pas
index 00787b9086..900ad59de2 100644
--- a/components/dockedformeditor/source/dockedmainide.pas
+++ b/components/dockedformeditor/source/dockedmainide.pas
@@ -37,8 +37,8 @@ uses
// IdeIntf
SrcEditorIntf, LazIDEIntf, FormEditingIntf, PropEdits, LazLoggerBase,
// DockedFormEditor
- DockedResizer, DockedModulePageControl, DockedTools,
- DockedSourceEditorPageControls, DockedOptionsIDE, DockedDesignForm,
+ DockedResizer, DockedSourcePageControl, DockedTools,
+ DockedOptionsIDE, DockedDesignForm,
DockedSourceWindow;
type
@@ -70,7 +70,7 @@ type
TDockedMainIDE = class(TObject)
public
- class function GetCurrentPageControl: TModulePageControl;
+ class function GetCurrentPageControl: TSourcePageControl;
class procedure Screen_FormAdded(Sender: TObject; AForm: TCustomForm);
class procedure Screen_FormDel(Sender: TObject; AForm: TCustomForm);
@@ -115,11 +115,11 @@ end;
function TDockedTabMaster.GetTabDisplayStateEditor(ASourceEditor: TSourceEditorInterface): TTabDisplayState;
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
if ASourceEditor = nil then
Exit(tdsNone);
- LPageCtrl := SourceWindows.FindModulePageControl(ASourceEditor);
+ LPageCtrl := SourceWindows.FindPageControl(ASourceEditor);
if LPageCtrl = nil then Exit(tdsNone);
case LPageCtrl.PageIndex of
0: Exit(tdsCode);
@@ -196,22 +196,22 @@ end;
procedure TDockedTabMaster.ShowCode(ASourceEditor: TSourceEditorInterface);
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedTabMaster.ShowCode'); {$ENDIF}
if ASourceEditor = nil then Exit;
- LPageCtrl := SourceWindows.FindModulePageControl(ASourceEditor);
+ LPageCtrl := SourceWindows.FindPageControl(ASourceEditor);
LPageCtrl.ShowCode;
ASourceEditor.EditorControl.SetFocus;
end;
procedure TDockedTabMaster.ShowDesigner(ASourceEditor: TSourceEditorInterface; AIndex: Integer);
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedTabMaster.ShowDesigner'); {$ENDIF}
if ASourceEditor = nil then Exit;
- LPageCtrl := SourceWindows.FindModulePageControl(ASourceEditor);
+ LPageCtrl := SourceWindows.FindPageControl(ASourceEditor);
LPageCtrl.ShowDesigner(AIndex);
end;
@@ -227,10 +227,10 @@ end;
procedure TDockedTabMaster.OptionsModified;
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
LPageIndex: Integer;
begin
- LPageCtrl := SourceWindows.LastActiveModulePageControl;
+ LPageCtrl := SourceWindows.LastActivePageControl;
LPageIndex := LPageCtrl.PageIndex;
DesignForms.RemoveAllAnchorDesigner;
SourceWindows.ShowCodeTabSkipCurrent(nil, nil);
@@ -243,7 +243,7 @@ end;
{ TDockedMainIDE }
-class function TDockedMainIDE.GetCurrentPageControl: TModulePageControl;
+class function TDockedMainIDE.GetCurrentPageControl: TSourcePageControl;
var
LForm: TCustomForm;
LDesignForm: TDesignForm;
@@ -256,14 +256,14 @@ begin
if LDesignForm = nil then Exit;
LSourceWindowIntf := LDesignForm.LastActiveSourceWindow;
if not Assigned(LSourceWindowIntf) then Exit;
- Result := SourceWindows.FindModulePageControl(LSourceWindowIntf.ActiveEditor);
+ Result := SourceWindows.FindPageControl(LSourceWindowIntf.ActiveEditor);
end;
class procedure TDockedMainIDE.Screen_FormAdded(Sender: TObject; AForm: TCustomForm);
var
LSourceEditor: TSourceEditorInterface;
LDesignForm: TDesignForm;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
if IsFormDesign(AForm) then
begin
@@ -279,7 +279,7 @@ begin
LSourceEditor := FindSourceEditorForDesigner(AForm.Designer);
if LSourceEditor <> nil then
begin
- LPageCtrl := SourceWindows.FindModulePageControl(LSourceEditor);
+ LPageCtrl := SourceWindows.FindPageControl(LSourceEditor);
if LPageCtrl <> nil then
begin
LPageCtrl.DesignForm := LDesignForm;
@@ -298,7 +298,7 @@ end;
class procedure TDockedMainIDE.Screen_FormDel(Sender: TObject; AForm: TCustomForm);
var
LSourceWindow: TSourceWindow;
- LSourceEditorPageControl: TSourceEditorPageControl;
+ LPageCtrl: TSourcePageControl;
begin
if IsFormDesign(AForm) then
begin
@@ -312,12 +312,12 @@ begin
// don't set ActiveDesignForm := nil! we can't call OnChange tab, because tab don't exist anymore
LSourceWindow.RemoveActiveDesignForm;
- for LSourceEditorPageControl in LSourceWindow.PageControlList do
- if LSourceEditorPageControl.PageControl.DesignForm <> nil then
- if LSourceEditorPageControl.PageControl.DesignForm.Form = AForm then
+ for LPageCtrl in LSourceWindow.PageControlList do
+ if LPageCtrl.DesignForm <> nil then
+ if LPageCtrl.DesignForm.Form = AForm then
begin
- LSourceEditorPageControl.PageControl.DesignForm := nil;
- LSourceEditorPageControl.PageControl.PageIndex := 0;
+ LPageCtrl.DesignForm := nil;
+ LPageCtrl.PageIndex := 0;
end;
end;
DesignForms.Remove(AForm);
@@ -383,7 +383,7 @@ var
LDesigner: TIDesigner;
LSourceEditor: TSourceEditorInterface;
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
LSourceWindowIntf: TSourceEditorWindowInterface;
LDesignForm: TDesignForm;
begin
@@ -395,7 +395,7 @@ begin
'] SourceWindow[' + SourceWindowCaption(LSourceEditor) + ']');
{$ENDIF}
// if we create directly new project then Activate is called without EditorCreate...
- if not (LSourceEditor.EditorControl.Parent.Parent is TModulePageControl) then
+ if not (LSourceEditor.EditorControl.Parent.Parent is TSourcePageControl) then
begin
// possible is situation when we moved tab into other window
// then was not called event EditorDestroy - that generates problems with switching tabs
@@ -405,8 +405,8 @@ begin
EditorCreate(Sender);
end;
LDesigner := LSourceEditor.GetDesigner(True);
- // should be performed during EditorCreate (parent of parent is module page ctrl)
- LPageCtrl := TModulePageControl(LSourceEditor.EditorControl.Parent.Parent);
+ // should be performed during EditorCreate (parent of parent is SourcePageControl)
+ LPageCtrl := TSourcePageControl(LSourceEditor.EditorControl.Parent.Parent);
if LPageCtrl = nil then Exit;
LDesignForm := SourceWindows.FindDesignForm(LPageCtrl);
@@ -466,25 +466,21 @@ class procedure TDockedMainIDE.EditorCreate(Sender: TObject);
var
LSourceEditor: TSourceEditorInterface;
LSourceWindowIntf: TSourceEditorWindowInterface;
- LParent: TWinControl;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedMainIDE.EditorCreate'); {$ENDIF}
LSourceEditor := Sender as TSourceEditorInterface;
- if LSourceEditor.EditorControl.Parent.Parent is TModulePageControl then Exit;
- LParent := LSourceEditor.EditorControl.Parent;
- LPageCtrl := TModulePageControl.Create(LSourceEditor.EditorControl.Owner);
- LSourceEditor.EditorControl.Parent := LPageCtrl.Pages[0]; // ! SynEdit :)
+ if LSourceEditor.EditorControl.Parent.Parent is TSourcePageControl then Exit;
+ LPageCtrl := TSourcePageControl.Create(LSourceEditor);
LPageCtrl.OnChange := @TabChange;
- LPageCtrl.Parent := LParent;
- LSourceWindowIntf := TSourceEditorWindowInterface(LPageCtrl.Owner);
- SourceWindows.SourceWindow[LSourceWindowIntf].AddPageCtrl(LSourceEditor, LPageCtrl);
+ LSourceWindowIntf := SourceWindowGet(LSourceEditor);
+ SourceWindows.SourceWindow[LSourceWindowIntf].AddPageCtrl(LPageCtrl);
end;
class procedure TDockedMainIDE.EditorDestroyed(Sender: TObject);
var
LSourceEditor: TSourceEditorInterface;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
LSourceWindowIntf: TSourceEditorWindowInterface;
LDesignForm: TDesignForm;
begin
@@ -498,9 +494,9 @@ begin
// parent don't exist anymore and we must search in each window...
if Sender = nil then // but not for Sender = nil :P
- LPageCtrl := SourceWindows.LastActiveModulePageControl
+ LPageCtrl := SourceWindows.LastActivePageControl
else
- LPageCtrl := SourceWindows.FindModulePageControl(LSourceEditor);
+ LPageCtrl := SourceWindows.FindPageControl(LSourceEditor);
if LPageCtrl = nil then Exit;
@@ -528,7 +524,7 @@ var
LSourceWindow: TSourceWindow;
LDesigner: TIDesigner;
LDesignForm: TDesignForm;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedMainIDE.TabChange'); {$ENDIF}
// activate proper source editor window when user is clicking on page.
@@ -537,11 +533,10 @@ begin
if LSourceWindowIntf <> SourceEditorManagerIntf.ActiveSourceWindow then
SourceEditorManagerIntf.ActiveSourceWindow := LSourceWindowIntf;
- LPageCtrl := TModulePageControl(Sender);
+ LPageCtrl := TSourcePageControl(Sender);
if LSourceWindowIntf.ActiveEditor = nil then Exit;
if LPageCtrl = nil then Exit;
- // in case there is no module and is visible page other than code page.
LDesigner := LSourceWindowIntf.ActiveEditor.GetDesigner(True);
LDesignForm := DesignForms.Find(LDesigner);
if LDesignForm = nil then Exit;
@@ -567,7 +562,7 @@ var
LSourceWindowIntf: TSourceEditorWindowInterface;
LSourceWindow: TSourceWindow;
LDesignForm: TDesignForm;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
LResizer: TResizer;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedMainIDE.GlobalSNOnChangeBounds'); {$ENDIF}
@@ -586,7 +581,7 @@ begin
LSourceWindow.ActiveDesignForm := LDesignForm;
if LDesignForm <> nil then
begin
- LPageCtrl := SourceWindows.FindModulePageControl(LSourceWindowIntf.ActiveEditor);
+ LPageCtrl := SourceWindows.FindPageControl(LSourceWindowIntf.ActiveEditor);
if not Assigned(LPageCtrl) then Exit;
LResizer := LPageCtrl.Resizer;
if not Assigned(LResizer) then Exit;
@@ -600,25 +595,25 @@ class procedure TDockedMainIDE.OnShowDesignerForm(Sender: TObject; AEditor: TSou
AComponentPaletteClassSelected: Boolean);
var
LDesignForm: TDesignForm;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
LSourceWindow: TSourceWindow;
LSourceEditorInterface: TSourceEditorInterface;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedMainIDE.OnShowDesignerForm'); {$ENDIF}
LDesignForm := DesignForms.Find(TCustomForm(Sender).Designer);
if (LDesignForm = nil) or LDesignForm.Hiding then Exit;
- LPageCtrl := SourceWindows.FindModulePageControl(SourceEditorManagerIntf.ActiveEditor);
+ LPageCtrl := SourceWindows.FindPageControl(SourceEditorManagerIntf.ActiveEditor);
if LPageCtrl = nil then Exit;
if AComponentPaletteClassSelected then
begin
- // if form is already opened do nothing, if not then show form for active module.
+ // if form is already opened do nothing, if not then show form
for LSourceWindow in SourceWindows do
begin
LSourceEditorInterface := LSourceWindow.SourceWindowIntf.ActiveEditor;
if (LSourceEditorInterface = nil) or (LSourceEditorInterface.GetDesigner(True) <> LDesignForm.Designer) then
Continue;
- LPageCtrl := SourceWindows.FindModulePageControl(LSourceEditorInterface);
+ LPageCtrl := SourceWindows.FindPageControl(LSourceEditorInterface);
if LPageCtrl.FormPageActive then
Exit;
end;
@@ -667,7 +662,7 @@ end;
class procedure TDockedMainIDE.OnDesignRefreshPropertyValues;
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
function RootIsSelected: Boolean;
var
@@ -702,7 +697,7 @@ end;
class procedure TDockedMainIDE.OnDesignModified(Sender: TObject);
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TDockedMainIDE.OnDesignModified'); {$ENDIF}
LPageCtrl := GetCurrentPageControl;
@@ -726,7 +721,7 @@ end;
class procedure TDockedMainIDE.OnDesignMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
{$IFDEF DEBUGDOCKEDFORMEDITOR} writeln('TDockedMainIDE.OnDesignMouseDown'); {$ENDIF}
LPageCtrl := GetCurrentPageControl;
diff --git a/components/dockedformeditor/source/dockedsourceeditorpagecontrols.pas b/components/dockedformeditor/source/dockedsourceeditorpagecontrols.pas
deleted file mode 100644
index 9461d48a20..0000000000
--- a/components/dockedformeditor/source/dockedsourceeditorpagecontrols.pas
+++ /dev/null
@@ -1,143 +0,0 @@
-{
- *****************************************************************************
- See the file COPYING.modifiedLGPL.txt, included in this distribution,
- for details about the license.
- *****************************************************************************
-
- Author: Michael W. Vogel
-
- List of ModulePageControls linked to SourceEditorInterfaces. This List is used
- in just one SourceEditor window.
-
-}
-
-unit DockedSourceEditorPageControls;
-
-{$mode objfpc}{$H+}
-{$modeswitch advancedrecords}
-{$modeswitch typehelpers}
-
-interface
-
-uses
- // RTL
- Classes, SysUtils, fgl,
- // LCL
- Forms,
- // IDEIntf
- SrcEditorIntf,
- // DockedFormEditor
- DockedModulePageControl;
-
-type
-
- { TSourceEditorPageControl }
-
- TSourceEditorPageControl = record
- PageControl: TModulePageControl;
- SourceEditor: TSourceEditorInterface;
- class operator = (Item1, Item2: TSourceEditorPageControl): Boolean;
- end;
-
- { TSourceEditorPageControls }
-
- TSourceEditorPageControls = class(specialize TFPGList)
- private
- function GetPageControl(ASrcEditor: TSourceEditorInterface): TModulePageControl;
- function GetSourceEditor(APageControl: TModulePageControl): TSourceEditorInterface;
- public
- procedure Add(ASrcEditor: TSourceEditorInterface; APageControl: TModulePageControl); overload;
- function Contains(APageControl: TModulePageControl): Boolean;
- function Contains(ASrcEditor: TSourceEditorInterface): Boolean;
- function IndexOf(APageControl: TModulePageControl): Integer; overload;
- function IndexOf(ASrcEditor: TSourceEditorInterface): Integer; overload;
- procedure Remove(ASrcEditor: TSourceEditorInterface); overload;
- public
- property PageControl[ASrcEditor: TSourceEditorInterface]: TModulePageControl read GetPageControl;
- property SourceEditor[APageControl: TModulePageControl]: TSourceEditorInterface read GetSourceEditor;
- end;
-
-implementation
-
-{ TSourceEditorPageControl }
-
-class operator TSourceEditorPageControl. = (Item1, Item2: TSourceEditorPageControl): Boolean;
-begin
- Result := (Item1.PageControl = Item2.PageControl) and
- (Item1.SourceEditor = Item2.SourceEditor);
-end;
-
-{ TSourceEditorPageControls }
-
-function TSourceEditorPageControls.GetPageControl(ASrcEditor: TSourceEditorInterface): TModulePageControl;
-var
- LIndex: Integer;
-begin
- LIndex := IndexOf(ASrcEditor);
- if LIndex >= 0 then
- Result := Items[LIndex].PageControl
- else
- Result := nil;
-end;
-
-function TSourceEditorPageControls.GetSourceEditor(APageControl: TModulePageControl): TSourceEditorInterface;
-var
- LIndex: Integer;
-begin
- LIndex := IndexOf(APageControl);
- if LIndex >= 0 then
- Result := Items[LIndex].SourceEditor
- else
- Result := nil;
-end;
-
-procedure TSourceEditorPageControls.Add(ASrcEditor: TSourceEditorInterface; APageControl: TModulePageControl);
-var
- LSourceEditorPageControl: TSourceEditorPageControl;
-begin
- LSourceEditorPageControl.SourceEditor := ASrcEditor;
- LSourceEditorPageControl.PageControl := APageControl;
- Add(LSourceEditorPageControl);
-end;
-
-function TSourceEditorPageControls.Contains(APageControl: TModulePageControl): Boolean;
-begin
- Result := IndexOf(APageControl) >= 0;
-end;
-
-function TSourceEditorPageControls.Contains(ASrcEditor: TSourceEditorInterface): Boolean;
-begin
- Result := IndexOf(ASrcEditor) >= 0;
-end;
-
-function TSourceEditorPageControls.IndexOf(APageControl: TModulePageControl): Integer;
-var
- i: Integer;
-begin
- Result := -1;
- for i := 0 to Count - 1 do
- if Items[i].PageControl = APageControl then
- Exit(i);
-end;
-
-function TSourceEditorPageControls.IndexOf(ASrcEditor: TSourceEditorInterface): Integer;
-var
- i: Integer;
-begin
- Result := -1;
- for i := 0 to Count - 1 do
- if Items[i].SourceEditor = ASrcEditor then
- Exit(i);
-end;
-
-procedure TSourceEditorPageControls.Remove(ASrcEditor: TSourceEditorInterface);
-var
- LIndex: Integer;
-begin
- LIndex := IndexOf(ASrcEditor);
- if LIndex < 0 then Exit;
- Delete(LIndex);
-end;
-
-end.
-
diff --git a/components/dockedformeditor/source/dockedmodulepagecontrol.pas b/components/dockedformeditor/source/dockedsourcepagecontrol.pas
similarity index 52%
rename from components/dockedformeditor/source/dockedmodulepagecontrol.pas
rename to components/dockedformeditor/source/dockedsourcepagecontrol.pas
index 924e7cdfd0..7e383478bf 100644
--- a/components/dockedformeditor/source/dockedmodulepagecontrol.pas
+++ b/components/dockedformeditor/source/dockedsourcepagecontrol.pas
@@ -12,7 +12,7 @@
}
-unit DockedModulePageControl;
+unit DockedSourcePageControl;
{$mode objfpc}{$H+}
{ $define DEBUGDOCKEDFORMEDITOR}
@@ -21,7 +21,7 @@ interface
uses
// RTL
- Classes, SysUtils,
+ Classes, SysUtils, fgl,
// LCL
Forms, ComCtrls, Controls, LCLProc,
// IDEIntf
@@ -32,23 +32,24 @@ uses
type
- { TModulePageControl }
+ { TSourcePageControl }
- TModulePageControl = class(TPageControl)
+ TSourcePageControl = class(TPageControl)
private
FDesignerSetFocusAsyncCount: Integer;
FDesignForm: TDesignForm;
FResizer: TResizer;
+ FSourceEditor: TSourceEditorInterface;
FTabSheetAnchors: TTabSheet;
FTabSheetCode: TTabSheet;
FTabSheetDesigner: TTabSheet;
procedure AsyncDesignerSetFocus({%H-}Data: PtrInt);
- procedure ModulePageControlMouseUp(Sender: TObject; {%H-}Button: TMouseButton; {%H-}Shift: TShiftState; {%H-}X, {%H-}Y: Integer);
+ procedure SourcePageControlMouseUp(Sender: TObject; {%H-}Button: TMouseButton; {%H-}Shift: TShiftState; {%H-}X, {%H-}Y: Integer);
procedure OnAdjustPage(Sender: TObject);
protected
procedure SetDesignForm(const AValue: TDesignForm); virtual;
public
- constructor Create(TheOwner: TComponent); override;
+ constructor Create(ASourceEditor: TSourceEditorInterface); reintroduce;
destructor Destroy; override;
procedure AdjustPage;
function AnchorPageActive: Boolean;
@@ -67,32 +68,50 @@ type
public
property DesignForm: TDesignForm read FDesignForm write SetDesignForm;
property Resizer: TResizer read FResizer;
+ property SourceEditor: TSourceEditorInterface read FSourceEditor;
+ end;
+
+ { TSourcePageControls }
+
+ TSourcePageControls = class(specialize TFPGList)
+ private
+ function GetPageControl(ASrcEditor: TSourceEditorInterface): TSourcePageControl;
+ function GetSourceEditor(APageControl: TSourcePageControl): TSourceEditorInterface;
+ public
+ function Contains(APageControl: TSourcePageControl): Boolean;
+ function Contains(ASrcEditor: TSourceEditorInterface): Boolean;
+ function IndexOf(APageControl: TSourcePageControl): Integer; overload;
+ function IndexOf(ASrcEditor: TSourceEditorInterface): Integer; overload;
+ procedure Remove(ASrcEditor: TSourceEditorInterface); overload;
+ public
+ property PageControl[ASrcEditor: TSourceEditorInterface]: TSourcePageControl read GetPageControl;
+ property SourceEditor[APageControl: TSourcePageControl]: TSourceEditorInterface read GetSourceEditor;
end;
implementation
-{ TModulePageControl }
+{ TSourcePageControl }
-procedure TModulePageControl.OnAdjustPage(Sender: TObject);
+procedure TSourcePageControl.OnAdjustPage(Sender: TObject);
begin
AdjustPage;
end;
-procedure TModulePageControl.ModulePageControlMouseUp(Sender: TObject;
+procedure TSourcePageControl.SourcePageControlMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if DesignerPageActive then
DesignerSetFocus;
end;
-procedure TModulePageControl.AsyncDesignerSetFocus(Data: PtrInt);
+procedure TSourcePageControl.AsyncDesignerSetFocus(Data: PtrInt);
begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.AsyncDesignerSetFocus'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.AsyncDesignerSetFocus'); {$ENDIF}
DesignerSetFocus;
FDesignerSetFocusAsyncCount := 0;
end;
-procedure TModulePageControl.SetDesignForm(const AValue: TDesignForm);
+procedure TSourcePageControl.SetDesignForm(const AValue: TDesignForm);
begin
if (AValue = FDesignForm) then
// for show lfm code, if we want after editing lfm go back to form without any error
@@ -101,7 +120,7 @@ begin
or ((AValue <> nil) and (FResizer.DesignForm = AValue)) then
Exit;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.SetDesignForm: ', DbgSName(AValue)); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.SetDesignForm: ', DbgSName(AValue)); {$ENDIF}
FDesignForm := AValue;
if AValue = nil then
@@ -117,111 +136,119 @@ begin
end;
end;
-constructor TModulePageControl.Create(TheOwner: TComponent);
+constructor TSourcePageControl.Create(ASourceEditor: TSourceEditorInterface);
+var
+ LParent: TWinControl;
begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.Create'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.Create'); {$ENDIF}
- inherited Create(TheOwner);
+ inherited Create(ASourceEditor.EditorControl.Owner);
+ FSourceEditor := ASourceEditor;
FDesignerSetFocusAsyncCount := 0;
FResizer := nil;
TabPosition := DockedOptions.TabPosition;
Align := alClient;
ShowTabs := False;
- OnMouseUp := @ModulePageControlMouseUp;
+ OnMouseUp := @SourcePageControlMouseUp;
FTabSheetCode := TTabSheet.Create(Self);
FTabSheetCode.PageControl := Self;
FTabSheetCode.Caption := SCode;
+
+ // place SynEdit into code tab
+ LParent := ASourceEditor.EditorControl.Parent;
+ ASourceEditor.EditorControl.Parent := FTabSheetCode;
+ Parent := LParent;
end;
-destructor TModulePageControl.Destroy;
+destructor TSourcePageControl.Destroy;
begin
DesignForm := nil;
inherited Destroy;
end;
-procedure TModulePageControl.AdjustPage;
+procedure TSourcePageControl.AdjustPage;
begin
if not DesignerPageActive then Exit;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.AdjustPage'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.AdjustPage'); {$ENDIF}
if Assigned(FResizer) then
FResizer.AdjustResizer(nil);
end;
-function TModulePageControl.AnchorPageActive: Boolean;
+function TSourcePageControl.AnchorPageActive: Boolean;
begin
Result := ActivePage = FTabSheetAnchors;
end;
-procedure TModulePageControl.CreateResizer;
+procedure TSourcePageControl.CreateResizer;
begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.CreateResizer'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.CreateResizer'); {$ENDIF}
if Assigned(FResizer) then
- raise Exception.Create('TModulePageControl.CreateResizer: Resizer already created');
+ raise Exception.Create('TSourcePageControl.CreateResizer: Resizer already created');
FResizer := TResizer.Create(Self);
if not Assigned(FTabSheetDesigner) then
CreateTabSheetDesigner;
FResizer.Parent := FTabSheetDesigner;
end;
-procedure TModulePageControl.CreateTabSheetAnchors;
+procedure TSourcePageControl.CreateTabSheetAnchors;
begin
if not DockedOptions.AnchorTabVisible then Exit;
if Assigned(FTabSheetAnchors) then Exit;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.CreateTabSheetAnchors'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.CreateTabSheetAnchors'); {$ENDIF}
FTabSheetAnchors := TTabSheet.Create(Self);
FTabSheetAnchors.PageControl := Self;
FTabSheetAnchors.Caption := SAnchors;
end;
-procedure TModulePageControl.CreateTabSheetDesigner;
+procedure TSourcePageControl.CreateTabSheetDesigner;
begin
if Assigned(FTabSheetDesigner) then Exit;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.CreateTabSheetDesigner'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.CreateTabSheetDesigner'); {$ENDIF}
FTabSheetDesigner := TTabSheet.Create(Self);
FTabSheetDesigner.PageControl := Self;
FTabSheetDesigner.Caption := SDesigner;
end;
-procedure TModulePageControl.DesignerSetFocus;
+procedure TSourcePageControl.DesignerSetFocus;
begin
if not Assigned(Resizer) then Exit;
if not Assigned(DesignForm) then Exit;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.DesignerSetFocus'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControl.DesignerSetFocus'); {$ENDIF}
Resizer.DesignerSetFocus;
end;
-procedure TModulePageControl.DesignerSetFocusAsync;
+procedure TSourcePageControl.DesignerSetFocusAsync;
begin
if FDesignerSetFocusAsyncCount = 0 then
Application.QueueAsyncCall(@AsyncDesignerSetFocus, 0);
Inc(FDesignerSetFocusAsyncCount);
end;
-function TModulePageControl.DesignerPageActive: Boolean;
+function TSourcePageControl.DesignerPageActive: Boolean;
begin
Result := (ActivePage = FTabSheetDesigner) or
(ActivePage = FTabSheetAnchors);
end;
-function TModulePageControl.FormPageActive: Boolean;
+function TSourcePageControl.FormPageActive: Boolean;
begin
Result := ActivePage = FTabSheetDesigner;
end;
-procedure TModulePageControl.RemoveDesignPages;
+procedure TSourcePageControl.RemoveDesignPages;
begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.RemoveDesignPages'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControls.RemoveDesignPages'); {$ENDIF}
FreeAndNil(FTabSheetAnchors);
FreeAndNil(FTabSheetDesigner);
ShowTabs := False;
end;
-procedure TModulePageControl.InitPage;
+procedure TSourcePageControl.InitPage;
begin
ShowTabs := PageCount > 1;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.InitPage: ShowTabs[' + ShowTabs.ToString(TUseBoolStrs.True) + ']'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControls.InitPage: ShowTabs[' + ShowTabs.ToString(TUseBoolStrs.True) + ']'); {$ENDIF}
if ActivePage = FTabSheetDesigner then
begin
Resizer.Parent := FTabSheetDesigner;
@@ -242,24 +269,24 @@ begin
end;
end;
-procedure TModulePageControl.RefreshResizer;
+procedure TSourcePageControl.RefreshResizer;
begin
if not Assigned(FResizer) then Exit;
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.RefreshResizer'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControls.RefreshResizer'); {$ENDIF}
FreeAndNil(FResizer);
CreateResizer;
end;
-procedure TModulePageControl.ShowCode;
+procedure TSourcePageControl.ShowCode;
begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.ShowCode'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControls.ShowCode'); {$ENDIF}
PageIndex := 0;
InitPage;
end;
-procedure TModulePageControl.ShowDesigner(AIndex: Integer);
+procedure TSourcePageControl.ShowDesigner(AIndex: Integer);
begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TModulePageControl.ShowDesigner'); {$ENDIF}
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourcePageControls.ShowDesigner'); {$ENDIF}
if (AIndex = 0) or not (Pages[AIndex].TabVisible) then
AIndex := 1;
if PageCount <= AIndex then Exit;
@@ -269,5 +296,68 @@ begin
OnChange(Self);
end;
+{ TSourcePageControls }
+
+function TSourcePageControls.GetPageControl(ASrcEditor: TSourceEditorInterface): TSourcePageControl;
+var
+ LIndex: Integer;
+begin
+ LIndex := IndexOf(ASrcEditor);
+ if LIndex >= 0 then
+ Result := Items[LIndex]
+ else
+ Result := nil;
+end;
+
+function TSourcePageControls.GetSourceEditor(APageControl: TSourcePageControl): TSourceEditorInterface;
+var
+ LIndex: Integer;
+begin
+ LIndex := IndexOf(APageControl);
+ if LIndex >= 0 then
+ Result := Items[LIndex].SourceEditor
+ else
+ Result := nil;
+end;
+
+function TSourcePageControls.Contains(APageControl: TSourcePageControl): Boolean;
+begin
+ Result := IndexOf(APageControl) >= 0;
+end;
+
+function TSourcePageControls.Contains(ASrcEditor: TSourceEditorInterface): Boolean;
+begin
+ Result := IndexOf(ASrcEditor) >= 0;
+end;
+
+function TSourcePageControls.IndexOf(APageControl: TSourcePageControl): Integer;
+var
+ i: Integer;
+begin
+ Result := -1;
+ for i := 0 to Count - 1 do
+ if Items[i] = APageControl then
+ Exit(i);
+end;
+
+function TSourcePageControls.IndexOf(ASrcEditor: TSourceEditorInterface): Integer;
+var
+ i: Integer;
+begin
+ Result := -1;
+ for i := 0 to Count - 1 do
+ if Items[i].SourceEditor = ASrcEditor then
+ Exit(i);
+end;
+
+procedure TSourcePageControls.Remove(ASrcEditor: TSourceEditorInterface);
+var
+ LIndex: Integer;
+begin
+ LIndex := IndexOf(ASrcEditor);
+ if LIndex < 0 then Exit;
+ Delete(LIndex);
+end;
+
end.
diff --git a/components/dockedformeditor/source/dockedsourcewindow.pas b/components/dockedformeditor/source/dockedsourcewindow.pas
index 0f63f4f183..2e0b16995c 100644
--- a/components/dockedformeditor/source/dockedsourcewindow.pas
+++ b/components/dockedformeditor/source/dockedsourcewindow.pas
@@ -32,7 +32,7 @@ uses
// IDEIntf
SrcEditorIntf, LazIDEIntf, FormEditingIntf, ExtendedNotebook,
// DockedFormEditor
- DockedSourceEditorPageControls, DockedDesignForm, DockedModulePageControl,
+ DockedDesignForm, DockedSourcePageControl,
DockedOptionsIDE, DockedTools;
type
@@ -42,23 +42,23 @@ type
TSourceWindow = class
private
FActiveDesignForm: TDesignForm;
+ FDefaultNotebookPageChanged: TNotifyEvent;
FLastActiveSourceEditor: TSourceEditorInterface;
FLastTopParent: TControl;
- FNotebookPageChanged: TNotifyEvent;
- FPageControlList: TSourceEditorPageControls;
- FSourceEditorNotebook: TExtendedNotebook;
+ FNotebook: TExtendedNotebook;
+ FPageControlList: TSourcePageControls;
FSourceWindowIntf: TSourceEditorWindowInterface;
function GetActiveEditor: TSourceEditorInterface;
procedure HookIntoOnPageChanged;
+ procedure NoteBookPageChanged(Sender: TObject);
procedure SetActiveDesignForm(const AValue: TDesignForm);
- procedure SourceEditorPageChanged(Sender: TObject);
procedure UpdateEditorPageCaption(Sender: TObject);
public
constructor Create(ASourceWindowIntf: TSourceEditorWindowInterface);
destructor Destroy; override;
- procedure AddPageCtrl(ASourceEditor: TSourceEditorInterface; APageControl: TModulePageControl);
+ procedure AddPageCtrl(APageControl: TSourcePageControl);
procedure AdjustPageControl;
- function FindModulePageControl(ASourceEditor: TSourceEditorInterface): TModulePageControl;
+ function FindPageControl(ASourceEditor: TSourceEditorInterface): TSourcePageControl;
procedure RemoveActiveDesignForm;
procedure RemovePageCtrl(ASourceEditor: TSourceEditorInterface);
public
@@ -66,7 +66,7 @@ type
property ActiveEditor: TSourceEditorInterface read GetActiveEditor;
property LastActiveSourceEditor: TSourceEditorInterface read FLastActiveSourceEditor write FLastActiveSourceEditor;
property LastTopParent: TControl read FLastTopParent write FLastTopParent;
- property PageControlList: TSourceEditorPageControls read FPageControlList;
+ property PageControlList: TSourcePageControls read FPageControlList;
property SourceWindowIntf: TSourceEditorWindowInterface read FSourceWindowIntf;
end;
@@ -75,7 +75,7 @@ type
TSourceWindows = class(specialize TFPGList)
private
FLastActiveSourceWindow: TSourceEditorWindowInterface;
- function GetLastActiveModulePageControl: TModulePageControl;
+ function GetLastActivePageControl: TSourcePageControl;
function GetLastActiveSourceEditor: TSourceEditorInterface;
function GetSourceWindowIntf(ASrcEditor: TSourceWindow): TSourceEditorWindowInterface;
function GetSourceWindow(ASourceWindowIntf: TSourceEditorWindowInterface): TSourceWindow;
@@ -86,18 +86,18 @@ type
function Contains(ASourceWindowIntf: TSourceEditorWindowInterface): Boolean;
function Contains(ASrcEditor: TSourceWindow): Boolean;
procedure DeleteItem(Index: Integer);
- function FindDesignForm(AModulePageCtrl: TModulePageControl): TDesignForm;
- function FindModulePageControl(ASrcEditor: TSourceEditorInterface): TModulePageControl;
+ function FindDesignForm(APageCtrl: TSourcePageControl): TDesignForm;
+ function FindPageControl(ASrcEditor: TSourceEditorInterface): TSourcePageControl;
function IndexOf(ASourceWindowIntf: TSourceEditorWindowInterface): Integer; overload;
function LastSourceEditorNotFound: Boolean;
procedure RefreshActivePageControls;
procedure RefreshAllPageControls;
procedure Remove(ASourceWindowIntf: TSourceEditorWindowInterface); overload;
- procedure ShowCodeTabSkipCurrent(CurrentPageCtrl: TModulePageControl; ADesignForm: TDesignForm);
+ procedure ShowCodeTabSkipCurrent(CurrentPageCtrl: TSourcePageControl; ADesignForm: TDesignForm);
public
property LastActiveSourceWindow: TSourceEditorWindowInterface read FLastActiveSourceWindow write FLastActiveSourceWindow;
property LastActiveSourceEditor: TSourceEditorInterface read GetLastActiveSourceEditor write SetLastActiveSourceEditor;
- property LastActiveModulePageControl: TModulePageControl read GetLastActiveModulePageControl;
+ property LastActivePageControl: TSourcePageControl read GetLastActivePageControl;
property SourceWindowIntf[ASrcEditor: TSourceWindow]: TSourceEditorWindowInterface read GetSourceWindowIntf;
property SourceWindow[ASourceWindowIntf: TSourceEditorWindowInterface]: TSourceWindow read GetSourceWindow;
end;
@@ -116,46 +116,21 @@ begin
for i := 0 to FSourceWindowIntf.ControlCount - 1 do
if FSourceWindowIntf.Controls[i] is TExtendedNotebook then
begin
- FSourceEditorNotebook := TExtendedNotebook(FSourceWindowIntf.Controls[i]);
+ FNotebook := TExtendedNotebook(FSourceWindowIntf.Controls[i]);
Break;
end;
- if not Assigned(FSourceEditorNotebook) then Exit;
- FNotebookPageChanged := FSourceEditorNotebook.OnChange;
- FSourceEditorNotebook.OnChange := @SourceEditorPageChanged;
+ if not Assigned(FNotebook) then Exit;
+ FDefaultNotebookPageChanged := FNotebook.OnChange;
+ FNotebook.OnChange := @NoteBookPageChanged;
end;
-function TSourceWindow.GetActiveEditor: TSourceEditorInterface;
-begin
- Result := FSourceWindowIntf.ActiveEditor;
-end;
-
-procedure TSourceWindow.SetActiveDesignForm(const AValue: TDesignForm);
+procedure TSourceWindow.NoteBookPageChanged(Sender: TObject);
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
- if FActiveDesignForm = AValue then Exit;
- if FActiveDesignForm <> nil then
- // don't hide now if soon form will be hidden (for example on the IDE start)
- if not FActiveDesignForm.Hiding then
- FActiveDesignForm.HideWindow;
- FActiveDesignForm := AValue;
-
- LPageCtrl := FindModulePageControl(ActiveEditor);
- // important when we want back to tab where was oppened form
- if (AValue <> nil) then
- LazarusIDE.DoShowDesignerFormOfSrc(ActiveEditor);
-
- if LPageCtrl = nil then Exit;
- LPageCtrl.DesignForm := AValue;
-end;
-
-procedure TSourceWindow.SourceEditorPageChanged(Sender: TObject);
-var
- LPageCtrl: TModulePageControl;
-begin
- {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourceWindow.SourceEditorPageChanged SourceEditorWindow[' + FSourceWindowIntf.Caption + ']'); {$ENDIF}
- FNotebookPageChanged(Sender);
- LPageCtrl := FindModulePageControl(ActiveEditor);
+ {$IFDEF DEBUGDOCKEDFORMEDITOR} DebugLn('TSourceWindow.NoteBookPageChanged SourceWindow[' + FSourceWindowIntf.Caption + ']'); {$ENDIF}
+ FDefaultNotebookPageChanged(Sender);
+ LPageCtrl := FindPageControl(ActiveEditor);
if not Assigned(LPageCtrl) then Exit;
if LPageCtrl.DesignerPageActive then
begin
@@ -168,12 +143,37 @@ begin
end;
end;
+function TSourceWindow.GetActiveEditor: TSourceEditorInterface;
+begin
+ Result := FSourceWindowIntf.ActiveEditor;
+end;
+
+procedure TSourceWindow.SetActiveDesignForm(const AValue: TDesignForm);
+var
+ LPageCtrl: TSourcePageControl;
+begin
+ if FActiveDesignForm = AValue then Exit;
+ if FActiveDesignForm <> nil then
+ // don't hide now if soon form will be hidden (for example on the IDE start)
+ if not FActiveDesignForm.Hiding then
+ FActiveDesignForm.HideWindow;
+ FActiveDesignForm := AValue;
+
+ LPageCtrl := FindPageControl(ActiveEditor);
+ // important when we want back to tab where was oppened form
+ if (AValue <> nil) then
+ LazarusIDE.DoShowDesignerFormOfSrc(ActiveEditor);
+
+ if LPageCtrl = nil then Exit;
+ LPageCtrl.DesignForm := AValue;
+end;
+
procedure TSourceWindow.UpdateEditorPageCaption(Sender: TObject);
var
LSourceEditor: TSourceEditorInterface;
LSourceWindowIntf: TSourceEditorWindowInterface;
begin
- // if a unit is cloned to undocked empty source editor window, the ModulePageControl
+ // if a unit is cloned to undocked empty source editor window, the SourcePageControl
// is not created, the only workaround I found is, to activate the new created
// source editor in this window
if not (Sender is TSourceEditorInterface) then Exit;
@@ -193,35 +193,35 @@ constructor TSourceWindow.Create(ASourceWindowIntf: TSourceEditorWindowInterface
begin
FLastActiveSourceEditor := nil;
FSourceWindowIntf := ASourceWindowIntf;
- FPageControlList := TSourceEditorPageControls.Create;
- FSourceEditorNotebook := nil;
+ FPageControlList := TSourcePageControls.Create;
+ FNotebook := nil;
HookIntoOnPageChanged;
FSourceWindowIntf.AddUpdateEditorPageCaptionHandler(@UpdateEditorPageCaption);
end;
destructor TSourceWindow.Destroy;
begin
- if Assigned(FSourceEditorNotebook) then
- FSourceEditorNotebook.OnChange := FNotebookPageChanged;
+ if Assigned(FNotebook) then
+ FNotebook.OnChange := FDefaultNotebookPageChanged;
FPageControlList.Free;
inherited Destroy;
end;
-procedure TSourceWindow.AddPageCtrl(ASourceEditor: TSourceEditorInterface; APageControl: TModulePageControl);
+procedure TSourceWindow.AddPageCtrl(APageControl: TSourcePageControl);
begin
- FPageControlList.Add(ASourceEditor, APageControl);
+ FPageControlList.Add(APageControl);
end;
procedure TSourceWindow.AdjustPageControl;
var
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
- LPageCtrl := FindModulePageControl(ActiveEditor);
+ LPageCtrl := FindPageControl(ActiveEditor);
if LPageCtrl <> nil then
LPageCtrl.AdjustPage;
end;
-function TSourceWindow.FindModulePageControl(ASourceEditor: TSourceEditorInterface): TModulePageControl;
+function TSourceWindow.FindPageControl(ASourceEditor: TSourceEditorInterface): TSourcePageControl;
var
LParent: TWinControl;
begin
@@ -230,8 +230,8 @@ begin
LParent := ASourceEditor.EditorControl.Parent;
while LParent <> nil do
begin
- if LParent is TModulePageControl then
- Exit(TModulePageControl(LParent));
+ if LParent is TSourcePageControl then
+ Exit(TSourcePageControl(LParent));
LParent := LParent.Parent;
end;
Result := nil;
@@ -262,9 +262,9 @@ begin
Result := nil;
end;
-function TSourceWindows.GetLastActiveModulePageControl: TModulePageControl;
+function TSourceWindows.GetLastActivePageControl: TSourcePageControl;
begin
- Result := FindModulePageControl(LastActiveSourceEditor);
+ Result := FindPageControl(LastActiveSourceEditor);
end;
function TSourceWindows.GetLastActiveSourceEditor: TSourceEditorInterface;
@@ -331,16 +331,16 @@ begin
Delete(Index);
end;
-function TSourceWindows.FindDesignForm(AModulePageCtrl: TModulePageControl): TDesignForm;
+function TSourceWindows.FindDesignForm(APageCtrl: TSourcePageControl): TDesignForm;
var
LSourceWindow: TSourceWindow;
LSourceEditorInterface: TSourceEditorInterface;
begin
Result := nil;
- if AModulePageCtrl = nil then Exit;
+ if APageCtrl = nil then Exit;
for LSourceWindow in Self do
begin
- if AModulePageCtrl.Owner = LSourceWindow.SourceWindowIntf then
+ if APageCtrl.Owner = LSourceWindow.SourceWindowIntf then
begin
LSourceEditorInterface := LSourceWindow.ActiveEditor;
if LSourceEditorInterface = nil then Exit;
@@ -350,7 +350,7 @@ begin
end;
end;
-function TSourceWindows.FindModulePageControl(ASrcEditor: TSourceEditorInterface): TModulePageControl;
+function TSourceWindows.FindPageControl(ASrcEditor: TSourceEditorInterface): TSourcePageControl;
var
LSourceWindow: TSourceWindow;
begin
@@ -373,18 +373,18 @@ end;
function TSourceWindows.LastSourceEditorNotFound: Boolean;
var
i: Integer;
- LSourceEditorPageControl: TSourceEditorPageControl;
+ LPageCtrl: TSourcePageControl;
LSourceWindow: TSourceWindow;
begin
if (LastActiveSourceWindow = nil) or (LastActiveSourceEditor = nil) then
Exit(False);
LSourceWindow := SourceWindow[LastActiveSourceWindow];
- for LSourceEditorPageControl in LSourceWindow.PageControlList do
+ for LPageCtrl in LSourceWindow.PageControlList do
begin
Result := True;
for i := 0 to LastActiveSourceWindow.Count - 1 do
- if LSourceEditorPageControl.SourceEditor = LastActiveSourceWindow.Items[i] then
+ if LPageCtrl.SourceEditor = LastActiveSourceWindow.Items[i] then
begin
Result := False;
Break;
@@ -393,7 +393,7 @@ begin
begin
// after moving code editor into other window, sometimes IDE switch to other tab
// this line prevent this.
- LSourceWindow.LastActiveSourceEditor := LSourceEditorPageControl.SourceEditor;
+ LSourceWindow.LastActiveSourceEditor := LPageCtrl.SourceEditor;
Exit;
end;
end;
@@ -403,12 +403,12 @@ end;
procedure TSourceWindows.RefreshActivePageControls;
var
LSourceWindow: TSourceWindow;
- LPageCtrl: TModulePageControl;
+ LPageCtrl: TSourcePageControl;
begin
for LSourceWindow in Self do
begin
- LPageCtrl := LSourceWindow.FindModulePageControl(LSourceWindow.ActiveEditor);
- // for example LPageCtrl is nil when we clone module to new window
+ LPageCtrl := LSourceWindow.FindPageControl(LSourceWindow.ActiveEditor);
+ // for example LPageCtrl is nil when we clone source to new window
if (LPageCtrl = nil) or (csDestroying in LSourceWindow.SourceWindowIntf.ComponentState) then
Continue;
if (LSourceWindow.ActiveEditor = nil)
@@ -428,13 +428,13 @@ end;
procedure TSourceWindows.RefreshAllPageControls;
var
LSourceWindow: TSourceWindow;
- LSourceEditorPageControl: TSourceEditorPageControl;
+ LPageCtrl: TSourcePageControl;
begin
for LSourceWindow in SourceWindows do
- for LSourceEditorPageControl in LSourceWindow.PageControlList do
+ for LPageCtrl in LSourceWindow.PageControlList do
begin
- LSourceEditorPageControl.PageControl.TabPosition := DockedOptions.TabPosition;
- LSourceEditorPageControl.PageControl.RefreshResizer;
+ LPageCtrl.TabPosition := DockedOptions.TabPosition;
+ LPageCtrl.RefreshResizer;
end;
end;
@@ -449,20 +449,20 @@ begin
LastActiveSourceWindow := nil;
end;
-procedure TSourceWindows.ShowCodeTabSkipCurrent(CurrentPageCtrl: TModulePageControl; ADesignForm: TDesignForm);
+procedure TSourceWindows.ShowCodeTabSkipCurrent(CurrentPageCtrl: TSourcePageControl; ADesignForm: TDesignForm);
var
LSourceWindow: TSourceWindow;
- LSourceEditorPageControl: TSourceEditorPageControl;
+ LPageCtrl: TSourcePageControl;
begin
for LSourceWindow in Self do
- for LSourceEditorPageControl in LSourceWindow.PageControlList do
- if LSourceEditorPageControl.PageControl = CurrentPageCtrl then
+ for LPageCtrl in LSourceWindow.PageControlList do
+ if LPageCtrl = CurrentPageCtrl then
begin
- LSourceEditorPageControl.PageControl.DesignForm := ADesignForm;
- LSourceEditorPageControl.PageControl.InitPage;
+ LPageCtrl.DesignForm := ADesignForm;
+ LPageCtrl.InitPage;
end else
- if LSourceEditorPageControl.PageControl.DesignForm = ADesignForm then
- LSourceEditorPageControl.PageControl.ShowCode;
+ if LPageCtrl.DesignForm = ADesignForm then
+ LPageCtrl.ShowCode;
end;
initialization