SourceEditor-Window-Manager: make none modal

git-svn-id: trunk@36354 -
This commit is contained in:
martin 2012-03-26 19:43:35 +00:00
parent 67e76e1b92
commit bf130773b8

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, sysutils, Forms, Controls, CheckLst, ButtonPanel, StdCtrls, Classes, sysutils, Forms, Controls, CheckLst, ButtonPanel, StdCtrls,
Buttons, ExtCtrls, Menus, LCLProc, LCLType, IDEImagesIntf, LazIDEIntf, Buttons, ExtCtrls, Menus, LCLProc, LCLType, IDEImagesIntf, LazIDEIntf,
SourceEditor, LazarusIDEStrConsts, ListFilterEdit; SrcEditorIntf, SourceEditor, LazarusIDEStrConsts, ListFilterEdit;
type type
@ -35,6 +35,7 @@ type
procedure CheckListBox1KeyDown(Sender: TObject; var Key: Word; procedure CheckListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); Shift: TShiftState);
procedure CheckListBox1KeyPress(Sender: TObject; var Key: char); procedure CheckListBox1KeyPress(Sender: TObject; var Key: char);
procedure DoEditorsChanged(Sender: TObject);
procedure MoveDownBtnClick(Sender: TObject); procedure MoveDownBtnClick(Sender: TObject);
procedure MoveUpBtnClick(Sender: TObject); procedure MoveUpBtnClick(Sender: TObject);
procedure CheckListBox1Click(Sender: TObject); procedure CheckListBox1Click(Sender: TObject);
@ -57,29 +58,33 @@ type
procedure UpdateButtons; procedure UpdateButtons;
procedure UpdateMoveButtons(ListIndex: integer); procedure UpdateMoveButtons(ListIndex: integer);
public public
destructor Destroy; override;
property SortAlphabetically: boolean read FSortAlphabetically write SetSortAlphabetically; property SortAlphabetically: boolean read FSortAlphabetically write SetSortAlphabetically;
end; end;
function ShowEditorFileManagerForm: TModalResult; procedure ShowEditorFileManagerForm;
implementation implementation
{$R *.lfm} {$R *.lfm}
function ShowEditorFileManagerForm: TModalResult; var
EditorFileManagerForm: TEditorFileManagerForm;
procedure ShowEditorFileManagerForm;
begin begin
with TEditorFileManagerForm.Create(Nil) do if EditorFileManagerForm = nil then
try EditorFileManagerForm := TEditorFileManagerForm.Create(SourceEditorManager);
Result:=ShowModal; EditorFileManagerForm.Show;
finally
Free;
end;
end; end;
{ TEditorFileManagerForm } { TEditorFileManagerForm }
procedure TEditorFileManagerForm.FormCreate(Sender: TObject); procedure TEditorFileManagerForm.FormCreate(Sender: TObject);
begin begin
SourceEditorManager.RegisterChangeEvent(semEditorCreate, @DoEditorsChanged);
SourceEditorManager.RegisterChangeEvent(semEditorDestroy, @DoEditorsChanged);
PopulateList; // Populate the list with all open editor file names PopulateList; // Populate the list with all open editor file names
// Captions // Captions
Caption:=lisEditorWindowManager; Caption:=lisEditorWindowManager;
@ -235,6 +240,11 @@ begin
ActivateButtonClick(nil); ActivateButtonClick(nil);
end; end;
procedure TEditorFileManagerForm.DoEditorsChanged(Sender: TObject);
begin
PopulateList;
end;
procedure TEditorFileManagerForm.MoveDownBtnClick(Sender: TObject); procedure TEditorFileManagerForm.MoveDownBtnClick(Sender: TObject);
var var
SrcEdit: TSourceEditor; SrcEdit: TSourceEditor;
@ -383,5 +393,12 @@ begin
MoveDownBtn.Enabled:=DownEnabled; MoveDownBtn.Enabled:=DownEnabled;
end; end;
destructor TEditorFileManagerForm.Destroy;
begin
SourceEditorManager.UnRegisterChangeEvent(semEditorCreate, @DoEditorsChanged);
SourceEditorManager.UnRegisterChangeEvent(semEditorDestroy, @DoEditorsChanged);
inherited Destroy;
end;
end. end.