diff options
-rw-r--r-- | include/vcl/ctrl.hxx | 2 | ||||
-rw-r--r-- | include/vcl/outdev.hxx | 16 | ||||
-rw-r--r-- | include/vcl/virdev.hxx | 2 | ||||
-rw-r--r-- | include/vcl/window.hxx | 4 | ||||
-rw-r--r-- | vcl/source/control/ctrl.cxx | 10 | ||||
-rw-r--r-- | vcl/source/gdi/outdev.cxx | 17 | ||||
-rw-r--r-- | vcl/source/gdi/virdev.cxx | 34 | ||||
-rw-r--r-- | vcl/source/window/window.cxx | 19 |
8 files changed, 43 insertions, 61 deletions
diff --git a/include/vcl/ctrl.hxx b/include/vcl/ctrl.hxx index 34879707e115..6c00e460d814 100644 --- a/include/vcl/ctrl.hxx +++ b/include/vcl/ctrl.hxx @@ -129,6 +129,8 @@ public: explicit Control( Window* pParent, const ResId& ); virtual ~Control(); + virtual void EnableRTL ( bool bEnable = true ); + virtual void GetFocus(); virtual void LoseFocus(); virtual bool Notify( NotifyEvent& rNEvt ); diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index eb4d0ba3f78e..c86a8ac80f7c 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -1141,25 +1141,25 @@ public: BitmapEx GetBitmapEx( const Point& rSrcPt, const Size& rSize ) const; void EnableMapMode( bool bEnable = true ); - bool IsMapModeEnabled() const { return mbMap; } + bool IsMapModeEnabled() const { return mbMap; } // Enabling/disabling RTL only makes sense for OutputDevices that use a mirroring SalGraphisLayout - void EnableRTL( bool bEnable = true); - bool IsRTLEnabled() const { return mbEnableRTL; } + virtual void EnableRTL( bool bEnable = true); + bool IsRTLEnabled() const { return mbEnableRTL; } void SetConnectMetaFile( GDIMetaFile* pMtf ); GDIMetaFile* GetConnectMetaFile() const { return mpMetaFile; } void EnableOutput( bool bEnable = true ); - bool IsOutputEnabled() const { return mbOutput; } - bool IsDeviceOutput() const { return mbDevOutput; } - bool IsDeviceOutputNecessary() const { return (mbOutput && mbDevOutput); } - bool IsOutputNecessary() const { return ((mbOutput && mbDevOutput) || (mpMetaFile != NULL)); } + bool IsOutputEnabled() const { return mbOutput; } + bool IsDeviceOutput() const { return mbDevOutput; } + bool IsDeviceOutputNecessary() const { return (mbOutput && mbDevOutput); } + bool IsOutputNecessary() const { return ((mbOutput && mbDevOutput) || (mpMetaFile != NULL)); } void SetClipRegion(); void SetClipRegion( const Region& rRegion ); Region GetClipRegion() const; - bool IsClipRegion() const { return mbClipRegion; } + bool IsClipRegion() const { return mbClipRegion; } Region GetActiveClipRegion() const; void MoveClipRegion( long nHorzMove, long nVertMove ); diff --git a/include/vcl/virdev.hxx b/include/vcl/virdev.hxx index 72cc3fe95e84..145179bfa73e 100644 --- a/include/vcl/virdev.hxx +++ b/include/vcl/virdev.hxx @@ -113,6 +113,8 @@ public: virtual ~VirtualDevice(); + void EnableRTL( bool bEnable = true ); + bool SetOutputSizePixel( const Size& rNewSize, bool bErase = true ); bool SetOutputSizePixelScaleOffsetAndBuffer( const Size& rNewSize, const Fraction& rScale, const Point& rNewOffset, const basebmp::RawMemorySharedArray &pBuffer ); bool SetOutputSize( const Size& rNewSize, bool bErase = true ) diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index 5bf0e8d642c0..3a3851ca449d 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -355,7 +355,8 @@ private: // NOTE: to remove many dependencies of other modules // to this central file, all members are now hidden // in the WindowImpl class and all inline functions - // were removed + // were removed. + // (WindowImpl is a pImpl pattern) // Please do *not* add new members or inline functions to class Window, // but use class WindowImpl instead @@ -594,6 +595,7 @@ public: OutputDevice const* GetOutDev() const { return mpOutputDevice; }; OutputDevice* GetOutDev() { return mpOutputDevice; }; + virtual void EnableRTL ( bool bEnable = true ); virtual void MouseMove( const MouseEvent& rMEvt ); virtual void MouseButtonDown( const MouseEvent& rMEvt ); virtual void MouseButtonUp( const MouseEvent& rMEvt ); diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx index 2fe5c0bd9a87..e1bfbca514f0 100644 --- a/vcl/source/control/ctrl.cxx +++ b/vcl/source/control/ctrl.cxx @@ -71,6 +71,16 @@ Control::~Control() delete mpControlData, mpControlData = NULL; } + +void Control::EnableRTL( bool bEnable ) +{ + // convenience: for controls also switch layout mode + SetLayoutMode( bEnable ? TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_TEXTORIGIN_LEFT : + TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_TEXTORIGIN_LEFT ); + StateChanged( STATE_CHANGE_MIRRORING ); + OutputDevice::EnableRTL(bEnable); +} + void Control::GetFocus() { Window::GetFocus(); diff --git a/vcl/source/gdi/outdev.cxx b/vcl/source/gdi/outdev.cxx index 8518345772db..385ac40a2f8c 100644 --- a/vcl/source/gdi/outdev.cxx +++ b/vcl/source/gdi/outdev.cxx @@ -461,23 +461,6 @@ bool OutputDevice::supportsOperation( OutDevSupportType eType ) const void OutputDevice::EnableRTL( bool bEnable ) { mbEnableRTL = bEnable; - if( meOutDevType == OUTDEV_VIRDEV ) - { - // virdevs default to not mirroring, they will only be set to mirroring - // under rare circumstances in the UI, eg the valueset control - // because each virdev has its own SalGraphics we can safely switch the SalGraphics here - // ...hopefully - if( ImplGetGraphics() ) - mpGraphics->SetLayout( mbEnableRTL ? SAL_LAYOUT_BIDI_RTL : 0 ); - } - - // convenience: for controls also switch layout mode - if( dynamic_cast<Control*>(this) != 0 ) - SetLayoutMode( bEnable ? TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_TEXTORIGIN_LEFT : TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_TEXTORIGIN_LEFT); - - Window* pWin = dynamic_cast<Window*>(this); - if( pWin ) - pWin->StateChanged( STATE_CHANGE_MIRRORING ); if( mpAlphaVDev ) mpAlphaVDev->EnableRTL( bEnable ); diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx index 68789c805e90..aa3f35947785 100644 --- a/vcl/source/gdi/virdev.cxx +++ b/vcl/source/gdi/virdev.cxx @@ -200,8 +200,6 @@ void VirtualDevice::ImplInitVirDev( const OutputDevice* pOutDev, pSVData->maGDIData.mpFirstVirDev = this; } - - VirtualDevice::VirtualDevice( sal_uInt16 nBitCount ) : mpVirDev( NULL ), meRefDevMode( REFDEV_NONE ) @@ -213,8 +211,6 @@ VirtualDevice::VirtualDevice( sal_uInt16 nBitCount ) ImplInitVirDev( Application::GetDefaultDevice(), 1, 1, nBitCount ); } - - VirtualDevice::VirtualDevice( const OutputDevice& rCompDev, sal_uInt16 nBitCount ) : mpVirDev( NULL ), meRefDevMode( REFDEV_NONE ) @@ -226,8 +222,6 @@ VirtualDevice::VirtualDevice( const OutputDevice& rCompDev, sal_uInt16 nBitCount ImplInitVirDev( &rCompDev, 1, 1, nBitCount ); } - - VirtualDevice::VirtualDevice( const OutputDevice& rCompDev, sal_uInt16 nBitCount, sal_uInt16 nAlphaBitCount ) : mpVirDev( NULL ), meRefDevMode( REFDEV_NONE ) @@ -243,8 +237,6 @@ VirtualDevice::VirtualDevice( const OutputDevice& rCompDev, sal_uInt16 nBitCount mnAlphaDepth = sal::static_int_cast<sal_Int8>(nAlphaBitCount); } - - VirtualDevice::VirtualDevice( const SystemGraphicsData *pData, sal_uInt16 nBitCount ) : mpVirDev( NULL ), meRefDevMode( REFDEV_NONE ) @@ -254,8 +246,6 @@ VirtualDevice::VirtualDevice( const SystemGraphicsData *pData, sal_uInt16 nBitCo ImplInitVirDev( Application::GetDefaultDevice(), 1, 1, nBitCount, pData ); } - - VirtualDevice::~VirtualDevice() { SAL_INFO( "vcl.gdi", "VirtualDevice::~VirtualDevice()" ); @@ -279,8 +269,6 @@ VirtualDevice::~VirtualDevice() pSVData->maGDIData.mpLastVirDev = mpPrev; } - - bool VirtualDevice::InnerImplSetOutputSizePixel( const Size& rNewSize, bool bErase, const basebmp::RawMemorySharedArray &pBuffer ) { SAL_INFO( "vcl.gdi", @@ -381,8 +369,6 @@ bool VirtualDevice::InnerImplSetOutputSizePixel( const Size& rNewSize, bool bEra return bRet; } - - // #i32109#: Fill opaque areas correctly (without relying on // fill/linecolor state) void VirtualDevice::ImplFillOpaqueRectangle( const Rectangle& rRect ) @@ -397,8 +383,6 @@ void VirtualDevice::ImplFillOpaqueRectangle( const Rectangle& rRect ) Pop(); } - - bool VirtualDevice::ImplSetOutputSizePixel( const Size& rNewSize, bool bErase, const basebmp::RawMemorySharedArray &pBuffer ) { if( InnerImplSetOutputSizePixel(rNewSize, bErase, pBuffer) ) @@ -434,6 +418,18 @@ bool VirtualDevice::ImplSetOutputSizePixel( const Size& rNewSize, bool bErase, c return false; } +void VirtualDevice::EnableRTL( bool bEnable ) +{ + // virdevs default to not mirroring, they will only be set to mirroring + // under rare circumstances in the UI, eg the valueset control + // because each virdev has its own SalGraphics we can safely switch the SalGraphics here + // ...hopefully + if( ImplGetGraphics() ) + mpGraphics->SetLayout( bEnable ? SAL_LAYOUT_BIDI_RTL : 0 ); + + OutputDevice::EnableRTL(bEnable); +} + bool VirtualDevice::SetOutputSizePixel( const Size& rNewSize, bool bErase ) { return ImplSetOutputSizePixel( rNewSize, bErase, basebmp::RawMemorySharedArray() ); @@ -451,8 +447,6 @@ bool VirtualDevice::SetOutputSizePixelScaleOffsetAndBuffer( const Size& rNewSize return ImplSetOutputSizePixel( rNewSize, true, pBuffer); } - - void VirtualDevice::SetReferenceDevice( RefDevMode i_eRefDevMode ) { sal_Int32 nDPIX = 600, nDPIY = 600; @@ -533,13 +527,9 @@ void VirtualDevice::ImplSetReferenceDevice( RefDevMode i_eRefDevMode, sal_Int32 mpFontCache = new ImplFontCache(); } - - void VirtualDevice::Compat_ZeroExtleadBug() { meRefDevMode = (sal_uInt8)meRefDevMode | REFDEV_FORCE_ZERO_EXTLEAD; } - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index abe769a3af65..6736c54995c4 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -106,11 +106,8 @@ using namespace ::com::sun::star::datatransfer::dnd; using namespace ::com::sun::star; using namespace com::sun; - using ::com::sun::star::awt::XTopWindow; - - #define IMPL_PAINT_PAINT ((sal_uInt16)0x0001) #define IMPL_PAINT_PAINTALL ((sal_uInt16)0x0002) #define IMPL_PAINT_PAINTALLCHILDREN ((sal_uInt16)0x0004) @@ -118,8 +115,6 @@ using ::com::sun::star::awt::XTopWindow; #define IMPL_PAINT_ERASE ((sal_uInt16)0x0010) #define IMPL_PAINT_CHECKRTL ((sal_uInt16)0x0020) - - struct ImplCalcToTopData { ImplCalcToTopData* mpNext; @@ -144,7 +139,6 @@ ImplAccessibleInfos::~ImplAccessibleInfos() } - WindowImpl::WindowImpl( WindowType nType ) { maZoom = Fraction( 1, 1 ); @@ -303,9 +297,6 @@ WindowImpl::~WindowImpl() delete mpControlFont; } - - - // helper method to allow inline constructor even for pWindow!=NULL case void ImplDelData::AttachToWindow( const Window* pWindow ) { @@ -313,8 +304,6 @@ void ImplDelData::AttachToWindow( const Window* pWindow ) const_cast<Window*>(pWindow)->ImplAddDel( this ); } - - // define dtor for ImplDelData ImplDelData::~ImplDelData() { @@ -328,8 +317,6 @@ ImplDelData::~ImplDelData() } } - - #ifdef DBG_UTIL const char* ImplDbgCheckWindow( const void* pObj ) { @@ -420,6 +407,12 @@ bool Window::ImplInitGraphics() const return mpGraphics ? true : false; } +void Window::EnableRTL ( bool bEnable ) +{ + StateChanged( STATE_CHANGE_MIRRORING ); + OutputDevice::EnableRTL(bEnable); +} + void Window::CopyAreaFinal( SalTwoRect& aPosAry, sal_uInt32 nFlags ) { if (aPosAry.mnSrcWidth == 0 || aPosAry.mnSrcHeight == 0 || aPosAry.mnDestWidth == 0 || aPosAry.mnDestHeight == 0) |