mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-29 18:24:38 +02:00
117 lines
3.6 KiB
ObjectPascal
117 lines
3.6 KiB
ObjectPascal
{
|
|
***************************************************************************
|
|
* *
|
|
* This source is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* This code is distributed in the hope that it will be useful, but *
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
|
* General Public License for more details. *
|
|
* *
|
|
* A copy of the GNU General Public License is available on the World *
|
|
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
|
* obtain it by writing to the Free Software Foundation, *
|
|
* Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. *
|
|
* *
|
|
***************************************************************************
|
|
|
|
Author: Mattias Gaertner
|
|
|
|
Abstract:
|
|
An IDE window for context sensitive codetools.
|
|
}
|
|
unit CodyFrm;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
{$R *.lfm}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileProcs, LResources, Forms, Controls, Graphics, Dialogs,
|
|
Buttons, ComCtrls,
|
|
// codetools
|
|
//FileProcs, CodeToolManager, SourceLog, CodeCache, EventCodeTool,
|
|
//LinkScanner, PascalParserTool, CodeTree,
|
|
// IDEIntf
|
|
LazIDEIntf, IDEWindowIntf,
|
|
// cody
|
|
CodyStrConsts;
|
|
|
|
const
|
|
CodyWindowName = 'CodyWindow';
|
|
type
|
|
|
|
{ TCodyWindow }
|
|
|
|
TCodyWindow = class(TForm)
|
|
ImageList1: TImageList;
|
|
ToolBar1: TToolBar;
|
|
RefreshToolButton: TToolButton;
|
|
OptionsToolButton: TToolButton;
|
|
TreeView1: TTreeView;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
private
|
|
ImgIDRefresh: Integer;
|
|
ImgIDOptions: Integer;
|
|
public
|
|
end;
|
|
|
|
var
|
|
CodyWindow: TCodyWindow = nil;
|
|
CodyWindowCreator: TIDEWindowCreator; // set by CodyRegistration.Register
|
|
|
|
procedure ShowCodyWindow(Sender: TObject);
|
|
procedure CreateCodyWindow(Sender: TObject; aFormName: string;
|
|
var AForm: TCustomForm; DoDisableAutoSizing: boolean);
|
|
|
|
implementation
|
|
|
|
procedure ShowCodyWindow(Sender: TObject);
|
|
begin
|
|
IDEWindowCreators.ShowForm(CodyWindowCreator.FormName,true);
|
|
end;
|
|
|
|
procedure CreateCodyWindow(Sender: TObject; aFormName: string;
|
|
var AForm: TCustomForm; DoDisableAutoSizing: boolean);
|
|
begin
|
|
if CompareText(aFormName,CodyWindowName)<>0 then begin
|
|
debugln(['ERROR: CreateCodyWindow: there is already a form with this name']);
|
|
exit;
|
|
end;
|
|
IDEWindowCreators.CreateForm(AForm,TCodyWindow,DoDisableAutoSizing,
|
|
LazarusIDE.OwningComponent);
|
|
AForm.Name:=aFormName;
|
|
end;
|
|
|
|
{ TCodyWindow }
|
|
|
|
procedure TCodyWindow.FormCreate(Sender: TObject);
|
|
begin
|
|
if CodyWindow=nil then CodyWindow:=Self;
|
|
Caption:='Cody';
|
|
|
|
ImgIDRefresh := Imagelist1.AddResourceName(HInstance, 'laz_refresh');
|
|
ImgIDOptions := Imagelist1.AddResourceName(HInstance, 'menu_environment_options');
|
|
ToolBar1.Images:=ImageList1;
|
|
OptionsToolButton.Hint:=crsOptions;
|
|
OptionsToolButton.ImageIndex:=ImgIDOptions;
|
|
RefreshToolButton.Hint:=crsRefresh;
|
|
RefreshToolButton.ImageIndex:=ImgIDRefresh;
|
|
end;
|
|
|
|
procedure TCodyWindow.FormDestroy(Sender: TObject);
|
|
begin
|
|
|
|
if CodyWindow=Self then CodyWindow:=nil;
|
|
end;
|
|
|
|
|
|
end.
|
|
|