IDE: open files dropped on the source editor

git-svn-id: trunk@13801 -
This commit is contained in:
tombo 2008-01-19 15:42:23 +00:00
parent 4af440554d
commit 37a80ea14c
3 changed files with 45 additions and 7 deletions

View File

@ -148,6 +148,7 @@ type
procedure OnApplicationActivate(Sender: TObject); procedure OnApplicationActivate(Sender: TObject);
procedure OnApplicationKeyDown(Sender: TObject; procedure OnApplicationKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState); var Key: Word; Shift: TShiftState);
procedure OnApplicationDropFiles(Sender: TObject; const FileNames: array of String);
procedure OnScreenRemoveForm(Sender: TObject; AForm: TCustomForm); procedure OnScreenRemoveForm(Sender: TObject; AForm: TCustomForm);
procedure OnRemoteControlTimer(Sender: TObject); procedure OnRemoteControlTimer(Sender: TObject);
@ -1170,6 +1171,7 @@ begin
Application.AddOnIdleHandler(@OnApplicationIdle); Application.AddOnIdleHandler(@OnApplicationIdle);
Application.AddOnActivateHandler(@OnApplicationActivate); Application.AddOnActivateHandler(@OnApplicationActivate);
Application.AddOnKeyDownHandler(@OnApplicationKeyDown); Application.AddOnKeyDownHandler(@OnApplicationKeyDown);
Application.AddOnDropFilesHandler(@OnApplicationDropFiles);
Screen.AddHandlerRemoveForm(@OnScreenRemoveForm); Screen.AddHandlerRemoveForm(@OnScreenRemoveForm);
SetupHints; SetupHints;
@ -12740,6 +12742,36 @@ begin
end; end;
end; end;
procedure TMainIDE.OnApplicationDropFiles(Sender: TObject; const FileNames: array of String);
var
OpenFlags: TOpenFlags;
I: Integer;
AFilename: String;
begin
//debugln('TMainIDE.OnApplicationDropFiles FileNames=', dbgs(Length(FileNames)));
if Length(FileNames) > 0 then
begin
OpenFlags := [ofAddToRecent];
if Length(FileNames) > 1 then
Include(OpenFlags, ofRegularFile);
for I := 0 to High(FileNames) do
begin
AFilename := CleanAndExpandFilename(FileNames[I]);
if I < High(FileNames) then
Include(OpenFlags, ofMultiOpen)
else
Exclude(OpenFlags, ofMultiOpen);
if DoOpenEditorFile(AFilename, -1, OpenFlags) = mrAbort then Break;
end;
SetRecentFilesMenu;
SaveEnvironment;
end;
end;
procedure TMainIDE.OnScreenRemoveForm(Sender: TObject; AForm: TCustomForm); procedure TMainIDE.OnScreenRemoveForm(Sender: TObject; AForm: TCustomForm);
begin begin
HiddenWindowsOnRun.Remove(AForm); HiddenWindowsOnRun.Remove(AForm);

View File

@ -1,14 +1,17 @@
object SourceNotebook: TSourceNotebook inherited SourceNotebook: TSourceNotebook
Left = 533 Left = 533
Height = 300 Height = 300
Top = 374 Top = 374
Width = 400 Width = 400
HorzScrollBar.Page = 399 HorzScrollBar.Page = 399
VertScrollBar.Page = 299 VertScrollBar.Page = 299
AllowDropFiles = True
Caption = 'SourceNotebook' Caption = 'SourceNotebook'
ClientHeight = 300
ClientWidth = 400
object StatusBar: TStatusBar object StatusBar: TStatusBar
Height = 23 Height = 20
Top = 277 Top = 280
Width = 400 Width = 400
Panels = < Panels = <
item item

View File

@ -1,8 +1,11 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TSourceNotebook','FORMDATA',[ LazarusResources.Add('TSourceNotebook','FORMDATA',[
'TPF0'#15'TSourceNotebook'#14'SourceNotebook'#4'Left'#3#21#2#6'Height'#3','#1 'TPF0'#241#15'TSourceNotebook'#14'SourceNotebook'#4'Left'#3#21#2#6'Height'#3
+#3'Top'#3'v'#1#5'Width'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertScroll' +','#1#3'Top'#3'v'#1#5'Width'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertS'
+'Bar.Page'#3'+'#1#7'Caption'#6#14'SourceNotebook'#0#10'TStatusBar'#9'StatusB' +'crollBar.Page'#3'+'#1#14'AllowDropFiles'#9#7'Caption'#6#14'SourceNotebook'
+'ar'#6'Height'#2#23#3'Top'#3#21#1#5'Width'#3#144#1#6'Panels'#14#1#5'Width'#2 +#12'ClientHeight'#3','#1#11'ClientWidth'#3#144#1#0#10'TStatusBar'#9'StatusBa'
+'r'#6'Height'#2#20#3'Top'#3#24#1#5'Width'#3#144#1#6'Panels'#14#1#5'Width'#2
+'d'#0#1#5'Width'#3#150#0#0#1#5'Width'#2'2'#0#1#4'Text'#6#3'INS'#5'Width'#2'2' +'d'#0#1#5'Width'#3#150#0#0#1#5'Width'#2'2'#0#1#4'Text'#6#3'INS'#5'Width'#2'2'
+#0#0#10'SimpleText'#6#14'This is a test'#11'SimplePanel'#8#0#0#0 +#0#0#10'SimpleText'#6#14'This is a test'#11'SimplePanel'#8#0#0#0
]); ]);