mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 23:39:24 +02:00
merge r51214,r51225: sparta:
sparta: Patch for Ondrej patch :) (r51145) fix designer not receiving key events for DataModule and Frame. Issue #29044 sparta: improve fake menu for further usage (delegate it to dedicated pFakeMenu panel) git-svn-id: trunk@51235 -
This commit is contained in:
parent
b2e160ebab
commit
cf0f53eb93
@ -1273,7 +1273,7 @@ var
|
|||||||
LPageCtrl: TModulePageControl;
|
LPageCtrl: TModulePageControl;
|
||||||
begin
|
begin
|
||||||
Result := nil;
|
Result := nil;
|
||||||
LForm := TCustomForm(GlobalDesignHook.LookupRoot);
|
LForm := FormEditingHook.GetDesignerForm(GlobalDesignHook.LookupRoot);
|
||||||
LFormData := FindDesignFormData(LForm);
|
LFormData := FindDesignFormData(LForm);
|
||||||
if LFormData=nil then Exit;
|
if LFormData=nil then Exit;
|
||||||
LSourceWindow := (LFormData as IDesignedForm).LastActiveSourceWindow;
|
LSourceWindow := (LFormData as IDesignedForm).LastActiveSourceWindow;
|
||||||
|
@ -167,7 +167,20 @@ object ResizerFrame: TResizerFrame
|
|||||||
Color = clNone
|
Color = clNone
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
OnPaint = pBGPaint
|
object pFakeMenu: TPanel
|
||||||
|
AnchorSideLeft.Control = pBG
|
||||||
|
AnchorSideTop.Control = pBG
|
||||||
|
AnchorSideRight.Control = pBG
|
||||||
|
AnchorSideRight.Side = asrBottom
|
||||||
|
Left = 0
|
||||||
|
Height = 50
|
||||||
|
Top = 0
|
||||||
|
Width = 287
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BevelOuter = bvNone
|
||||||
|
TabOrder = 0
|
||||||
|
OnPaint = pFakeMenuPaint
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object pClient: TPanel
|
object pClient: TPanel
|
||||||
AnchorSideLeft.Control = pL
|
AnchorSideLeft.Control = pL
|
||||||
|
@ -30,6 +30,7 @@ type
|
|||||||
|
|
||||||
TResizerFrame = class(TFrame)
|
TResizerFrame = class(TFrame)
|
||||||
iResizerLineImg: TImage;
|
iResizerLineImg: TImage;
|
||||||
|
pFakeMenu: TPanel;
|
||||||
pBG: TPanel;
|
pBG: TPanel;
|
||||||
pB: TPanel;
|
pB: TPanel;
|
||||||
pClient: TPanel;
|
pClient: TPanel;
|
||||||
@ -40,7 +41,7 @@ type
|
|||||||
pMarginT: TPanel;
|
pMarginT: TPanel;
|
||||||
pR: TPanel;
|
pR: TPanel;
|
||||||
pT: TPanel;
|
pT: TPanel;
|
||||||
procedure pBGPaint(Sender: TObject);
|
procedure pFakeMenuPaint(Sender: TObject);
|
||||||
procedure sbVerticalScroll(Sender: TObject; ScrollCode: TScrollCode;
|
procedure sbVerticalScroll(Sender: TObject; ScrollCode: TScrollCode;
|
||||||
var ScrollPos: Integer);
|
var ScrollPos: Integer);
|
||||||
procedure sbHorizontalScroll(Sender: TObject; ScrollCode: TScrollCode;
|
procedure sbHorizontalScroll(Sender: TObject; ScrollCode: TScrollCode;
|
||||||
@ -248,7 +249,7 @@ begin
|
|||||||
TileImage(iResizerLineImg, LCanvas, 0, 0, LWidth, LHeight);
|
TileImage(iResizerLineImg, LCanvas, 0, 0, LWidth, LHeight);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TResizerFrame.pBGPaint(Sender: TObject);
|
procedure TResizerFrame.pFakeMenuPaint(Sender: TObject);
|
||||||
var
|
var
|
||||||
MenuRect: Types.TRect;
|
MenuRect: Types.TRect;
|
||||||
Menu: TMainMenu;
|
Menu: TMainMenu;
|
||||||
@ -257,14 +258,15 @@ var
|
|||||||
begin
|
begin
|
||||||
//fake paint menu
|
//fake paint menu
|
||||||
|
|
||||||
if not HasMainMenu then
|
// pFakeMenu is visible only when HasMainMenu is true
|
||||||
Exit;
|
//if not HasMainMenu then
|
||||||
|
// Exit;
|
||||||
|
|
||||||
Menu := FDesignedForm.Form.Menu;
|
Menu := FDesignedForm.Form.Menu;
|
||||||
|
|
||||||
LCanvas := (Sender as TPanel).Canvas;
|
MenuRect := pFakeMenu.ClientRect;
|
||||||
|
LCanvas := pFakeMenu.Canvas;
|
||||||
LCanvas.Brush.Color := clMenuBar;
|
LCanvas.Brush.Color := clMenuBar;
|
||||||
MenuRect := (Sender as TPanel).ClientRect;
|
|
||||||
MenuRect.Bottom := MenuRect.Top + GetMenuHeight;
|
|
||||||
LCanvas.FillRect(MenuRect);
|
LCanvas.FillRect(MenuRect);
|
||||||
LCanvas.Font.Color := clMenuText;
|
LCanvas.Font.Color := clMenuText;
|
||||||
|
|
||||||
@ -765,6 +767,16 @@ begin
|
|||||||
pClient.SendToBack; // <--- this is a must.
|
pClient.SendToBack; // <--- this is a must.
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
pClient.BringToFront;
|
pClient.BringToFront;
|
||||||
|
|
||||||
|
pFakeMenu.Visible := HasMainMenu;
|
||||||
|
if pFakeMenu.Visible then
|
||||||
|
begin
|
||||||
|
pFakeMenu.Height := GetMenuHeight;
|
||||||
|
pFakeMenu.BorderSpacing.Left := BgLeftMargin;
|
||||||
|
pFakeMenu.BorderSpacing.Top := BgTopMargin - pFakeMenu.Height;
|
||||||
|
pFakeMenu.BorderSpacing.Right := BgRightMargin;
|
||||||
|
pFakeMenu.BringToFront;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TResizerFrame.DesignedWidthToScroll: Integer;
|
function TResizerFrame.DesignedWidthToScroll: Integer;
|
||||||
|
Loading…
Reference in New Issue
Block a user