mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 23:49:28 +02: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;
|
||||
|
||||
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
|
||||
FMainIDE : TComponent;
|
||||
FFormEditor : TFormEditor;
|
||||
@ -323,20 +340,6 @@ type
|
||||
// PopupMenu
|
||||
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 BreakPointDeleted(Sender : TObject; Line : Integer);
|
||||
|
||||
@ -389,6 +392,8 @@ type
|
||||
function EditorCount:integer;
|
||||
function FindSourceEditorWithPageIndex(PageIndex:integer):TSourceEditor;
|
||||
function FindPageWithEditor(ASourceEditor: TSourceEditor):integer;
|
||||
function FindSourceEditorWithEditorComponent(
|
||||
EditorComp: TComponent): TSourceEditor;
|
||||
Function GetActiveSE : TSourceEditor;
|
||||
procedure LockAllEditorsInSourceChangeCache;
|
||||
procedure UnlockAllEditorsInSourceChangeCache;
|
||||
@ -748,7 +753,7 @@ end;
|
||||
|
||||
Function TSourceEditor.GetReadOnly : Boolean;
|
||||
Begin
|
||||
Result := FEditor.ReadOnly;
|
||||
Result:=FEditor.ReadOnly;
|
||||
End;
|
||||
|
||||
procedure TSourceEditor.SetReadOnly(NewValue: boolean);
|
||||
@ -2274,6 +2279,18 @@ begin
|
||||
FOnEditorPropertiesClicked(Sender);
|
||||
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;
|
||||
|
||||
Function Seperator : TMenuItem;
|
||||
@ -2289,6 +2306,7 @@ var
|
||||
Begin
|
||||
SrcPopupMenu := TPopupMenu.Create(Self);
|
||||
SrcPopupMenu.AutoPopup := True;
|
||||
SrcPopupMenu.OnPopup :=@SrcPopUpMenuPopup;
|
||||
|
||||
MenuItem := TMenuItem.Create(Self);
|
||||
MenuItem.Name:='FindDeclarationMenuItem';
|
||||
@ -2342,17 +2360,19 @@ Begin
|
||||
|
||||
SrcPopupMenu.Items.Add(Seperator);
|
||||
|
||||
MenuItem := TMenuItem.Create(Self);
|
||||
MenuItem.Name:='ReadOnlyMenuItem';
|
||||
MenuItem.Caption := 'Read Only';
|
||||
MenuItem.OnClick := @ReadOnlyClicked;
|
||||
SrcPopupMenu.Items.Add(MenuItem);
|
||||
ReadOnlyMenuItem := TMenuItem.Create(Self);
|
||||
ReadOnlyMenuItem.Name:='ReadOnlyMenuItem';
|
||||
ReadOnlyMenuItem.Caption := 'Read Only';
|
||||
ReadOnlyMenuItem.OnClick := @ReadOnlyClicked;
|
||||
ReadOnlyMenuItem.ShowAlwaysCheckable:=true;
|
||||
SrcPopupMenu.Items.Add(ReadOnlyMenuItem);
|
||||
|
||||
MenuItem := TMenuItem.Create(Self);
|
||||
MenuItem.Name := 'ShowLineNumbersMenuItem';
|
||||
MenuItem.Caption := 'Show Line Numbers';
|
||||
menuItem.OnClick := @ToggleLineNumbersClicked;
|
||||
SrcPopupMenu.Items.Add(MenuItem);
|
||||
ShowLineNumbersMenuItem := TMenuItem.Create(Self);
|
||||
ShowLineNumbersMenuItem.Name := 'ShowLineNumbersMenuItem';
|
||||
ShowLineNumbersMenuItem.Caption := 'Show Line Numbers';
|
||||
ShowLineNumbersMenuItem.OnClick := @ToggleLineNumbersClicked;
|
||||
ShowLineNumbersMenuItem.ShowAlwaysCheckable:=true;
|
||||
SrcPopupMenu.Items.Add(ShowLineNumbersMenuItem);
|
||||
|
||||
SrcPopupMenu.Items.Add(Seperator);
|
||||
|
||||
@ -2395,6 +2415,7 @@ Begin
|
||||
MenuItem.OnClick :=@EditorPropertiesClicked;
|
||||
SrcPopupMenu.Items.Add(MenuItem);
|
||||
|
||||
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------------
|
||||
@ -2728,6 +2749,7 @@ end;
|
||||
Procedure TSourceNotebook.ReadOnlyClicked(Sender : TObject);
|
||||
var ActEdit:TSourceEditor;
|
||||
begin
|
||||
writeln('DDD1');
|
||||
ActEdit:=GetActiveSE;
|
||||
if ActEdit.ReadOnly and (ActEdit.CodeBuffer<>nil)
|
||||
and (not ActEdit.CodeBuffer.IsVirtual)
|
||||
@ -3078,6 +3100,19 @@ begin
|
||||
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);
|
||||
var TempEditor:TSourceEditor;
|
||||
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
|
||||
Params: AOwner: the owner of the class
|
||||
@ -30,18 +41,19 @@ begin
|
||||
end;
|
||||
|
||||
Procedure TPopupMenu.PopUp(X,Y : Integer);
|
||||
var
|
||||
P : TPoint;
|
||||
begin
|
||||
P.X := X;
|
||||
P.Y := Y;
|
||||
FPopupPoint := Point(X, Y);
|
||||
DoPopup(Self);
|
||||
HandleNeeded;
|
||||
InterfaceObject.IntSendMessage3(LM_POPUPSHOW, Self, @P);
|
||||
InterfaceObject.IntSendMessage3(LM_POPUPSHOW, Self, @FPopupPoint);
|
||||
end;
|
||||
|
||||
|
||||
{
|
||||
$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
|
||||
MG: changed license to LGPL
|
||||
|
||||
|
@ -208,20 +208,23 @@ var
|
||||
Mess : TLMessage;
|
||||
LCLMenuItem: TMenuItem;
|
||||
begin
|
||||
Result:=true;
|
||||
EventTrace('activate', data);
|
||||
if GTK_IS_CHECK_MENU_ITEM(widget) then begin
|
||||
LCLMenuItem:=TMenuItem(GetLCLObject(Widget));
|
||||
if LCLMenuItem<>nil then begin
|
||||
if (not LCLMenuItem.AutoCheck) then begin
|
||||
// restore 'checked' flag
|
||||
if ((PGtkCheckMenuItem(Widget)^.flag0 and bm_checkmenuitem_active)<>0)
|
||||
<>LCLMenuItem.Checked
|
||||
then begin
|
||||
gtk_check_menu_item_set_active(PGtkCheckMenuItem(Widget),
|
||||
LCLMenuItem.Checked);
|
||||
Result:=true;
|
||||
exit;
|
||||
if ((PGtkCheckMenuItem(Widget)^.flag0 and bm_checkmenuitem_active)<>0)
|
||||
<>LCLMenuItem.Checked
|
||||
then begin
|
||||
if (not LCLMenuItem.AutoCheck) then begin
|
||||
// the gtk always toggles the check flag
|
||||
// restore 'checked' flag
|
||||
PGtkCheckMenuItem(Widget)^.flag0:=
|
||||
PGtkCheckMenuItem(Widget)^.flag0 and not bm_checkmenuitem_active;
|
||||
end;
|
||||
end else begin
|
||||
// menuitem is already in sync -> don't send a change event
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -2139,6 +2142,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$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
|
||||
MG: started menuitem icon, checked, radio and groupindex
|
||||
|
||||
|
@ -257,14 +257,20 @@ type
|
||||
TPopupMenu = class(TMenu)
|
||||
private
|
||||
FAutoPopup : Boolean;
|
||||
FOnPopup: TNotifyEvent;
|
||||
FPopupComponent : TComponent;
|
||||
FPopupPoint: TPoint;
|
||||
protected
|
||||
procedure DoPopup(Sender: TObject); virtual;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
procedure PopUp(X, Y : Integer);
|
||||
property PopupComponent : TComponent
|
||||
read FPopupComponent write FPopupComponent;
|
||||
property PopupPoint: TPoint read FPopupPoint;
|
||||
published
|
||||
property AutoPopup : Boolean read FAutoPopup write FAutoPopup default True;
|
||||
property OnPopup: TNotifyEvent read FOnPopup write FOnPopup;
|
||||
end;
|
||||
|
||||
|
||||
@ -457,6 +463,9 @@ end.
|
||||
|
||||
{
|
||||
$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
|
||||
MG: custom external tools are now shown in the menu
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user