mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 13:09:28 +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;
|
||||
begin
|
||||
Result := nil;
|
||||
LForm := TCustomForm(GlobalDesignHook.LookupRoot);
|
||||
LForm := FormEditingHook.GetDesignerForm(GlobalDesignHook.LookupRoot);
|
||||
LFormData := FindDesignFormData(LForm);
|
||||
if LFormData=nil then Exit;
|
||||
LSourceWindow := (LFormData as IDesignedForm).LastActiveSourceWindow;
|
||||
|
@ -167,7 +167,20 @@ object ResizerFrame: TResizerFrame
|
||||
Color = clNone
|
||||
ParentColor = False
|
||||
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
|
||||
object pClient: TPanel
|
||||
AnchorSideLeft.Control = pL
|
||||
|
@ -30,6 +30,7 @@ type
|
||||
|
||||
TResizerFrame = class(TFrame)
|
||||
iResizerLineImg: TImage;
|
||||
pFakeMenu: TPanel;
|
||||
pBG: TPanel;
|
||||
pB: TPanel;
|
||||
pClient: TPanel;
|
||||
@ -40,7 +41,7 @@ type
|
||||
pMarginT: TPanel;
|
||||
pR: TPanel;
|
||||
pT: TPanel;
|
||||
procedure pBGPaint(Sender: TObject);
|
||||
procedure pFakeMenuPaint(Sender: TObject);
|
||||
procedure sbVerticalScroll(Sender: TObject; ScrollCode: TScrollCode;
|
||||
var ScrollPos: Integer);
|
||||
procedure sbHorizontalScroll(Sender: TObject; ScrollCode: TScrollCode;
|
||||
@ -248,7 +249,7 @@ begin
|
||||
TileImage(iResizerLineImg, LCanvas, 0, 0, LWidth, LHeight);
|
||||
end;
|
||||
|
||||
procedure TResizerFrame.pBGPaint(Sender: TObject);
|
||||
procedure TResizerFrame.pFakeMenuPaint(Sender: TObject);
|
||||
var
|
||||
MenuRect: Types.TRect;
|
||||
Menu: TMainMenu;
|
||||
@ -257,14 +258,15 @@ var
|
||||
begin
|
||||
//fake paint menu
|
||||
|
||||
if not HasMainMenu then
|
||||
Exit;
|
||||
// pFakeMenu is visible only when HasMainMenu is true
|
||||
//if not HasMainMenu then
|
||||
// Exit;
|
||||
|
||||
Menu := FDesignedForm.Form.Menu;
|
||||
|
||||
LCanvas := (Sender as TPanel).Canvas;
|
||||
MenuRect := pFakeMenu.ClientRect;
|
||||
LCanvas := pFakeMenu.Canvas;
|
||||
LCanvas.Brush.Color := clMenuBar;
|
||||
MenuRect := (Sender as TPanel).ClientRect;
|
||||
MenuRect.Bottom := MenuRect.Top + GetMenuHeight;
|
||||
LCanvas.FillRect(MenuRect);
|
||||
LCanvas.Font.Color := clMenuText;
|
||||
|
||||
@ -765,6 +767,16 @@ begin
|
||||
pClient.SendToBack; // <--- this is a must.
|
||||
{$ENDIF}
|
||||
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;
|
||||
|
||||
function TResizerFrame.DesignedWidthToScroll: Integer;
|
||||
|
Loading…
Reference in New Issue
Block a user