mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 03:09:32 +02:00
designer: handle popup menu key press
git-svn-id: trunk@23177 -
This commit is contained in:
parent
636477433b
commit
db451e1ee6
@ -161,10 +161,11 @@ type
|
|||||||
function MoveControl(Sender: TControl; TheMessage: TLMMove): Boolean;
|
function MoveControl(Sender: TControl; TheMessage: TLMMove): Boolean;
|
||||||
procedure MouseDownOnControl(Sender: TControl; var TheMessage: TLMMouse);
|
procedure MouseDownOnControl(Sender: TControl; var TheMessage: TLMMouse);
|
||||||
procedure MouseMoveOnControl(Sender: TControl; var TheMessage: TLMMouse);
|
procedure MouseMoveOnControl(Sender: TControl; var TheMessage: TLMMouse);
|
||||||
procedure MouseUpOnControl(Sender: TControl; var TheMessage:TLMMouse);
|
procedure MouseUpOnControl(Sender: TControl; var TheMessage: TLMMouse);
|
||||||
procedure KeyDown(Sender: TControl; var TheMessage: TLMKEY);
|
procedure KeyDown(Sender: TControl; var TheMessage: TLMKEY);
|
||||||
procedure KeyUp(Sender: TControl; var TheMessage: TLMKEY);
|
procedure KeyUp(Sender: TControl; var TheMessage: TLMKEY);
|
||||||
function HandleSetCursor(var TheMessage: TLMessage): boolean;
|
function HandleSetCursor(var TheMessage: TLMessage): boolean;
|
||||||
|
procedure HandlePopupMenu(Sender: TControl; var Message: TLMMouse);
|
||||||
procedure GetMouseMsgShift(TheMessage: TLMMouse; var Shift: TShiftState;
|
procedure GetMouseMsgShift(TheMessage: TLMMouse; var Shift: TShiftState;
|
||||||
var Button: TMouseButton);
|
var Button: TMouseButton);
|
||||||
|
|
||||||
@ -1560,6 +1561,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TDesigner.HandlePopupMenu(Sender: TControl; var Message: TLMMouse);
|
||||||
|
var
|
||||||
|
PopupPos: TPoint;
|
||||||
|
begin
|
||||||
|
PopupMenuComponentEditor := GetComponentEditorForSelection;
|
||||||
|
BuildPopupMenu;
|
||||||
|
with ControlSelection do
|
||||||
|
PopupPos := Point(Left + Width, Top);
|
||||||
|
with Form.ClientToScreen(PopupPos) do
|
||||||
|
FDesignerPopupMenu.Popup(X, Y);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TDesigner.GetMouseMsgShift(TheMessage: TLMMouse;
|
procedure TDesigner.GetMouseMsgShift(TheMessage: TLMMouse;
|
||||||
var Shift: TShiftState; var Button: TMouseButton);
|
var Shift: TShiftState; var Button: TMouseButton);
|
||||||
begin
|
begin
|
||||||
@ -2132,10 +2145,10 @@ begin
|
|||||||
and (not ControlSelection.IsSelected(MouseDownComponent))
|
and (not ControlSelection.IsSelected(MouseDownComponent))
|
||||||
and (Shift - [ssRight] = []) then
|
and (Shift - [ssRight] = []) then
|
||||||
PointSelect;
|
PointSelect;
|
||||||
PopupMenuComponentEditor:=GetComponentEditorForSelection;
|
PopupMenuComponentEditor := GetComponentEditorForSelection;
|
||||||
BuildPopupMenu;
|
BuildPopupMenu;
|
||||||
PopupPos := Form.ClientToScreen(MouseUpPos);
|
PopupPos := Form.ClientToScreen(MouseUpPos);
|
||||||
FDesignerPopupMenu.Popup(PopupPos.X,PopupPos.Y);
|
FDesignerPopupMenu.Popup(PopupPos.X, PopupPos.Y);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
DisableRubberBand;
|
DisableRubberBand;
|
||||||
@ -2539,9 +2552,8 @@ begin
|
|||||||
FOnGetSelectedComponentClass(Self,Result);
|
FOnGetSelectedComponentClass(Self,Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDesigner.IsDesignMsg(Sender: TControl;
|
function TDesigner.IsDesignMsg(Sender: TControl; var TheMessage: TLMessage): Boolean;
|
||||||
var TheMessage: TLMessage): Boolean;
|
begin
|
||||||
Begin
|
|
||||||
Result := false;
|
Result := false;
|
||||||
if csDesigning in Sender.ComponentState then begin
|
if csDesigning in Sender.ComponentState then begin
|
||||||
Result:=true;
|
Result:=true;
|
||||||
@ -2553,13 +2565,14 @@ Begin
|
|||||||
LM_RBUTTONDOWN,
|
LM_RBUTTONDOWN,
|
||||||
LM_LBUTTONDBLCLK: MouseDownOnControl(Sender,TLMMouse(TheMessage));
|
LM_LBUTTONDBLCLK: MouseDownOnControl(Sender,TLMMouse(TheMessage));
|
||||||
LM_LBUTTONUP,
|
LM_LBUTTONUP,
|
||||||
LM_RBUTTONUP: MouseUpOnControl(Sender,TLMMouse(TheMessage));
|
LM_RBUTTONUP: MouseUpOnControl(Sender, TLMMouse(TheMessage));
|
||||||
LM_MOUSEMOVE: MouseMoveOnControl(Sender, TLMMouse(TheMessage));
|
LM_MOUSEMOVE: MouseMoveOnControl(Sender, TLMMouse(TheMessage));
|
||||||
LM_SIZE: Result:=SizeControl(Sender,TLMSize(TheMessage));
|
LM_SIZE: Result:=SizeControl(Sender, TLMSize(TheMessage));
|
||||||
LM_MOVE: Result:=MoveControl(Sender,TLMMove(TheMessage));
|
LM_MOVE: Result:=MoveControl(Sender, TLMMove(TheMessage));
|
||||||
LM_ACTIVATE: Result:=OnFormActivated;
|
LM_ACTIVATE: Result:=OnFormActivated;
|
||||||
LM_CLOSEQUERY: Result:=OnFormCloseQuery;
|
LM_CLOSEQUERY: Result:=OnFormCloseQuery;
|
||||||
LM_SETCURSOR: Result:=HandleSetCursor(TheMessage);
|
LM_SETCURSOR: Result:=HandleSetCursor(TheMessage);
|
||||||
|
LM_CONTEXTMENU: HandlePopupMenu(Sender, TLMMouse(TheMessage));
|
||||||
else
|
else
|
||||||
Result:=false;
|
Result:=false;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user