mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-26 11:27:20 +01:00
MG: added TPopupMenu.OnPopup and SourceEditor PopupMenu checks
git-svn-id: trunk@1848 -
This commit is contained in:
parent
7a18985011
commit
ce83336615
@ -277,6 +277,23 @@ type
|
|||||||
APageIndex: integer; DeleteForwardHistory: boolean) of object;
|
APageIndex: integer; DeleteForwardHistory: boolean) of object;
|
||||||
|
|
||||||
TSourceNotebook = class(TForm)
|
TSourceNotebook = class(TForm)
|
||||||
|
ReadOnlyMenuItem: TMenuItem;
|
||||||
|
ShowLineNumbersMenuItem: TMenuItem;
|
||||||
|
|
||||||
|
procedure SrcPopUpMenuPopup(Sender: TObject);
|
||||||
|
Procedure BookMarkClicked(Sender : TObject);
|
||||||
|
Procedure BookMarkGotoClicked(Sender : TObject);
|
||||||
|
Procedure ReadOnlyClicked(Sender : TObject);
|
||||||
|
Procedure ShowUnitInfo(Sender : TObject);
|
||||||
|
Procedure ToggleBreakpointClicked(Sender : TObject);
|
||||||
|
Procedure AddWatchAtCursor(Sender : TObject);
|
||||||
|
Procedure ToggleLineNumbersClicked(Sender : TObject);
|
||||||
|
Procedure OpenAtCursorClicked(Sender : TObject);
|
||||||
|
Procedure FindDeclarationClicked(Sender : TObject);
|
||||||
|
Procedure BookmarkGoTo(Index: Integer);
|
||||||
|
Procedure BookMarkSet(Value : Integer);
|
||||||
|
Procedure BookMarkToggle(Value : Integer);
|
||||||
|
procedure EditorPropertiesClicked(Sender: TObject);
|
||||||
private
|
private
|
||||||
FMainIDE : TComponent;
|
FMainIDE : TComponent;
|
||||||
FFormEditor : TFormEditor;
|
FFormEditor : TFormEditor;
|
||||||
@ -323,20 +340,6 @@ type
|
|||||||
// PopupMenu
|
// PopupMenu
|
||||||
Procedure BuildPopupMenu;
|
Procedure BuildPopupMenu;
|
||||||
|
|
||||||
Procedure BookMarkClicked(Sender : TObject);
|
|
||||||
Procedure BookMarkGotoClicked(Sender : TObject);
|
|
||||||
Procedure ReadOnlyClicked(Sender : TObject);
|
|
||||||
Procedure ShowUnitInfo(Sender : TObject);
|
|
||||||
Procedure ToggleBreakpointClicked(Sender : TObject);
|
|
||||||
Procedure AddWatchAtCursor(Sender : TObject);
|
|
||||||
Procedure ToggleLineNumbersClicked(Sender : TObject);
|
|
||||||
Procedure OpenAtCursorClicked(Sender : TObject);
|
|
||||||
Procedure FindDeclarationClicked(Sender : TObject);
|
|
||||||
Procedure BookmarkGoTo(Index: Integer);
|
|
||||||
Procedure BookMarkSet(Value : Integer);
|
|
||||||
Procedure BookMarkToggle(Value : Integer);
|
|
||||||
procedure EditorPropertiesClicked(Sender: TObject);
|
|
||||||
|
|
||||||
Procedure BreakPointCreated(Sender : TObject; Line : Integer);
|
Procedure BreakPointCreated(Sender : TObject; Line : Integer);
|
||||||
Procedure BreakPointDeleted(Sender : TObject; Line : Integer);
|
Procedure BreakPointDeleted(Sender : TObject; Line : Integer);
|
||||||
|
|
||||||
@ -389,6 +392,8 @@ type
|
|||||||
function EditorCount:integer;
|
function EditorCount:integer;
|
||||||
function FindSourceEditorWithPageIndex(PageIndex:integer):TSourceEditor;
|
function FindSourceEditorWithPageIndex(PageIndex:integer):TSourceEditor;
|
||||||
function FindPageWithEditor(ASourceEditor: TSourceEditor):integer;
|
function FindPageWithEditor(ASourceEditor: TSourceEditor):integer;
|
||||||
|
function FindSourceEditorWithEditorComponent(
|
||||||
|
EditorComp: TComponent): TSourceEditor;
|
||||||
Function GetActiveSE : TSourceEditor;
|
Function GetActiveSE : TSourceEditor;
|
||||||
procedure LockAllEditorsInSourceChangeCache;
|
procedure LockAllEditorsInSourceChangeCache;
|
||||||
procedure UnlockAllEditorsInSourceChangeCache;
|
procedure UnlockAllEditorsInSourceChangeCache;
|
||||||
@ -748,7 +753,7 @@ end;
|
|||||||
|
|
||||||
Function TSourceEditor.GetReadOnly : Boolean;
|
Function TSourceEditor.GetReadOnly : Boolean;
|
||||||
Begin
|
Begin
|
||||||
Result := FEditor.ReadOnly;
|
Result:=FEditor.ReadOnly;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
procedure TSourceEditor.SetReadOnly(NewValue: boolean);
|
procedure TSourceEditor.SetReadOnly(NewValue: boolean);
|
||||||
@ -2274,6 +2279,18 @@ begin
|
|||||||
FOnEditorPropertiesClicked(Sender);
|
FOnEditorPropertiesClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSourceNotebook.SrcPopUpMenuPopup(Sender: TObject);
|
||||||
|
var
|
||||||
|
ASrcEdit: TSourceEditor;
|
||||||
|
begin
|
||||||
|
if not (Sender is TPopupMenu) then exit;
|
||||||
|
ASrcEdit:=FindSourceEditorWithEditorComponent(TPopupMenu(Sender).PopupComponent);
|
||||||
|
if ASrcEdit=nil then exit;
|
||||||
|
ReadOnlyMenuItem.Checked:=ASrcEdit.ReadOnly;
|
||||||
|
ShowLineNumbersMenuItem.Checked:=
|
||||||
|
ASrcEdit.EditorComponent.Gutter.ShowLineNumbers;
|
||||||
|
end;
|
||||||
|
|
||||||
Procedure TSourceNotebook.BuildPopupMenu;
|
Procedure TSourceNotebook.BuildPopupMenu;
|
||||||
|
|
||||||
Function Seperator : TMenuItem;
|
Function Seperator : TMenuItem;
|
||||||
@ -2289,6 +2306,7 @@ var
|
|||||||
Begin
|
Begin
|
||||||
SrcPopupMenu := TPopupMenu.Create(Self);
|
SrcPopupMenu := TPopupMenu.Create(Self);
|
||||||
SrcPopupMenu.AutoPopup := True;
|
SrcPopupMenu.AutoPopup := True;
|
||||||
|
SrcPopupMenu.OnPopup :=@SrcPopUpMenuPopup;
|
||||||
|
|
||||||
MenuItem := TMenuItem.Create(Self);
|
MenuItem := TMenuItem.Create(Self);
|
||||||
MenuItem.Name:='FindDeclarationMenuItem';
|
MenuItem.Name:='FindDeclarationMenuItem';
|
||||||
@ -2342,17 +2360,19 @@ Begin
|
|||||||
|
|
||||||
SrcPopupMenu.Items.Add(Seperator);
|
SrcPopupMenu.Items.Add(Seperator);
|
||||||
|
|
||||||
MenuItem := TMenuItem.Create(Self);
|
ReadOnlyMenuItem := TMenuItem.Create(Self);
|
||||||
MenuItem.Name:='ReadOnlyMenuItem';
|
ReadOnlyMenuItem.Name:='ReadOnlyMenuItem';
|
||||||
MenuItem.Caption := 'Read Only';
|
ReadOnlyMenuItem.Caption := 'Read Only';
|
||||||
MenuItem.OnClick := @ReadOnlyClicked;
|
ReadOnlyMenuItem.OnClick := @ReadOnlyClicked;
|
||||||
SrcPopupMenu.Items.Add(MenuItem);
|
ReadOnlyMenuItem.ShowAlwaysCheckable:=true;
|
||||||
|
SrcPopupMenu.Items.Add(ReadOnlyMenuItem);
|
||||||
|
|
||||||
MenuItem := TMenuItem.Create(Self);
|
ShowLineNumbersMenuItem := TMenuItem.Create(Self);
|
||||||
MenuItem.Name := 'ShowLineNumbersMenuItem';
|
ShowLineNumbersMenuItem.Name := 'ShowLineNumbersMenuItem';
|
||||||
MenuItem.Caption := 'Show Line Numbers';
|
ShowLineNumbersMenuItem.Caption := 'Show Line Numbers';
|
||||||
menuItem.OnClick := @ToggleLineNumbersClicked;
|
ShowLineNumbersMenuItem.OnClick := @ToggleLineNumbersClicked;
|
||||||
SrcPopupMenu.Items.Add(MenuItem);
|
ShowLineNumbersMenuItem.ShowAlwaysCheckable:=true;
|
||||||
|
SrcPopupMenu.Items.Add(ShowLineNumbersMenuItem);
|
||||||
|
|
||||||
SrcPopupMenu.Items.Add(Seperator);
|
SrcPopupMenu.Items.Add(Seperator);
|
||||||
|
|
||||||
@ -2395,6 +2415,7 @@ Begin
|
|||||||
MenuItem.OnClick :=@EditorPropertiesClicked;
|
MenuItem.OnClick :=@EditorPropertiesClicked;
|
||||||
SrcPopupMenu.Items.Add(MenuItem);
|
SrcPopupMenu.Items.Add(MenuItem);
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{-------------------------------------------------------------------------------
|
{-------------------------------------------------------------------------------
|
||||||
@ -2728,6 +2749,7 @@ end;
|
|||||||
Procedure TSourceNotebook.ReadOnlyClicked(Sender : TObject);
|
Procedure TSourceNotebook.ReadOnlyClicked(Sender : TObject);
|
||||||
var ActEdit:TSourceEditor;
|
var ActEdit:TSourceEditor;
|
||||||
begin
|
begin
|
||||||
|
writeln('DDD1');
|
||||||
ActEdit:=GetActiveSE;
|
ActEdit:=GetActiveSE;
|
||||||
if ActEdit.ReadOnly and (ActEdit.CodeBuffer<>nil)
|
if ActEdit.ReadOnly and (ActEdit.CodeBuffer<>nil)
|
||||||
and (not ActEdit.CodeBuffer.IsVirtual)
|
and (not ActEdit.CodeBuffer.IsVirtual)
|
||||||
@ -3078,6 +3100,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TSourceNotebook.FindSourceEditorWithEditorComponent(
|
||||||
|
EditorComp: TComponent): TSourceEditor;
|
||||||
|
var i: integer;
|
||||||
|
begin
|
||||||
|
for i:=0 to EditorCount-1 do begin
|
||||||
|
if Editors[i].EditorComponent=EditorComp then begin
|
||||||
|
Result:=Editors[i];
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Result:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
Procedure TSourceNotebook.NotebookPageChanged(Sender : TObject);
|
Procedure TSourceNotebook.NotebookPageChanged(Sender : TObject);
|
||||||
var TempEditor:TSourceEditor;
|
var TempEditor:TSourceEditor;
|
||||||
Begin
|
Begin
|
||||||
|
|||||||
@ -15,6 +15,17 @@
|
|||||||
* *
|
* *
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
procedure TPopupMenu.DoPopup(Sender: TObject);
|
||||||
|
|
||||||
|
Creates the popup window and shows it.
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TPopupMenu.DoPopup(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Assigned(FOnPopup) then FOnPopup(Sender);
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TPopupMenu.Create
|
Method: TPopupMenu.Create
|
||||||
Params: AOwner: the owner of the class
|
Params: AOwner: the owner of the class
|
||||||
@ -30,18 +41,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TPopupMenu.PopUp(X,Y : Integer);
|
Procedure TPopupMenu.PopUp(X,Y : Integer);
|
||||||
var
|
|
||||||
P : TPoint;
|
|
||||||
begin
|
begin
|
||||||
P.X := X;
|
FPopupPoint := Point(X, Y);
|
||||||
P.Y := Y;
|
DoPopup(Self);
|
||||||
HandleNeeded;
|
HandleNeeded;
|
||||||
InterfaceObject.IntSendMessage3(LM_POPUPSHOW, Self, @P);
|
InterfaceObject.IntSendMessage3(LM_POPUPSHOW, Self, @FPopupPoint);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.5 2002/08/17 07:57:05 lazarus
|
||||||
|
MG: added TPopupMenu.OnPopup and SourceEditor PopupMenu checks
|
||||||
|
|
||||||
Revision 1.4 2002/05/10 06:05:55 lazarus
|
Revision 1.4 2002/05/10 06:05:55 lazarus
|
||||||
MG: changed license to LGPL
|
MG: changed license to LGPL
|
||||||
|
|
||||||
|
|||||||
@ -208,20 +208,23 @@ var
|
|||||||
Mess : TLMessage;
|
Mess : TLMessage;
|
||||||
LCLMenuItem: TMenuItem;
|
LCLMenuItem: TMenuItem;
|
||||||
begin
|
begin
|
||||||
|
Result:=true;
|
||||||
EventTrace('activate', data);
|
EventTrace('activate', data);
|
||||||
if GTK_IS_CHECK_MENU_ITEM(widget) then begin
|
if GTK_IS_CHECK_MENU_ITEM(widget) then begin
|
||||||
LCLMenuItem:=TMenuItem(GetLCLObject(Widget));
|
LCLMenuItem:=TMenuItem(GetLCLObject(Widget));
|
||||||
if LCLMenuItem<>nil then begin
|
if LCLMenuItem<>nil then begin
|
||||||
if (not LCLMenuItem.AutoCheck) then begin
|
|
||||||
// restore 'checked' flag
|
|
||||||
if ((PGtkCheckMenuItem(Widget)^.flag0 and bm_checkmenuitem_active)<>0)
|
if ((PGtkCheckMenuItem(Widget)^.flag0 and bm_checkmenuitem_active)<>0)
|
||||||
<>LCLMenuItem.Checked
|
<>LCLMenuItem.Checked
|
||||||
then begin
|
then begin
|
||||||
gtk_check_menu_item_set_active(PGtkCheckMenuItem(Widget),
|
if (not LCLMenuItem.AutoCheck) then begin
|
||||||
LCLMenuItem.Checked);
|
// the gtk always toggles the check flag
|
||||||
Result:=true;
|
// restore 'checked' flag
|
||||||
exit;
|
PGtkCheckMenuItem(Widget)^.flag0:=
|
||||||
|
PGtkCheckMenuItem(Widget)^.flag0 and not bm_checkmenuitem_active;
|
||||||
end;
|
end;
|
||||||
|
end else begin
|
||||||
|
// menuitem is already in sync -> don't send a change event
|
||||||
|
exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2139,6 +2142,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.98 2002/08/17 07:57:05 lazarus
|
||||||
|
MG: added TPopupMenu.OnPopup and SourceEditor PopupMenu checks
|
||||||
|
|
||||||
Revision 1.97 2002/08/15 13:37:57 lazarus
|
Revision 1.97 2002/08/15 13:37:57 lazarus
|
||||||
MG: started menuitem icon, checked, radio and groupindex
|
MG: started menuitem icon, checked, radio and groupindex
|
||||||
|
|
||||||
|
|||||||
@ -257,14 +257,20 @@ type
|
|||||||
TPopupMenu = class(TMenu)
|
TPopupMenu = class(TMenu)
|
||||||
private
|
private
|
||||||
FAutoPopup : Boolean;
|
FAutoPopup : Boolean;
|
||||||
|
FOnPopup: TNotifyEvent;
|
||||||
FPopupComponent : TComponent;
|
FPopupComponent : TComponent;
|
||||||
|
FPopupPoint: TPoint;
|
||||||
|
protected
|
||||||
|
procedure DoPopup(Sender: TObject); virtual;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
procedure PopUp(X, Y : Integer);
|
procedure PopUp(X, Y : Integer);
|
||||||
property PopupComponent : TComponent
|
property PopupComponent : TComponent
|
||||||
read FPopupComponent write FPopupComponent;
|
read FPopupComponent write FPopupComponent;
|
||||||
|
property PopupPoint: TPoint read FPopupPoint;
|
||||||
published
|
published
|
||||||
property AutoPopup : Boolean read FAutoPopup write FAutoPopup default True;
|
property AutoPopup : Boolean read FAutoPopup write FAutoPopup default True;
|
||||||
|
property OnPopup: TNotifyEvent read FOnPopup write FOnPopup;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -457,6 +463,9 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.25 2002/08/17 07:57:05 lazarus
|
||||||
|
MG: added TPopupMenu.OnPopup and SourceEditor PopupMenu checks
|
||||||
|
|
||||||
Revision 1.24 2002/08/16 20:13:09 lazarus
|
Revision 1.24 2002/08/16 20:13:09 lazarus
|
||||||
MG: custom external tools are now shown in the menu
|
MG: custom external tools are now shown in the menu
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user