diff --git a/lcl/interfaces/win32/win32wsmenus.pp b/lcl/interfaces/win32/win32wsmenus.pp index 40f1be7003..84684457d8 100644 --- a/lcl/interfaces/win32/win32wsmenus.pp +++ b/lcl/interfaces/win32/win32wsmenus.pp @@ -850,10 +850,10 @@ begin CC.Handle := AHDC; Result.cx := 0; Result.cy := 0; - if Assigned(ParentMenu.OnMeasureItem) then - ParentMenu.OnMeasureItem(AMenuItem, CC, Result.cx, Result.cy); if Assigned(AMenuItem.OnMeasureItem) then - AMenuItem.OnMeasureItem(AMenuItem, CC, Result.cx, Result.cy); + AMenuItem.OnMeasureItem(AMenuItem, CC, Result.cx, Result.cy) + else if Assigned(ParentMenu.OnMeasureItem) then + ParentMenu.OnMeasureItem(AMenuItem, CC, Result.cx, Result.cy); finally CC.Free; end; @@ -1229,16 +1229,16 @@ begin ParentMenu := AMenuItem.GetParentMenu; if (ParentMenu<>nil) and ParentMenu.OwnerDraw - and (Assigned(ParentMenu.OnAdvancedDrawItem) or Assigned(AMenuItem.OnAdvancedDrawItem)) then + and (Assigned(ParentMenu.OnDrawItem) or Assigned(AMenuItem.OnDrawItem)) then begin CC := TControlCanvas.Create; try CC.Handle := AHDC; ItemDrawState := ItemStateToDrawState(ItemState); - if Assigned(ParentMenu.OnAdvancedDrawItem) then - ParentMenu.OnAdvancedDrawItem(AMenuItem, CC, ARect, ItemDrawState); - if Assigned(AMenuItem.OnAdvancedDrawItem) then - AMenuItem.OnAdvancedDrawItem(AMenuItem, CC, ARect, ItemDrawState); + if Assigned(AMenuItem.OnDrawItem) then + AMenuItem.OnDrawItem(AMenuItem, CC, ARect, ItemDrawState) + else if Assigned(ParentMenu.OnDrawItem) then + ParentMenu.OnDrawItem(AMenuItem, CC, ARect, ItemDrawState); finally CC.Free; end; diff --git a/lcl/menus.pp b/lcl/menus.pp index 5559c2b8ab..7766611aa5 100644 --- a/lcl/menus.pp +++ b/lcl/menus.pp @@ -108,7 +108,7 @@ type mihtDestroy ); - TAdvancedMenuDrawItemEvent = procedure(Sender: TObject; ACanvas: TCanvas; + TMenuDrawItemEvent = procedure(Sender: TObject; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState) of object; TMenuMeasureItemEvent = procedure(Sender: TObject; ACanvas: TCanvas; var AWidth, AHeight: Integer) of object; @@ -126,9 +126,9 @@ type FImageIndex: TImageIndex; FItems: TList; // list of TMenuItem FMenu: TMenu; - FOnAdvancedDrawItem: TAdvancedMenuDrawItemEvent; FOnChange: TMenuChangeEvent; FOnClick: TNotifyEvent; + FOnDrawItem: TMenuDrawItemEvent; FOnMeasureItem: TMenuMeasureItemEvent; FParent: TMenuItem; FMenuItemHandlers: array[TMenuItemHandlerType] of TMethodList; @@ -290,7 +290,7 @@ type property Visible: Boolean read FVisible write SetVisible stored IsVisibleStored default True; property OnClick: TNotifyEvent read FOnClick write FOnClick; - property OnAdvancedDrawItem: TAdvancedMenuDrawItemEvent read FOnAdvancedDrawItem write FOnAdvancedDrawItem; + property OnDrawItem: TMenuDrawItemEvent read FOnDrawItem write FOnDrawItem; property OnMeasureItem: TMenuMeasureItemEvent read FOnMeasureItem write FOnMeasureItem; end; TMenuItemClass = class of TMenuItem; @@ -306,7 +306,7 @@ type FImageChangeLink: TChangeLink; FImages: TCustomImageList; FItems: TMenuItem; - FOnAdvancedDrawItem: TAdvancedMenuDrawItemEvent; + FOnDrawItem: TMenuDrawItemEvent; FOnChange: TMenuChangeEvent; FOnMeasureItem: TMenuMeasureItemEvent; FOwnerDraw: Boolean; @@ -363,7 +363,7 @@ type property Items: TMenuItem read FItems; property Images: TCustomImageList read FImages write SetImages; property OwnerDraw: Boolean read FOwnerDraw write FOwnerDraw default False; - property OnAdvancedDrawItem: TAdvancedMenuDrawItemEvent read FOnAdvancedDrawItem write FOnAdvancedDrawItem; + property OnDrawItem: TMenuDrawItemEvent read FOnDrawItem write FOnDrawItem; property OnMeasureItem: TMenuMeasureItemEvent read FOnMeasureItem write FOnMeasureItem; end;