MG: accelerated designer mouse move and added Delete Selection to designer popupmenu

git-svn-id: trunk@2047 -
This commit is contained in:
lazarus 2002-08-17 23:40:46 +00:00
parent 57973ac038
commit 60e7d72717

View File

@ -91,6 +91,7 @@ type
FSizeMenuItem: TMenuItem; FSizeMenuItem: TMenuItem;
FBringToFrontMenuItem: TMenuItem; FBringToFrontMenuItem: TMenuItem;
FSendToBackMenuItem: TMenuItem; FSendToBackMenuItem: TMenuItem;
FDeleteSelectionMenuItem: TMenuItem;
//hint stuff //hint stuff
FHintTimer : TTimer; FHintTimer : TTimer;
@ -120,6 +121,7 @@ type
MouseUpPos: TPoint; MouseUpPos: TPoint;
LastMouseMovePos: TPoint; LastMouseMovePos: TPoint;
PopupMenuComponentEditor: TBaseComponentEditor; PopupMenuComponentEditor: TBaseComponentEditor;
LastFormCursor: TCursor;
function PaintControl(Sender: TControl; TheMessage: TLMPaint):boolean; function PaintControl(Sender: TControl; TheMessage: TLMPaint):boolean;
function SizeControl(Sender: TControl; TheMessage: TLMSize):boolean; function SizeControl(Sender: TControl; TheMessage: TLMSize):boolean;
@ -144,6 +146,7 @@ type
procedure OnSizePopupMenuClick(Sender: TObject); procedure OnSizePopupMenuClick(Sender: TObject);
procedure OnBringToFrontMenuClick(Sender: TObject); procedure OnBringToFrontMenuClick(Sender: TObject);
procedure OnSendToBackMenuClick(Sender: TObject); procedure OnSendToBackMenuClick(Sender: TObject);
procedure OnDeleteSelectionMenuClick(Sender: TObject);
Procedure OnFormActivated; Procedure OnFormActivated;
procedure OnComponentEditorVerbMenuItemClick(Sender: TObject); procedure OnComponentEditorVerbMenuItemClick(Sender: TObject);
@ -254,6 +257,7 @@ begin
FHintWindow.AutoHide := True; FHintWindow.AutoHide := True;
DDC:=TDesignerDeviceContext.Create; DDC:=TDesignerDeviceContext.Create;
LastFormCursor:=crDefault;
end; end;
destructor TDesigner.Destroy; destructor TDesigner.Destroy;
@ -813,6 +817,8 @@ begin
OldMouseMovePos:= LastMouseMovePos; OldMouseMovePos:= LastMouseMovePos;
LastMouseMovePos:= GetFormRelativeMousePosition(Form); LastMouseMovePos:= GetFormRelativeMousePosition(Form);
if (OldMouseMovePos.X=LastMouseMovePos.X)
and (OldMouseMovePos.Y=LastMouseMovePos.Y) then exit;
Grabber:= ControlSelection.GrabberAtPos(LastMouseMovePos.X, LastMouseMovePos.Y); Grabber:= ControlSelection.GrabberAtPos(LastMouseMovePos.X, LastMouseMovePos.Y);
if Grabber = nil then if Grabber = nil then
@ -820,7 +826,10 @@ begin
else begin else begin
ACursor:= Grabber.Cursor; ACursor:= Grabber.Cursor;
end; end;
CNSendMessage(LM_SETCURSOR, Form, Pointer(Integer(ACursor))); if ACursor<>LastFormCursor then begin
LastFormCursor:=ACursor;
CNSendMessage(LM_SETCURSOR, Form, Pointer(Integer(ACursor)));
end;
if MouseDownComponent=nil then exit; if MouseDownComponent=nil then exit;
@ -1149,6 +1158,11 @@ begin
end; end;
end; end;
procedure TDesigner.OnDeleteSelectionMenuClick(Sender: TObject);
begin
DoDeleteSelectedComponents;
end;
function TDesigner.GetGridColor: TColor; function TDesigner.GetGridColor: TColor;
begin begin
Result:=EnvironmentOptions.GridColor; Result:=EnvironmentOptions.GridColor;
@ -1336,6 +1350,18 @@ begin
end; end;
procedure TDesigner.BuildPopupMenu; procedure TDesigner.BuildPopupMenu;
procedure AddSeparator;
var
NewMenuItem: TMenuItem;
begin
NewMenuItem:=TMenuItem.Create(FPopupMenu);
with NewMenuItem do begin
Caption:='-';
end;
FPopupMenu.Items.Add(NewMenuItem);
end;
var var
ControlSelIsNotEmpty, ControlSelIsNotEmpty,
FormIsSelected, FormIsSelected,
@ -1394,6 +1420,8 @@ begin
end; end;
FPopupMenu.Items.Add(FSizeMenuItem); FPopupMenu.Items.Add(FSizeMenuItem);
AddSeparator;
FBringToFrontMenuItem := TMenuItem.Create(FPopupMenu); FBringToFrontMenuItem := TMenuItem.Create(FPopupMenu);
with FBringToFrontMenuItem do begin with FBringToFrontMenuItem do begin
Caption:= 'Bring to front'; Caption:= 'Bring to front';
@ -1409,6 +1437,16 @@ begin
Enabled:= CompsAreSelected; Enabled:= CompsAreSelected;
end; end;
FPopupMenu.Items.Add(FSendToBackMenuItem); FPopupMenu.Items.Add(FSendToBackMenuItem);
AddSeparator;
FDeleteSelectionMenuItem:=TMenuItem.Create(FPopupMenu);
with FDeleteSelectionMenuItem do begin
Caption:= 'Delete selection';
OnClick:=@OnDeleteSelectionMenuClick;
Enabled:= ControlSelIsNotEmpty;
end;
FPopupMenu.Items.Add(FDeleteSelectionMenuItem);
end; end;
procedure TDesigner.OnAlignPopupMenuClick(Sender: TObject); procedure TDesigner.OnAlignPopupMenuClick(Sender: TObject);