mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 21:29:27 +01: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.
 | |
| 
 | 
