diff options
-rw-r--r-- | include/tools/rc.h | 12 | ||||
-rw-r--r-- | include/vcl/window.hxx | 5 | ||||
-rw-r--r-- | rsc/inc/rscdb.hxx | 2 | ||||
-rw-r--r-- | rsc/source/parser/rscicpx.cxx | 4 | ||||
-rw-r--r-- | vcl/source/window/resource.cxx | 8 |
5 files changed, 21 insertions, 10 deletions
diff --git a/include/tools/rc.h b/include/tools/rc.h index 49f6ebdd58d9..211eb253faac 100644 --- a/include/tools/rc.h +++ b/include/tools/rc.h @@ -21,14 +21,22 @@ #define INCLUDED_TOOLS_RC_H #include <tools/rcid.h> +#include <o3tl/typed_flags_set.hxx> // Defines for all "Window" resources. // (Here are all window styles that are not in WinBits) #define RSC_EXTRAMAPUNIT 0xFFFF // do not change that value! -#define RSWND_DISABLED 0x01 -#define RSWND_CLIENTSIZE 0x02 +// Attributes in *.src files +enum class RSWND { + NONE = 0x00, + DISABLED = 0x01, // "Disable" attribute + CLIENTSIZE = 0x02 // "OutputSize" attribute +}; +namespace o3tl { + template<> struct typed_flags<RSWND> : is_typed_flags<RSWND, 0x03> {}; +} #define WINDOW_XYMAPMODE 0x0001 #define WINDOW_X 0x0002 diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index 9f4a8dc79082..d9f9d915e5bf 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -465,12 +465,13 @@ class MenuFloatingWindow; class LifecycleTest; namespace svt { class PopupWindowControllerImpl; } +enum class RSWND; struct WindowResHeader { sal_uLong nObjMask; - OString aHelpId; - sal_uLong nRSStyle; + OString aHelpId; + RSWND nRSStyle; }; namespace vcl { diff --git a/rsc/inc/rscdb.hxx b/rsc/inc/rscdb.hxx index ea4cdd029923..07db8596fd24 100644 --- a/rsc/inc/rscdb.hxx +++ b/rsc/inc/rscdb.hxx @@ -45,6 +45,7 @@ enum class ToolBoxItemType; enum class ButtonType; enum class WindowAlign; enum class SfxStyleFamily; +enum class RSWND; struct WriteRcContext { @@ -146,6 +147,7 @@ class RscTypCont void SETCONST( RscConst *, Atom, sal_uInt32 ); inline void SETCONST( RscConst *p1, const char * p2, SymbolType p3 ) { SETCONST(p1, p2, static_cast<sal_uInt32>(p3)); } inline void SETCONST( RscConst *p1, Atom p2, ToolBoxItemBits p3 ) { SETCONST(p1, p2, static_cast<sal_uInt32>(p3)); } + inline void SETCONST( RscConst *p1, Atom p2, RSWND p3 ) { SETCONST(p1, p2, static_cast<sal_uInt32>(p3)); } inline void SETCONST( RscConst *p1, Atom p2, WindowBorderStyle p3 ) { SETCONST(p1, p2, static_cast<sal_uInt32>(p3)); } inline void SETCONST( RscConst *p1, const char * p2, KeyFuncType p3 ) { SETCONST(p1, p2, static_cast<sal_uInt32>(p3)); } inline void SETCONST( RscConst *p1, Atom p2, MenuItemBits p3 ) { SETCONST(p1, p2, static_cast<sal_uInt32>(p3)); } diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx index 2060798e9cfd..4b4862410db8 100644 --- a/rsc/source/parser/rscicpx.cxx +++ b/rsc/source/parser/rscicpx.cxx @@ -219,9 +219,9 @@ RscTop * RscTypCont::InitClassWindow( RscTop * pSuper, RscEnum * pMapUnit, // set the constants in table nDisableId = pHS->getID( "RSWND_DISABLE" ); - SETCONST( pFlag, nDisableId, RSWND_DISABLED ); + SETCONST( pFlag, nDisableId, RSWND::DISABLED ); nOutputSizeId = pHS->getID( "RSWND_OUTPUTSIZE" ); - SETCONST( pFlag, nOutputSizeId, RSWND_CLIENTSIZE ); + SETCONST( pFlag, nOutputSizeId, RSWND::CLIENTSIZE ); // add variable nVarId = aNmTb.Put( "_RscExtraFlags", VARNAME ); diff --git a/vcl/source/window/resource.cxx b/vcl/source/window/resource.cxx index 455016223ee9..332d163d97a4 100644 --- a/vcl/source/window/resource.cxx +++ b/vcl/source/window/resource.cxx @@ -59,7 +59,7 @@ WindowResHeader Window::ImplLoadResHeader( const ResId& rResId ) aHeader.aHelpId = ImplAutoHelpID( rResId.GetResMgr() ); // ResourceStyle - aHeader.nRSStyle = ReadLongRes(); + aHeader.nRSStyle = (RSWND)ReadLongRes(); // WinBits ReadLongRes(); @@ -112,10 +112,10 @@ void Window::ImplLoadRes( const ResId& rResId ) aSize.Height() = ImplLogicUnitToPixelY( ReadLongRes(), eSizeMap ); } - sal_uLong nRSStyle = aHeader.nRSStyle; + RSWND nRSStyle = aHeader.nRSStyle; // looks bad due to optimization - if ( nRSStyle & RSWND_CLIENTSIZE ) + if ( nRSStyle & RSWND::CLIENTSIZE ) { if ( bPos ) SetPosPixel( aPos ); @@ -129,7 +129,7 @@ void Window::ImplLoadRes( const ResId& rResId ) else if ( bSize ) SetSizePixel( aSize ); - if ( nRSStyle & RSWND_DISABLED ) + if ( nRSStyle & RSWND::DISABLED ) Enable( false ); if ( nObjMask & WINDOW_TEXT ) |