summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/tools/rc.h12
-rw-r--r--include/vcl/window.hxx5
-rw-r--r--rsc/inc/rscdb.hxx2
-rw-r--r--rsc/source/parser/rscicpx.cxx4
-rw-r--r--vcl/source/window/resource.cxx8
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 )