include/vcl/menu.hxx           |    2 +-
 vcl/inc/osx/salmenu.h          |    1 -
 vcl/inc/qt5/QtMenu.hxx         |    1 -
 vcl/inc/salmenu.hxx            |    2 +-
 vcl/inc/unx/gtk/gtksalmenu.hxx |    1 -
 vcl/osx/salmenu.cxx            |    4 ----
 vcl/qt5/QtMenu.cxx             |    2 --
 vcl/source/app/salvtables.cxx  |    2 ++
 vcl/source/window/menu.cxx     |    5 ++---
 vcl/unx/gtk3/gtksalmenu.cxx    |    4 ----
 10 files changed, 6 insertions(+), 18 deletions(-)

New commits:
commit e45cf9aab3de52ebcbefb70bec81f407d037b166
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Dec 2 10:32:24 2024 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Mon Dec 2 15:18:59 2024 +0100

    vcl: Add a default SalMenu::GetSystemMenuData implementation
    
    Have a default SalMenu::GetSystemMenuData implementation
    that does nothing instead of being purely virtual
    and all subclasses except WinSalMenu::GetSystemMenuData
    having to override it to do nothing.
    
    Change-Id: Ia47af286f0fd3c1e3c6a00fff4512c9334fd6e9b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177660
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/vcl/inc/osx/salmenu.h b/vcl/inc/osx/salmenu.h
index 597180cc1ac3..e750f1fd1596 100644
--- a/vcl/inc/osx/salmenu.h
+++ b/vcl/inc/osx/salmenu.h
@@ -66,7 +66,6 @@ public:
     virtual void SetItemText( unsigned nPos, SalMenuItem* pSalMenuItem, const 
OUString& rText ) override;
     virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const 
Image& rImage) override;
     virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, 
const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) override;
-    virtual void GetSystemMenuData( SystemMenuData* pData ) override;
     virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const 
tools::Rectangle& rRect, FloatWinPopupFlags nFlags) override;
     virtual bool AddMenuBarButton( const SalMenuButtonItem& ) override;
     virtual void RemoveMenuBarButton( sal_uInt16 nId ) override;
diff --git a/vcl/inc/qt5/QtMenu.hxx b/vcl/inc/qt5/QtMenu.hxx
index 8c44c079668d..8042c67720ba 100644
--- a/vcl/inc/qt5/QtMenu.hxx
+++ b/vcl/inc/qt5/QtMenu.hxx
@@ -93,7 +93,6 @@ public:
                               const Image& rImage) override;
     virtual void SetAccelerator(unsigned nPos, SalMenuItem* pSalMenuItem,
                                 const vcl::KeyCode& rKeyCode, const OUString& 
rKeyName) override;
-    virtual void GetSystemMenuData(SystemMenuData* pData) override;
     virtual void ShowCloseButton(bool bShow) override;
     virtual bool AddMenuBarButton(const SalMenuButtonItem&) override;
     virtual void RemoveMenuBarButton(sal_uInt16 nId) override;
diff --git a/vcl/inc/salmenu.hxx b/vcl/inc/salmenu.hxx
index 975df9391eae..5cc316acc46e 100644
--- a/vcl/inc/salmenu.hxx
+++ b/vcl/inc/salmenu.hxx
@@ -73,7 +73,7 @@ public:
     virtual void SetItemText( unsigned nPos, SalMenuItem* pSalMenuItem, const 
OUString& rText )= 0;
     virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const 
Image& rImage ) = 0;
     virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, 
const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) = 0;
-    virtual void GetSystemMenuData( SystemMenuData* pData ) = 0;
+    virtual void GetSystemMenuData(SystemMenuData* pData);
     virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const 
tools::Rectangle& rRect, FloatWinPopupFlags nFlags);
     virtual void ShowCloseButton(bool bShow);
     virtual bool AddMenuBarButton( const SalMenuButtonItem& ); // return false 
if not implemented or failure
diff --git a/vcl/inc/unx/gtk/gtksalmenu.hxx b/vcl/inc/unx/gtk/gtksalmenu.hxx
index eadb096e0c1e..3172c37656bd 100644
--- a/vcl/inc/unx/gtk/gtksalmenu.hxx
+++ b/vcl/inc/unx/gtk/gtksalmenu.hxx
@@ -84,7 +84,6 @@ public:
     virtual void                SetItemText( unsigned nPos, SalMenuItem* 
pSalMenuItem, const OUString& rText ) override;
     virtual void                SetItemImage( unsigned nPos, SalMenuItem* 
pSalMenuItem, const Image& rImage) override;
     virtual void                SetAccelerator( unsigned nPos, SalMenuItem* 
pSalMenuItem, const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) override;
-    virtual void                GetSystemMenuData( SystemMenuData* pData ) 
override;
 
     void                        SetMenu( Menu* pMenu ) { mpVCLMenu = pMenu; }
     Menu*                       GetMenu() { return mpVCLMenu; }
diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index 08a0a3620137..a14f1874c83e 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -744,10 +744,6 @@ void AquaSalMenu::SetAccelerator( unsigned /*nPos*/, 
SalMenuItem* pSalMenuItem,
         [pString release];
 }
 
-void AquaSalMenu::GetSystemMenuData( SystemMenuData* )
-{
-}
-
 AquaSalMenu::MenuBarButtonEntry* AquaSalMenu::findButtonItem( sal_uInt16 
i_nItemId )
 {
     for( size_t i = 0; i < maButtons.size(); ++i )
diff --git a/vcl/qt5/QtMenu.cxx b/vcl/qt5/QtMenu.cxx
index 6cdc6cf25d86..b306e35eb54a 100644
--- a/vcl/qt5/QtMenu.cxx
+++ b/vcl/qt5/QtMenu.cxx
@@ -597,8 +597,6 @@ void QtMenu::SetAccelerator(unsigned, SalMenuItem* pItem, 
const vcl::KeyCode&,
         pAction->setShortcut(QKeySequence(toQString(rText), 
QKeySequence::PortableText));
 }
 
-void QtMenu::GetSystemMenuData(SystemMenuData*) {}
-
 QtMenu* QtMenu::GetTopLevel()
 {
     QtMenu* pMenu = this;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 4f2928e53747..0f353a9eed19 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -214,6 +214,8 @@ SalObject::~SalObject() {}
 
 SalMenu::~SalMenu() {}
 
+void SalMenu::GetSystemMenuData(SystemMenuData*) {}
+
 bool SalMenu::ShowNativePopupMenu(FloatingWindow*, const tools::Rectangle&, 
FloatWinPopupFlags)
 {
     return false;
diff --git a/vcl/unx/gtk3/gtksalmenu.cxx b/vcl/unx/gtk3/gtksalmenu.cxx
index efe4da3dde44..50aa39919749 100644
--- a/vcl/unx/gtk3/gtksalmenu.cxx
+++ b/vcl/unx/gtk3/gtksalmenu.cxx
@@ -1622,10 +1622,6 @@ void GtkSalMenu::SetAccelerator( unsigned, SalMenuItem*, 
const vcl::KeyCode&, co
 {
 }
 
-void GtkSalMenu::GetSystemMenuData( SystemMenuData* )
-{
-}
-
 int GtkSalMenu::GetMenuBarHeight() const
 {
     return mpMenuBarWidget ? gtk_widget_get_allocated_height(mpMenuBarWidget) 
: 0;
commit d49091617b8fa6fc8bce611323758fcf60e49b8b
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Dec 2 10:22:31 2024 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Mon Dec 2 15:18:51 2024 +0100

    vcl: Make Menu::ImplGetSalMenu const
    
    And drop the then no longer needed const_cast in
    Menu::GetSystemMenuData.
    
    Change-Id: Iac438850c5258e5fc23a4b3901f4601edf82e57c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177659
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx
index 893959e82634..6c6aa9945583 100644
--- a/include/vcl/menu.hxx
+++ b/include/vcl/menu.hxx
@@ -182,7 +182,7 @@ protected:
     DECL_DLLPRIVATE_LINK(ImplCallSelect, void*, void );
 
     SAL_DLLPRIVATE void ImplFillLayoutData() const;
-    SAL_DLLPRIVATE SalMenu* ImplGetSalMenu() { return mpSalMenu.get(); }
+    SAL_DLLPRIVATE SalMenu* ImplGetSalMenu() const { return mpSalMenu.get(); }
     SAL_DLLPRIVATE OUString ImplGetHelpText( sal_uInt16 nItemId ) const;
 
     // returns native check and option menu symbol height in rCheckHeight and 
rRadioHeight
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 04e351ce4ae0..9750fc75ba6a 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -2353,10 +2353,9 @@ OUString Menu::GetAccessibleDescription( sal_uInt16 
nItemId ) const
 
 void Menu::GetSystemMenuData( SystemMenuData* pData ) const
 {
-    Menu* pMenu = const_cast<Menu*>(this);
-    if( pData && pMenu->ImplGetSalMenu() )
+    if (pData && ImplGetSalMenu())
     {
-        pMenu->ImplGetSalMenu()->GetSystemMenuData( pData );
+        ImplGetSalMenu()->GetSystemMenuData(pData);
     }
 }
 

Reply via email to