summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/tools/rc.h27
-rw-r--r--rsc/inc/rscdb.hxx3
-rw-r--r--rsc/source/parser/rscicpx.cxx27
-rw-r--r--rsc/source/parser/rscinit.cxx5
-rw-r--r--vcl/source/window/menu.cxx35
5 files changed, 40 insertions, 57 deletions
diff --git a/include/tools/rc.h b/include/tools/rc.h
index 6b5c90065116..dbf028da388e 100644
--- a/include/tools/rc.h
+++ b/include/tools/rc.h
@@ -72,18 +72,21 @@ namespace o3tl {
}
// "MenuItem" resource options:
-#define RSC_MENUITEM_SEPARATOR 0x001
-#define RSC_MENUITEM_ID 0x002
-#define RSC_MENUITEM_STATUS 0x004
-#define RSC_MENUITEM_TEXT 0x008
-#define RSC_MENUITEM_BITMAP 0x010
-#define RSC_MENUITEM_HELPTEXT 0x020
-#define RSC_MENUITEM_HELPID 0x040
-#define RSC_MENUITEM_KEYCODE 0x080
-#define RSC_MENUITEM_MENU 0x100
-#define RSC_MENUITEM_CHECKED 0x200
-#define RSC_MENUITEM_DISABLE 0x400
-#define RSC_MENUITEM_COMMAND 0x800
+enum class RscMenuItem {
+ Separator = 0x001,
+ Id = 0x002,
+ Status = 0x004,
+ Text = 0x008,
+ Bitmap = 0x010,
+ HelpText = 0x020,
+ HelpId = 0x040,
+ Menu = 0x100,
+ Disable = 0x400,
+ Command = 0x800
+};
+namespace o3tl {
+ template<> struct typed_flags<RscMenuItem> : is_typed_flags<RscMenuItem, 0xd7f> {};
+}
// "AccelKey" resource options:
#define ACCELITEM_ACCEL 0x01
diff --git a/rsc/inc/rscdb.hxx b/rsc/inc/rscdb.hxx
index 07db8596fd24..a84af73eafa4 100644
--- a/rsc/inc/rscdb.hxx
+++ b/rsc/inc/rscdb.hxx
@@ -198,8 +198,7 @@ class RscTypCont
RscTop * InitClassKeyCode( RscTop * pSuper, RscEnum * pKey );
RscTop * InitClassAccelItem( RscTop * pSuper, RscTop * pKeyCode );
RscTop * InitClassAccel( RscTop * pSuper, RscTop * pClassAccelItem );
- RscTop * InitClassMenuItem( RscTop * pSuper, RscTop * pClassBitmap,
- RscTop * pClassKeyCode );
+ RscTop * InitClassMenuItem( RscTop * pSuper, RscTop * pClassBitmap );
RscTop * InitClassMenu( RscTop * pSuper, RscTop * pMenuItem );
RscTop * InitClassNumericFormatter( RscTop * pSuper );
diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx
index 1bbd9fdab778..cb8648c673f2 100644
--- a/rsc/source/parser/rscicpx.cxx
+++ b/rsc/source/parser/rscicpx.cxx
@@ -771,8 +771,7 @@ RscTop * RscTypCont::InitClassAccel( RscTop * pSuper, RscTop * pClassAccelItem )
}
RscTop * RscTypCont::InitClassMenuItem( RscTop * pSuper,
- RscTop * pClassBitmap,
- RscTop * pClassKeyCode )
+ RscTop * pClassBitmap )
{
Atom nId;
RscTop * pClassMenuItem;
@@ -785,10 +784,10 @@ RscTop * RscTypCont::InitClassMenuItem( RscTop * pSuper,
// initialize variables
nId = aNmTb.Put( "Separator", VARNAME );
pClassMenuItem->SetVariable( nId, &aBool, nullptr, 0,
- RSC_MENUITEM_SEPARATOR );
+ (sal_uInt32)RscMenuItem::Separator );
nId = aNmTb.Put( "Identifier", VARNAME );
pClassMenuItem->SetVariable( nId, &aIdNoZeroUShort, nullptr, 0,
- RSC_MENUITEM_ID );
+ (sal_uInt32)RscMenuItem::Id );
{
RscFlag * pFlag;
RscClient * pClient;
@@ -813,7 +812,7 @@ RscTop * RscTypCont::InitClassMenuItem( RscTop * pSuper,
nVarId = aNmTb.Put( "_MenuItemFlags", VARNAME );
pClassMenuItem->SetVariable( nVarId, pFlag, nullptr,
VAR_HIDDEN | VAR_NOENUM,
- RSC_MENUITEM_STATUS );
+ (sal_uInt32)RscMenuItem::Status );
// add client variables
aBaseLst.push_back(
@@ -854,28 +853,22 @@ RscTop * RscTypCont::InitClassMenuItem( RscTop * pSuper,
}
nId = aNmTb.Put( "Text", VARNAME );
pClassMenuItem->SetVariable( nId, &aLangString, nullptr, 0,
- RSC_MENUITEM_TEXT );
+ (sal_uInt32)RscMenuItem::Text );
nId = aNmTb.Put( "ItemBitmap", VARNAME );
pClassMenuItem->SetVariable( nId, pClassBitmap, nullptr, 0,
- RSC_MENUITEM_BITMAP );
+ (sal_uInt32)RscMenuItem::Bitmap );
nId = aNmTb.Put( "HelpText", VARNAME );
pClassMenuItem->SetVariable( nId, &aLangString, nullptr, 0,
- RSC_MENUITEM_HELPTEXT );
+ (sal_uInt32)RscMenuItem::HelpText );
nId = aNmTb.Put( "HelpID", VARNAME );
pClassMenuItem->SetVariable( nId, &aStringLiteral, nullptr, 0,
- RSC_MENUITEM_HELPID );
- nId = aNmTb.Put( "AccelKey", VARNAME );
- pClassMenuItem->SetVariable( nId, pClassKeyCode, nullptr, 0,
- RSC_MENUITEM_KEYCODE );
- nId = aNmTb.Put( "Check", VARNAME );
- pClassMenuItem->SetVariable( nId, &aBool, nullptr, 0,
- RSC_MENUITEM_CHECKED );
+ (sal_uInt32)RscMenuItem::HelpId );
nId = aNmTb.Put( "Disable", VARNAME );
pClassMenuItem->SetVariable( nId, &aBool, nullptr, 0,
- RSC_MENUITEM_DISABLE );
+ (sal_uInt32)RscMenuItem::Disable );
nId = aNmTb.Put( "Command", VARNAME );
pClassMenuItem->SetVariable( nId, &aString, nullptr, 0,
- RSC_MENUITEM_COMMAND );
+ (sal_uInt32)RscMenuItem::Command );
return pClassMenuItem;
}
diff --git a/rsc/source/parser/rscinit.cxx b/rsc/source/parser/rscinit.cxx
index eca02aa5b7a0..b796c62d45a5 100644
--- a/rsc/source/parser/rscinit.cxx
+++ b/rsc/source/parser/rscinit.cxx
@@ -380,8 +380,7 @@ void RscTypCont::Init()
pClassAccelItem->SetVariable( nId, pClassAccel, nullptr, VAR_SVDYNAMIC,
ACCELITEM_ACCEL );
- RscTop* pClassMenuItem = InitClassMenuItem( pClassMgr, pClassBitmap,
- pLangClassKeyCode );
+ RscTop* pClassMenuItem = InitClassMenuItem( pClassMgr, pClassBitmap);
pRoot->Insert( pClassMenuItem );
RscTop* pClassMenu = InitClassMenu( pClassMgr, pClassMenuItem );
@@ -390,7 +389,7 @@ void RscTypCont::Init()
// pClassMenu is only completely defined here
nId = aNmTb.Put( "SubMenu", VARNAME );
pClassMenuItem->SetVariable( nId, pClassMenu, nullptr, VAR_SVDYNAMIC,
- RSC_MENUITEM_MENU );
+ (sal_uInt32)RscMenuItem::Menu );
}
{
// initialize class
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 075c53b8fb16..ce465f9c3a6f 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -427,29 +427,29 @@ void Menu::InsertItem( const ResId& rResId )
if( ! pMgr )
return;
- sal_uLong nObjMask;
+ RscMenuItem nObjMask;
GetRes( rResId.SetRT( RSC_MENUITEM ) );
- nObjMask = ReadLongRes();
+ nObjMask = (RscMenuItem)ReadLongRes();
bool bSep = false;
- if ( nObjMask & RSC_MENUITEM_SEPARATOR )
+ if ( nObjMask & RscMenuItem::Separator )
bSep = ReadShortRes() != 0;
sal_uInt16 nItemId = 1;
- if ( nObjMask & RSC_MENUITEM_ID )
+ if ( nObjMask & RscMenuItem::Id )
nItemId = sal::static_int_cast<sal_uInt16>(ReadLongRes());
MenuItemBits nStatus = MenuItemBits::NONE;
- if ( nObjMask & RSC_MENUITEM_STATUS )
+ if ( nObjMask & RscMenuItem::Status )
nStatus = sal::static_int_cast<MenuItemBits>(ReadLongRes());
OUString aText;
- if ( nObjMask & RSC_MENUITEM_TEXT )
+ if ( nObjMask & RscMenuItem::Text )
aText = ReadStringRes();
// create item
- if ( nObjMask & RSC_MENUITEM_BITMAP )
+ if ( nObjMask & RscMenuItem::Bitmap )
{
if ( !bSep )
{
@@ -468,14 +468,14 @@ void Menu::InsertItem( const ResId& rResId )
InsertSeparator();
OUString aHelpText;
- if ( nObjMask & RSC_MENUITEM_HELPTEXT )
+ if ( nObjMask & RscMenuItem::HelpText )
{
aHelpText = ReadStringRes();
if( !bSep )
SetHelpText( nItemId, aHelpText );
}
- if ( nObjMask & RSC_MENUITEM_HELPID )
+ if ( nObjMask & RscMenuItem::HelpId )
{
OString aHelpId( ReadByteStringRes() );
if ( !bSep )
@@ -485,29 +485,18 @@ void Menu::InsertItem( const ResId& rResId )
if( !bSep )
SetHelpText( nItemId, aHelpText );
- if ( nObjMask & RSC_MENUITEM_KEYCODE )
- {
- if ( !bSep )
- SetAccelKey( nItemId, KeyCode( ResId( static_cast<RSHEADER_TYPE*>(GetClassRes()), *pMgr ) ) );
- IncrementRes( GetObjSizeRes( static_cast<RSHEADER_TYPE*>(GetClassRes()) ) );
- }
- if( nObjMask & RSC_MENUITEM_CHECKED )
- {
- if ( !bSep )
- CheckItem( nItemId, ReadShortRes() != 0 );
- }
- if ( nObjMask & RSC_MENUITEM_DISABLE )
+ if ( nObjMask & RscMenuItem::Disable )
{
if ( !bSep )
EnableItem( nItemId, ReadShortRes() == 0 );
}
- if ( nObjMask & RSC_MENUITEM_COMMAND )
+ if ( nObjMask & RscMenuItem::Command )
{
OUString aCommandStr = ReadStringRes();
if ( !bSep )
SetItemCommand( nItemId, aCommandStr );
}
- if ( nObjMask & RSC_MENUITEM_MENU )
+ if ( nObjMask & RscMenuItem::Menu )
{
if ( !bSep )
{