restored old tpanel.xpm

git-svn-id: trunk@8909 -
This commit is contained in:
mattias 2006-03-10 16:19:34 +00:00
parent 4d93dd90aa
commit 9272283138
17 changed files with 206 additions and 70 deletions

View File

@ -182,7 +182,7 @@ begin
LFMTree:=nil; LFMTree:=nil;
try try
if CodeToolBoss.CheckLFM(PascalBuffer,LFMBuffer,LFMTree, if CodeToolBoss.CheckLFM(PascalBuffer,LFMBuffer,LFMTree,
RootMustBeClassInIntf,ObjectsMustExists) RootMustBeClassInIntf,ObjectsMustExists)
then begin then begin
Result:=mrOk; Result:=mrOk;
exit; exit;

View File

@ -36,7 +36,8 @@ uses
Classes, SysUtils, LCLProc, Forms, Controls, Buttons, StdCtrls, Dialogs, Classes, SysUtils, LCLProc, Forms, Controls, Buttons, StdCtrls, Dialogs,
CodeToolManager, CodeAtom, CodeCache, CustomCodeTool, CodeTree, CodeToolManager, CodeAtom, CodeCache, CustomCodeTool, CodeTree,
PascalParserTool, FindDeclarationTool, PascalParserTool, FindDeclarationTool,
PropEdits, HelpIntf, HelpHTML, HelpFPDoc, MacroIntf, IDEWindowIntf, MsgIntf, PropEdits, ObjectInspector, FormEditingIntf, ProjectIntf,
HelpIntf, HelpHTML, HelpFPDoc, MacroIntf, IDEWindowIntf, MsgIntf, LazIDEIntf,
LazarusIDEStrConsts, TransferMacros, DialogProcs, IDEOptionDefs, LazarusIDEStrConsts, TransferMacros, DialogProcs, IDEOptionDefs,
EnvironmentOpts, AboutFrm, MsgView, Project, PackageDefs, MainBar, EnvironmentOpts, AboutFrm, MsgView, Project, PackageDefs, MainBar,
OutputFilter, HelpOptions, MainIntf, LazConf, ExtCtrls, LResources, OutputFilter, HelpOptions, MainIntf, LazConf, ExtCtrls, LResources,
@ -93,6 +94,7 @@ type
const CodePos: TPoint; const CodePos: TPoint;
var ErrMsg: string): TShowHelpResult; override; var ErrMsg: string): TShowHelpResult; override;
procedure ShowHelpForMessage(Line: integer); override; procedure ShowHelpForMessage(Line: integer); override;
procedure ShowHelpForObjectInspector(Sender: TObject); override;
public public
property FCLHelpDB: THelpDatabase read FFCLHelpDB; property FCLHelpDB: THelpDatabase read FFCLHelpDB;
property FCLHelpDBPath: THelpBasePathObject read FFCLHelpDBPath; property FCLHelpDBPath: THelpBasePathObject read FFCLHelpDBPath;
@ -554,7 +556,7 @@ begin
ListOfPCodeXYPosition:=nil; ListOfPCodeXYPosition:=nil;
PascalHelpContextLists:=nil; PascalHelpContextLists:=nil;
try try
// get all possible declarations for this identifier // get all possible declarations of this identifier
if CodeToolBoss.FindDeclarationAndOverload(CodeBuffer,CodePos.X,CodePos.Y, if CodeToolBoss.FindDeclarationAndOverload(CodeBuffer,CodePos.X,CodePos.Y,
ListOfPCodeXYPosition) then ListOfPCodeXYPosition) then
begin begin
@ -616,6 +618,37 @@ begin
end; end;
end; end;
procedure THelpManager.ShowHelpForObjectInspector(Sender: TObject);
var
AnInspector: TObjectInspector;
Row: TOIPropertyGridRow;
LookupRoot: TPersistent;
AFile: TLazProjectFile;
begin
DebugLn('THelpManager.ShowHelpForObjectInspector ',dbgsName(Sender));
if Sender=nil then Sender:=ObjectInspector1;
if Sender is TObjectInspector then begin
AnInspector:=TObjectInspector(Sender);
Row:=AnInspector.GetActivePropertyRow;
if Row=nil then begin
// TODO: show help about object inspector
DebugLn('THelpManager.ShowHelpForObjectInspector TODO: show help about object inspector');
end else begin
// find unit of LookupRoot
if AnInspector.PropertyEditorHook=nil then exit;
LookupRoot:=AnInspector.PropertyEditorHook.LookupRoot;
if not (LookupRoot is TComponent) then exit;
AFile:=LazarusIDE.GetProjectFileWithRootComponent(TComponent(LookupRoot));
if AFile=nil then exit;
if Row.Editor=nil then exit;
if Row.Editor.GetPropInfo=nil then exit;
end;
end;
end;
initialization initialization
{$i helpmanager.lrs} {$i helpmanager.lrs}

View File

@ -2341,6 +2341,10 @@ begin
AddDefault(C,'Move component one forward' ,ecDesignerForwardOne); AddDefault(C,'Move component one forward' ,ecDesignerForwardOne);
AddDefault(C,'Move component one back' ,ecDesignerBackOne); AddDefault(C,'Move component one back' ,ecDesignerBackOne);
// object inspector - without menu items in the IDE bar (at least no direct)
C:=Categories[AddCategory('Object Inspector',lisKeyCatObjInspector,
IDECmdScopeObjctInspectorOnly)];
// custom keys (for experts, task groups, dynamic menu items, etc) // custom keys (for experts, task groups, dynamic menu items, etc)
C:=Categories[AddCategory(KeyCategoryCustomName,lisKeyCatCustom,nil)]; C:=Categories[AddCategory(KeyCategoryCustomName,lisKeyCatCustom,nil)];
end; end;

View File

@ -1557,6 +1557,7 @@ resourcestring
srkmCatEnvMenu = 'Environment menu commands'; srkmCatEnvMenu = 'Environment menu commands';
srkmCarHelpMenu = 'Help menu commands'; srkmCarHelpMenu = 'Help menu commands';
lisKeyCatDesigner = 'Designer commands'; lisKeyCatDesigner = 'Designer commands';
lisKeyCatObjInspector = 'Object Inspector commands';
lisKeyCatCustom = 'Custom commands'; lisKeyCatCustom = 'Custom commands';
// Languages // Languages

View File

@ -691,6 +691,12 @@ type
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override; var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override;
procedure GetDesignerUnit(ADesigner: TDesigner; procedure GetDesignerUnit(ADesigner: TDesigner;
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override; var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override;
function GetDesignerWithProjectFile(AFile: TLazProjectFile;
LoadForm: boolean): TIDesigner; override;
function GetFormOfSource(AnUnitInfo: TUnitInfo;
LoadForm: boolean): TCustomForm;
function GetProjectFileWithRootComponent(AComponent: TComponent): TLazProjectFile; override;
function GetProjectFileWithDesigner(ADesigner: TIDesigner): TLazProjectFile; override;
procedure GetObjectInspectorUnit( procedure GetObjectInspectorUnit(
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override; var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override;
procedure GetUnitWithForm(AForm: TCustomForm; procedure GetUnitWithForm(AForm: TCustomForm;
@ -733,8 +739,6 @@ type
var ActiveUnitInfo:TUnitInfo); var ActiveUnitInfo:TUnitInfo);
procedure DoSwitchToFormSrc(ADesigner: TDesigner; procedure DoSwitchToFormSrc(ADesigner: TDesigner;
var ActiveSourceEditor:TSourceEditor; var ActiveUnitInfo:TUnitInfo); var ActiveSourceEditor:TSourceEditor; var ActiveUnitInfo:TUnitInfo);
function GetFormOfSource(AnUnitInfo: TUnitInfo;
LoadForm: boolean): TCustomForm;
procedure UpdateCaption; override; procedure UpdateCaption; override;
procedure HideIDE; override; procedure HideIDE; override;
procedure HideUnmodifiedDesigners; procedure HideUnmodifiedDesigners;
@ -1447,6 +1451,7 @@ begin
ObjectInspector1.OnAddToFavourites:=@OIOnAddToFavourites; ObjectInspector1.OnAddToFavourites:=@OIOnAddToFavourites;
ObjectInspector1.OnRemoveFromFavourites:=@OIOnRemoveFromFavourites; ObjectInspector1.OnRemoveFromFavourites:=@OIOnRemoveFromFavourites;
ObjectInspector1.BorderStyle:=bsSizeToolWin; ObjectInspector1.BorderStyle:=bsSizeToolWin;
IDECmdScopeObjctInspectorOnly.AddWindowClass(TObjectInspector);
GlobalDesignHook:=TPropertyEditorHook.Create; GlobalDesignHook:=TPropertyEditorHook.Create;
GlobalDesignHook.GetPrivateDirectory:=AppendPathDelim(GetPrimaryConfigPath); GlobalDesignHook.GetPrivateDirectory:=AppendPathDelim(GetPrimaryConfigPath);
@ -2324,7 +2329,9 @@ begin
ecContextHelp: ecContextHelp:
if Sender=MessagesView then if Sender=MessagesView then
HelpBoss.ShowHelpForMessage(-1); HelpBoss.ShowHelpForMessage(-1)
else if Sender is TObjectInspector then
HelpBoss.ShowHelpForObjectInspector(Sender);
ecSave: ecSave:
if (Sender is TDesigner) then begin if (Sender is TDesigner) then begin
@ -8248,6 +8255,18 @@ begin
end; end;
end; end;
function TMainIDE.GetDesignerWithProjectFile(AFile: TLazProjectFile;
LoadForm: boolean): TIDesigner;
var
AnUnitInfo: TUnitInfo;
AForm: TCustomForm;
begin
AnUnitInfo:=AFile as TUnitInfo;
AForm:=GetFormOfSource(AnUnitInfo,LoadForm);
if AForm<>nil then
Result:=AForm.Designer;
end;
procedure TMainIDE.GetObjectInspectorUnit( procedure TMainIDE.GetObjectInspectorUnit(
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo);
begin begin
@ -11957,6 +11976,36 @@ begin
Result:=FormEditor1.GetDesignerForm(AnUnitInfo.Component); Result:=FormEditor1.GetDesignerForm(AnUnitInfo.Component);
end; end;
function TMainIDE.GetProjectFileWithRootComponent(AComponent: TComponent
): TLazProjectFile;
var
AnUnitInfo: TUnitInfo;
begin
if AComponent=nil then exit(nil);
AnUnitInfo:=Project1.FirstUnitWithComponent;
while AnUnitInfo<>nil do begin
if AnUnitInfo.Component=AComponent then begin
Result:=AnUnitInfo;
exit;
end;
AnUnitInfo:=AnUnitInfo.NextUnitWithComponent;
end;
Result:=nil;
end;
function TMainIDE.GetProjectFileWithDesigner(ADesigner: TIDesigner
): TLazProjectFile;
var
TheDesigner: TDesigner;
AComponent: TComponent;
begin
TheDesigner:=ADesigner as TDesigner;
AComponent:=TheDesigner.LookupRoot;
if AComponent=nil then
RaiseException('TMainIDE.GetProjectFileWithDesigner Designer.LookupRoot=nil');
Result:=GetProjectFileWithRootComponent(AComponent);
end;
function TMainIDE.OnPropHookMethodExists(const AMethodName: ShortString; function TMainIDE.OnPropHookMethodExists(const AMethodName: ShortString;
TypeData: PTypeData; TypeData: PTypeData;
var MethodIsCompatible,MethodIsPublished,IdentIsMethod: boolean): boolean; var MethodIsCompatible,MethodIsPublished,IdentIsMethod: boolean): boolean;

View File

@ -577,7 +577,7 @@ type
function ProjectUnitWithShortFilename(const ShortFilename: string): TUnitInfo; function ProjectUnitWithShortFilename(const ShortFilename: string): TUnitInfo;
function ProjectUnitWithUnitname(const AnUnitName: string): TUnitInfo; function ProjectUnitWithUnitname(const AnUnitName: string): TUnitInfo;
function UnitWithEditorIndex(Index:integer): TUnitInfo; function UnitWithEditorIndex(Index:integer): TUnitInfo;
Function UnitWithComponent(AComponent: TComponent): TUnitInfo; function UnitWithComponent(AComponent: TComponent): TUnitInfo;
function UnitInfoWithFilename(const AFilename: string): TUnitInfo; function UnitInfoWithFilename(const AFilename: string): TUnitInfo;
function UnitInfoWithFilename(const AFilename: string; function UnitInfoWithFilename(const AFilename: string;
SearchFlags: TProjectFileSearchFlags): TUnitInfo; SearchFlags: TProjectFileSearchFlags): TUnitInfo;

View File

@ -50,7 +50,7 @@ uses
SynEditTypes, SynEdit, SynRegExpr, SynEditHighlighter, SynEditAutoComplete, SynEditTypes, SynEdit, SynRegExpr, SynEditHighlighter, SynEditAutoComplete,
SynEditKeyCmds, SynCompletion, SynEditKeyCmds, SynCompletion,
// IDE interface // IDE interface
HelpIntf, SrcEditorIntf, MenuIntf, LazIDEIntf, IDEWindowIntf, ProjectIntf, HelpIntf, SrcEditorIntf, MenuIntf, LazIDEIntf, IDEWindowIntf,
// IDE units // IDE units
LazarusIDEStrConsts, LazConf, IDECommands, EditorOptions, KeyMapping, Project, LazarusIDEStrConsts, LazConf, IDECommands, EditorOptions, KeyMapping, Project,
WordCompletion, FindReplaceDialog, FindInFilesDlg, IDEProcs, IDEOptionDefs, WordCompletion, FindReplaceDialog, FindInFilesDlg, IDEProcs, IDEOptionDefs,
@ -307,6 +307,10 @@ type
function GetLines: TStrings; override; function GetLines: TStrings; override;
procedure SetLines(const AValue: TStrings); override; procedure SetLines(const AValue: TStrings); override;
// context
function GetProjectFile: TLazProjectFile; override;
function GetDesigner(LoadForm: boolean): TIDesigner; override;
// notebook // notebook
procedure Activate; procedure Activate;
function PageIndex: integer; function PageIndex: integer;
@ -2399,6 +2403,22 @@ begin
FEditor.Lines:=AValue; FEditor.Lines:=AValue;
end; end;
function TSourceEditor.GetProjectFile: TLazProjectFile;
begin
Result:=Project1.UnitWithEditorIndex(PageIndex);
end;
function TSourceEditor.GetDesigner(LoadForm: boolean): TIDesigner;
var
AProjectFile: TLazProjectFile;
begin
AProjectFile:=GetProjectFile;
if AProjectFile<>nil then
Result:=LazarusIDE.GetDesignerWithProjectFile(AProjectFile,LoadForm)
else
Result:=nil;
end;
function TSourceEditor.GetCursorScreenXY: TPoint; function TSourceEditor.GetCursorScreenXY: TPoint;
begin begin
Result:=FEditor.CaretXY; Result:=FEditor.CaretXY;

View File

@ -22,7 +22,7 @@ unit FormEditingIntf;
interface interface
uses uses
Classes, SysUtils, TypInfo, Forms, Controls, ComponentEditors; Classes, SysUtils, TypInfo, Forms, Controls, ProjectIntf, ComponentEditors;
const const
ComponentPaletteBtnWidth = 25; ComponentPaletteBtnWidth = 25;
@ -35,32 +35,32 @@ type
protected protected
FComponent : TComponent; FComponent : TComponent;
public public
Function GetComponentType : ShortString; virtual; abstract; function GetComponentType : ShortString; virtual; abstract;
Function GetComponentHandle : LongInt; virtual; abstract; function GetComponentHandle : LongInt; virtual; abstract;
Function GetParent : TIComponentInterface; virtual; abstract; function GetParent : TIComponentInterface; virtual; abstract;
Function IsTControl : Boolean; virtual; abstract; function IsTControl : Boolean; virtual; abstract;
Function GetPropCount : Integer; virtual; abstract; function GetPropCount : Integer; virtual; abstract;
Function GetPropType(Index : Integer) : TTypeKind; virtual; abstract; function GetPropType(Index : Integer) : TTypeKind; virtual; abstract;
// Function GetPropType(Index : Integer) : TPropertyType; virtual; abstract; // function GetPropType(Index : Integer) : TPropertyType; virtual; abstract;
Function GetPropName(Index : Integer) : Shortstring; virtual; abstract; function GetPropName(Index : Integer) : Shortstring; virtual; abstract;
Function GetPropTypeByName(Name : ShortString) : TTypeKind; virtual; abstract; function GetPropTypeByName(Name : ShortString) : TTypeKind; virtual; abstract;
// Function GetPropTypebyName(Name : ShortString) : TPropertyType; virtual; abstract; // function GetPropTypebyName(Name : ShortString) : TPropertyType; virtual; abstract;
Function GetPropTypeName(Index : Integer) : ShortString; virtual; abstract; function GetPropTypeName(Index : Integer) : ShortString; virtual; abstract;
Function GetPropValue(Index : Integer; var Value) : Boolean; virtual; abstract; function GetPropValue(Index : Integer; var Value) : Boolean; virtual; abstract;
Function GetPropValuebyName(Name: Shortstring; var Value) : Boolean; virtual; abstract; function GetPropValuebyName(Name: Shortstring; var Value) : Boolean; virtual; abstract;
Function SetProp(Index : Integer; const Value) : Boolean; virtual; abstract; function SetProp(Index : Integer; const Value) : Boolean; virtual; abstract;
Function SetPropbyName(Name : Shortstring; const Value) : Boolean; virtual; abstract; function SetPropbyName(Name : Shortstring; const Value) : Boolean; virtual; abstract;
Function GetControlCount: Integer; virtual; abstract; function GetControlCount: Integer; virtual; abstract;
Function GetControl(Index : Integer): TIComponentInterface; virtual; abstract; function GetControl(Index : Integer): TIComponentInterface; virtual; abstract;
Function GetComponentCount: Integer; virtual; abstract; function GetComponentCount: Integer; virtual; abstract;
Function GetComponent(Index : Integer): TIComponentInterface; virtual; abstract; function GetComponent(Index : Integer): TIComponentInterface; virtual; abstract;
Function Select: Boolean; virtual; abstract; function Select: Boolean; virtual; abstract;
Function Focus: Boolean; virtual; abstract; function Focus: Boolean; virtual; abstract;
Function Delete: Boolean; virtual; abstract; function Delete: Boolean; virtual; abstract;
property Component: TComponent read FComponent; property Component: TComponent read FComponent;
end; end;
@ -70,16 +70,16 @@ type
TIFormInterface = class TIFormInterface = class
public public
Function Filename : AnsiString; virtual; abstract; function Filename : AnsiString; virtual; abstract;
Function FormModified : Boolean; virtual; abstract; function FormModified : Boolean; virtual; abstract;
Function MarkModified : Boolean; virtual; abstract; function MarkModified : Boolean; virtual; abstract;
Function GetFormComponent : TIComponentInterface; virtual; abstract; function GetFormComponent : TIComponentInterface; virtual; abstract;
Function FindComponent : TIComponentInterface; virtual; abstract; function FindComponent : TIComponentInterface; virtual; abstract;
Function GetComponentfromHandle(ComponentHandle:Pointer): TIComponentInterface; virtual; abstract; function GetComponentfromHandle(ComponentHandle:Pointer): TIComponentInterface; virtual; abstract;
Function GetSelCount: Integer; virtual; abstract; function GetSelCount: Integer; virtual; abstract;
Function GetSelComponent(Index : Integer): TIComponentInterface; virtual; abstract; function GetSelComponent(Index : Integer): TIComponentInterface; virtual; abstract;
Function CreateComponent(CI : TIComponentInterface; TypeClass : TComponentClass; function CreateComponent(CI : TIComponentInterface; TypeClass : TComponentClass;
X,Y,W,H : Integer): TIComponentInterface; virtual; abstract; X,Y,W,H : Integer): TIComponentInterface; virtual; abstract;
end; end;
@ -91,23 +91,23 @@ type
function GetDesigner(Index: integer): TIDesigner; virtual; abstract; function GetDesigner(Index: integer): TIDesigner; virtual; abstract;
public public
// components // components
Function FindComponentByName(const Name: ShortString function FindComponentByName(const Name: ShortString
): TIComponentInterface; virtual; abstract; ): TIComponentInterface; virtual; abstract;
Function FindComponent(AComponent: TComponent): TIComponentInterface; virtual; abstract; function FindComponent(AComponent: TComponent): TIComponentInterface; virtual; abstract;
Function GetDefaultComponentParent(TypeClass: TComponentClass function GetDefaultComponentParent(TypeClass: TComponentClass
): TIComponentInterface; virtual; abstract; ): TIComponentInterface; virtual; abstract;
Function GetDefaultComponentPosition(TypeClass: TComponentClass; function GetDefaultComponentPosition(TypeClass: TComponentClass;
ParentCI: TIComponentInterface; ParentCI: TIComponentInterface;
var X,Y: integer): boolean; virtual; abstract; var X,Y: integer): boolean; virtual; abstract;
Function CreateComponent(ParentCI: TIComponentInterface; function CreateComponent(ParentCI: TIComponentInterface;
TypeClass: TComponentClass; TypeClass: TComponentClass;
X,Y,W,H: Integer): TIComponentInterface; virtual; abstract; X,Y,W,H: Integer): TIComponentInterface; virtual; abstract;
Function CreateComponentFromStream(BinStream: TStream; function CreateComponentFromStream(BinStream: TStream;
AncestorType: TComponentClass; AncestorType: TComponentClass;
const NewUnitName: ShortString; const NewUnitName: ShortString;
Interactive: boolean): TIComponentInterface; virtual; abstract; Interactive: boolean): TIComponentInterface; virtual; abstract;
Function CreateChildComponentFromStream(BinStream: TStream; function CreateChildComponentFromStream(BinStream: TStream;
ComponentClass: TComponentClass; ComponentClass: TComponentClass;
Root: TComponent; Root: TComponent;
ParentControl: TWinControl ParentControl: TWinControl

View File

@ -687,6 +687,7 @@ type
const CodePos: TPoint; const CodePos: TPoint;
var ErrMsg: string): TShowHelpResult; virtual; abstract; var ErrMsg: string): TShowHelpResult; virtual; abstract;
procedure ShowHelpForMessage(Line: integer); virtual; abstract; procedure ShowHelpForMessage(Line: integer); virtual; abstract;
procedure ShowHelpForObjectInspector(Sender: TObject); virtual; abstract;
end; end;

View File

@ -470,6 +470,7 @@ var
IDECmdScopeSrcEdit: TIDECommandScope; IDECmdScopeSrcEdit: TIDECommandScope;
IDECmdScopeSrcEditOnly: TIDECommandScope; IDECmdScopeSrcEditOnly: TIDECommandScope;
IDECmdScopeDesignerOnly: TIDECommandScope; IDECmdScopeDesignerOnly: TIDECommandScope;
IDECmdScopeObjctInspectorOnly: TIDECommandScope;
// register a new IDE command category (i.e. set of commands) // register a new IDE command category (i.e. set of commands)
function RegisterIDECommandCategory(Parent: TIDECommandCategory; function RegisterIDECommandCategory(Parent: TIDECommandCategory;
@ -550,6 +551,7 @@ begin
IDECmdScopeSrcEdit:=RegisterIDECommandScope('SourceEditor'); IDECmdScopeSrcEdit:=RegisterIDECommandScope('SourceEditor');
IDECmdScopeSrcEditOnly:=RegisterIDECommandScope('SourceEditorOnly'); IDECmdScopeSrcEditOnly:=RegisterIDECommandScope('SourceEditorOnly');
IDECmdScopeDesignerOnly:=RegisterIDECommandScope('DesignerOnly'); IDECmdScopeDesignerOnly:=RegisterIDECommandScope('DesignerOnly');
IDECmdScopeObjctInspectorOnly:=RegisterIDECommandScope('ObjectInspectorOnly');
end; end;
function CompareIDEShortCuts(Data1, Data2: Pointer): integer; function CompareIDEShortCuts(Data1, Data2: Pointer): integer;

View File

@ -164,6 +164,11 @@ type
FocusEditor: boolean): boolean; virtual; abstract; FocusEditor: boolean): boolean; virtual; abstract;
procedure DoJumpToNextError(DirectionDown: boolean); virtual; abstract; procedure DoJumpToNextError(DirectionDown: boolean); virtual; abstract;
procedure DoShowMessagesView; virtual; abstract; procedure DoShowMessagesView; virtual; abstract;
function GetDesignerWithProjectFile(AFile: TLazProjectFile;
LoadForm: boolean): TIDesigner; virtual; abstract;
function GetProjectFileWithRootComponent(AComponent: TComponent): TLazProjectFile; virtual; abstract;
function GetProjectFileWithDesigner(ADesigner: TIDesigner): TLazProjectFile; virtual; abstract;
public public
property ActiveProject: TLazProject read GetActiveProject; property ActiveProject: TLazProject read GetActiveProject;
end; end;

View File

@ -263,6 +263,7 @@ type
FBackgroundColor: TColor; FBackgroundColor: TColor;
FColumn: TOICustomPropertyGridColumn; FColumn: TOICustomPropertyGridColumn;
FLayout: TOILayout; FLayout: TOILayout;
FOnOIKeyDown: TKeyEvent;
FReferencesColor: TColor; FReferencesColor: TColor;
FRowSpacing: integer; FRowSpacing: integer;
FSubPropertiesColor: TColor; FSubPropertiesColor: TColor;
@ -433,6 +434,7 @@ type
property Layout: TOILayout read FLayout write FLayout default oilHorizontal; property Layout: TOILayout read FLayout write FLayout default oilHorizontal;
property NameFont: TFont read FNameFont write FNameFont; property NameFont: TFont read FNameFont write FNameFont;
property OnModified: TNotifyEvent read FOnModified write FOnModified; property OnModified: TNotifyEvent read FOnModified write FOnModified;
property OnOIKeyDown: TKeyEvent read FOnOIKeyDown write FOnOIKeyDown;
property PrefferedSplitterX: integer read FPreferredSplitterX property PrefferedSplitterX: integer read FPreferredSplitterX
write FPreferredSplitterX default 100; write FPreferredSplitterX default 100;
property PropertyEditorHook: TPropertyEditorHook read FPropertyEditorHook property PropertyEditorHook: TPropertyEditorHook read FPropertyEditorHook
@ -546,7 +548,8 @@ type
procedure AvailComboBoxCloseUp(Sender: TObject); procedure AvailComboBoxCloseUp(Sender: TObject);
procedure ComponentTreeSelectionChanged(Sender: TObject); procedure ComponentTreeSelectionChanged(Sender: TObject);
procedure ObjectInspectorResize(Sender: TObject); procedure ObjectInspectorResize(Sender: TObject);
procedure OnGriddKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure OnGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure OnGridKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure OnSetDefaultPopupmenuItemClick(Sender: TObject); procedure OnSetDefaultPopupmenuItemClick(Sender: TObject);
procedure OnAddToFavoritesPopupmenuItemClick(Sender: TObject); procedure OnAddToFavoritesPopupmenuItemClick(Sender: TObject);
procedure OnRemoveFromFavoritesPopupmenuItemClick(Sender: TObject); procedure OnRemoveFromFavoritesPopupmenuItemClick(Sender: TObject);
@ -562,6 +565,7 @@ type
private private
FFavourites: TOIFavouriteProperties; FFavourites: TOIFavouriteProperties;
FOnAddToFavourites: TNotifyEvent; FOnAddToFavourites: TNotifyEvent;
FOnOIKeyDown: TKeyEvent;
FOnRemainingKeyUp: TKeyEvent; FOnRemainingKeyUp: TKeyEvent;
FOnRemoveFromFavourites: TNotifyEvent; FOnRemoveFromFavourites: TNotifyEvent;
FSelection: TPersistentSelectionList; FSelection: TPersistentSelectionList;
@ -646,6 +650,7 @@ type
write FOnAddToFavourites; write FOnAddToFavourites;
property OnRemoveFromFavourites: TNotifyEvent read FOnRemoveFromFavourites property OnRemoveFromFavourites: TNotifyEvent read FOnRemoveFromFavourites
write FOnRemoveFromFavourites; write FOnRemoveFromFavourites;
property OnOIKeyDown: TKeyEvent read FOnOIKeyDown write FOnOIKeyDown;
end; end;
const const
@ -1723,8 +1728,8 @@ begin
inherited KeyDown(Key, Shift); inherited KeyDown(Key, Shift);
end; end;
procedure TOICustomPropertyGrid.HandleStandardKeys(var Key: Word; Shift: TShiftState procedure TOICustomPropertyGrid.HandleStandardKeys(var Key: Word;
); Shift: TShiftState);
var var
Handled: Boolean; Handled: Boolean;
begin begin
@ -1759,7 +1764,9 @@ begin
SetRowValue; SetRowValue;
else else
Handled:=false; if Assigned(OnOIKeyDown) then
OnOIKeyDown(Self,Key,Shift);
Handled:=Key=VK_UNKNOWN;
end; end;
if Handled then Key:=VK_UNKNOWN; if Handled then Key:=VK_UNKNOWN;
end; end;
@ -3366,7 +3373,13 @@ begin
ComponentTree.Height:=ClientHeight div 4; ComponentTree.Height:=ClientHeight div 4;
end; end;
procedure TObjectInspector.OnGriddKeyUp(Sender: TObject; var Key: Word; procedure TObjectInspector.OnGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Assigned(OnOIKeyDown) then OnOIKeyDown(Self,Key,Shift);
end;
procedure TObjectInspector.OnGridKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); Shift: TShiftState);
begin begin
if Assigned(OnRemainingKeyUp) then OnRemainingKeyUp(Self,Key,Shift); if Assigned(OnRemainingKeyUp) then OnRemainingKeyUp(Self,Key,Shift);
@ -3594,7 +3607,8 @@ begin
Align:=alClient; Align:=alClient;
PopupMenu:=MainPopupMenu; PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified; OnModified:=@OnGridModified;
OnKeyUp:=@OnGriddKeyUp; OnOIKeyDown:=@OnGridKeyDown;
OnKeyUp:=@OnGridKeyUp;
end; end;
// event grid // event grid
@ -3607,7 +3621,8 @@ begin
Align:=alClient; Align:=alClient;
PopupMenu:=MainPopupMenu; PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified; OnModified:=@OnGridModified;
OnKeyUp:=@OnGriddKeyUp; OnOIKeyDown:=@OnGridKeyDown;
OnKeyUp:=@OnGridKeyUp;
end; end;
CreateFavouritePage; CreateFavouritePage;
@ -3639,7 +3654,7 @@ begin
Align:=alClient; Align:=alClient;
PopupMenu:=MainPopupMenu; PopupMenu:=MainPopupMenu;
OnModified:=@OnGridModified; OnModified:=@OnGridModified;
OnKeyUp:=@OnGriddKeyUp; OnKeyUp:=@OnGridKeyUp;
end; end;
FavouriteGrid.Favourites:=FFavourites; FavouriteGrid.Favourites:=FFavourites;
end; end;

View File

@ -20,7 +20,7 @@ unit SrcEditorIntf;
interface interface
uses uses
Classes, SysUtils, LCLProc, Forms, Controls; Classes, SysUtils, LCLProc, Forms, Controls, ProjectIntf;
type type
TSrcEditSearchOption = (sesoMatchCase, sesoWholeWord, sesoBackwards, TSrcEditSearchOption = (sesoMatchCase, sesoWholeWord, sesoBackwards,
@ -94,6 +94,10 @@ type
// search and replace // search and replace
function SearchReplace(const ASearch, AReplace: string; function SearchReplace(const ASearch, AReplace: string;
SearchOptions: TSrcEditSearchOptions): integer; virtual; abstract; SearchOptions: TSrcEditSearchOptions): integer; virtual; abstract;
// context
function GetProjectFile: TLazProjectFile; virtual; abstract;
function GetDesigner(LoadForm: boolean): TIDesigner; virtual; abstract;
public public
property BlockBegin: TPoint read GetBlockBegin write SetBlockBegin; property BlockBegin: TPoint read GetBlockBegin write SetBlockBegin;
property BlockEnd: TPoint read GetBlockEnd write SetBlockEnd; property BlockEnd: TPoint read GetBlockEnd write SetBlockEnd;

View File

@ -1,7 +1,7 @@
/* XPM */ /* XPM */
static char * tpanel_xpm[] = { static char * tpanel_xpm[] = {
"20 21 4 1", "20 21 4 1",
" c None", " c None",
". c #808080", ". c #808080",
"+ c #FFFFFF", "+ c #FFFFFF",
"@ c #C0C0C0", "@ c #C0C0C0",
@ -25,5 +25,4 @@ static char * tpanel_xpm[] = {
".+@@@@@@@@@@@@@@@@.+", ".+@@@@@@@@@@@@@@@@.+",
".@.................+", ".@.................+",
" +++++++++++++++++++", " +++++++++++++++++++",
" "}; " . "};

View File

@ -2467,16 +2467,16 @@ LazarusResources.Add('tpairsplitter','XPM',[
+'....@@@@@......"};'#10 +'....@@@@@......"};'#10
]); ]);
LazarusResources.Add('tpanel','XPM',[ LazarusResources.Add('tpanel','XPM',[
'/* XPM */'#10'static char * tpanel_xpm[] = {'#10'"20 21 4 1",'#10'"'#9'c Non' '/* XPM */'#10'static char * tpanel_xpm[] = {'#10'"20 21 4 1",'#10'" '#9'c No'
+'e",'#10'".'#9'c #808080",'#10'"+'#9'c #FFFFFF",'#10'"@'#9'c #C0C0C0",'#10'"' +'ne",'#10'".'#9'c #808080",'#10'"+'#9'c #FFFFFF",'#10'"@'#9'c #C0C0C0",'#10
+'................... ",'#10'".+++++++++++++++++@+",'#10'".+@@@@@@@@@@@@@@@@.' +'"................... ",'#10'".+++++++++++++++++@+",'#10'".+@@@@@@@@@@@@@@@@'
+'.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@'
+'@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'"'
+'.+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.'
+'+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@' +'+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@'
+'@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".' +'@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".'
+'+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+' +'+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".@.................+'
+'",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@' +'",'#10'" +++++++++++++++++++",'#10'" . "};'#10
+'@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".+'
+'@@@@@@@@@@@@@@@@.+",'#10'".+@@@@@@@@@@@@@@@@.+",'#10'".@.................+"'
+','#10'" +++++++++++++++++++",'#10'"'#9#9' "};'#10#10
]); ]);
LazarusResources.Add('tpicture','XPM',[ LazarusResources.Add('tpicture','XPM',[
'/* XPM */'#10'static char *graphic[] = {'#10'"23 23 61 1",'#10'". c None",' '/* XPM */'#10'static char *graphic[] = {'#10'"23 23 61 1",'#10'". c None",'

View File

@ -266,7 +266,7 @@ type
TKeyEvent = procedure(Sender: TObject; var Key: Word; Shift:TShiftState) of Object; TKeyEvent = procedure(Sender: TObject; var Key: Word; Shift: TShiftState) of Object;
TKeyPressEvent = procedure(Sender: TObject; var Key: char) of Object; TKeyPressEvent = procedure(Sender: TObject; var Key: char) of Object;
TUTF8KeyPressEvent = procedure(Sender: TObject; var UTF8Key: TUTF8Char) of Object; TUTF8KeyPressEvent = procedure(Sender: TObject; var UTF8Key: TUTF8Char) of Object;

View File

@ -2170,8 +2170,11 @@ var
inc(ReadPos); inc(ReadPos);
end; end;
CurEntry:=PXPMPixelToColorEntry( CurEntry:=PXPMPixelToColorEntry(
FPixelToColorTree.FindData(IntArray,FCharsPerPixel)); FPixelToColorTree.FindData(IntArray,FCharsPerPixel));
CurColor:=CurEntry^.Color; if CurEntry<>nil then
CurColor:=CurEntry^.Color
else
RaiseXPMReadError('invalid color',ReadPos-FCharsPerPixel);
{if CurEntry2<>CurEntry then begin {if CurEntry2<>CurEntry then begin
DebugLn('x=',x,' y=',y,' Pixel=',Entry^.Pixel, DebugLn('x=',x,' y=',y,' Pixel=',Entry^.Pixel,
' RefPixel=',CurEntry^.Pixel, ' RefPixel=',CurEntry^.Pixel,