summaryrefslogtreecommitdiff
path: root/vcl/win
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/win')
-rw-r--r--vcl/win/window/salmenu.cxx24
1 files changed, 8 insertions, 16 deletions
diff --git a/vcl/win/window/salmenu.cxx b/vcl/win/window/salmenu.cxx
index 1339f80afa3d..56c8ca2ff92d 100644
--- a/vcl/win/window/salmenu.cxx
+++ b/vcl/win/window/salmenu.cxx
@@ -65,16 +65,13 @@ void WinSalInstance::DestroyMenu( SalMenu* pSalMenu )
delete pSalMenu;
}
-SalMenuItem* WinSalInstance::CreateMenuItem( const SalItemParams* pItemData )
+std::unique_ptr<SalMenuItem> WinSalInstance::CreateMenuItem( const SalItemParams & rItemData )
{
- if( !pItemData )
- return nullptr;
-
WinSalMenuItem *pSalMenuItem = new WinSalMenuItem();
memset( &pSalMenuItem->mInfo, 0, sizeof( MENUITEMINFOW ) );
pSalMenuItem->mInfo.cbSize = sizeof( MENUITEMINFOW );
- if( pItemData->eType == MenuItemType::SEPARATOR )
+ if( rItemData.eType == MenuItemType::SEPARATOR )
{
// separator
pSalMenuItem->mInfo.fMask = MIIM_TYPE;
@@ -83,10 +80,10 @@ SalMenuItem* WinSalInstance::CreateMenuItem( const SalItemParams* pItemData )
else
{
// item
- pSalMenuItem->mText = pItemData->aText;
- pSalMenuItem->mpMenu = pItemData->pMenu;
- pSalMenuItem->maBitmap= !!pItemData->aImage ? pItemData->aImage.GetBitmapEx().GetBitmap() : Bitmap();
- pSalMenuItem->mnId = pItemData->nId;
+ pSalMenuItem->mText = rItemData.aText;
+ pSalMenuItem->mpMenu = rItemData.pMenu;
+ pSalMenuItem->maBitmap= !!rItemData.aImage ? rItemData.aImage.GetBitmapEx().GetBitmap() : Bitmap();
+ pSalMenuItem->mnId = rItemData.nId;
// 'translate' mnemonics
pSalMenuItem->mText = pSalMenuItem->mText.replaceAll( "~", "&" );
@@ -96,16 +93,11 @@ SalMenuItem* WinSalInstance::CreateMenuItem( const SalItemParams* pItemData )
pSalMenuItem->mInfo.dwTypeData = o3tl::toW(const_cast<sal_Unicode *>(pSalMenuItem->mText.getStr()));
pSalMenuItem->mInfo.cch = pSalMenuItem->mText.getLength();
- pSalMenuItem->mInfo.wID = pItemData->nId;
+ pSalMenuItem->mInfo.wID = rItemData.nId;
pSalMenuItem->mInfo.dwItemData = reinterpret_cast<ULONG_PTR>(pSalMenuItem); // user data
}
- return pSalMenuItem;
-}
-
-void WinSalInstance::DestroyMenuItem( SalMenuItem* pSalMenuItem )
-{
- delete pSalMenuItem;
+ return std::unique_ptr<SalMenuItem>(pSalMenuItem);
}
static void ImplDrawMenuBar( SalMenu *pMenu )