diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2014-05-01 20:00:56 +1000 |
---|---|---|
committer | Chris Sherlock <chris.sherlock79@gmail.com> | 2014-05-01 20:00:56 +1000 |
commit | f2e4bb4b96a7c2176a0dd1dacd9930bf9b68d895 (patch) | |
tree | f90a4c68e4ffe70d95e0dc5f61cb6515a8033288 | |
parent | 4f45ec19fc96e4471dc3fe342e5acd910068dd12 (diff) |
Revert "VCL: move native widget rendering functions out of OutputDevice"
This reverts commit 5b86e33b5fb5f8250b88bf14e579cddd98fec36a.
-rw-r--r-- | include/vcl/outdev.hxx | 45 | ||||
-rw-r--r-- | include/vcl/window.hxx | 49 | ||||
-rw-r--r-- | vcl/Library_vcl.mk | 2 | ||||
-rw-r--r-- | vcl/source/outdev/nativecontrols.cxx (renamed from vcl/source/window/nativecontrols.cxx) | 40 |
4 files changed, 79 insertions, 57 deletions
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index 7051f5a149fe..9cc34e850c48 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -1795,6 +1795,51 @@ private: ///@} + /** @name Native Widget Rendering functions + + These all just call through to the private mpGraphics functions of the same name. + */ + ///@{ + +public: + + /** Query the platform layer for control support + */ + bool IsNativeControlSupported( ControlType nType, ControlPart nPart ) const; + + /** Query the native control to determine if it was acted upon + */ + bool HitTestNativeControl( ControlType nType, + ControlPart nPart, + const Rectangle& rControlRegion, + const Point& aPos, + bool& rIsInside ) const; + + /** Request rendering of a particular control and/or part + */ + bool DrawNativeControl( ControlType nType, + ControlPart nPart, + const Rectangle& rControlRegion, + ControlState nState, + const ImplControlValue& aValue, + const OUString& aCaption ); + + /** Query the native control's actual drawing region (including adornment) + */ + bool GetNativeControlRegion( ControlType nType, + ControlPart nPart, + const Rectangle& rControlRegion, + ControlState nState, + const ImplControlValue& aValue, + const OUString& aCaption, + Rectangle &rNativeBoundingRegion, + Rectangle &rNativeContentRegion ) const; + ///@} + + /** @name EPS functions + */ + ///@{ + public: /** Added return value to see if EPS could be painted directly. diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index 19c20d01d520..001dfd5c1d7c 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -970,7 +970,7 @@ public: bool HasChildPathFocus( bool bSystemWindow = false ) const; bool IsActive() const; bool HasActiveChildFrame(); - sal_uInt16 GetGetFocusFlags() const; + sal_uInt16 GetGetFocusFlags() const; void GrabFocusToDocument(); /** @@ -1033,7 +1033,7 @@ public: Window* FindWindow( const Point& rPos ) const; - sal_uInt16 GetChildCount() const; + sal_uInt16 GetChildCount() const; Window* GetChild( sal_uInt16 nChild ) const; Window* GetWindow( sal_uInt16 nType ) const; bool IsChild( const Window* pWindow, bool bSystemWindow = false ) const; @@ -1076,51 +1076,6 @@ public: void SaveBackground( const Point& rPos, const Size& rSize, const Point& rDestOff, VirtualDevice& rSaveDevice ); - - /** @name Native Widget Rendering functions - - These all just call through to the private mpGraphics functions of the same name. - */ - ///@{ - - /** Query the platform layer for control support - */ - bool IsNativeControlSupported( ControlType nType, ControlPart nPart ) const; - - /** @name EPS functions - */ - ///@{ - - - /** Query the native control to determine if it was acted upon - */ - bool HitTestNativeControl( ControlType nType, - ControlPart nPart, - const Rectangle& rControlRegion, - const Point& aPos, - bool& rIsInside ) const; - - /** Request rendering of a particular control and/or part - */ - bool DrawNativeControl( ControlType nType, - ControlPart nPart, - const Rectangle& rControlRegion, - ControlState nState, - const ImplControlValue& aValue, - const OUString& aCaption ); - - /** Query the native control's actual drawing region (including adornment) - */ - bool GetNativeControlRegion( ControlType nType, - ControlPart nPart, - const Rectangle& rControlRegion, - ControlState nState, - const ImplControlValue& aValue, - const OUString& aCaption, - Rectangle &rNativeBoundingRegion, - Rectangle &rNativeContentRegion ) const; - ///@} - const SystemEnvData* GetSystemData() const; ::com::sun::star::uno::Any GetSystemDataAny() const; diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index c331fdfb82b8..d630017e0ae5 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -146,7 +146,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/window/window \ vcl/source/window/winproc \ vcl/source/window/wrkwin \ - vcl/source/window/nativecontrols \ vcl/source/control/button \ vcl/source/control/combobox \ vcl/source/control/ctrl \ @@ -196,6 +195,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/outdev/gradient \ vcl/source/outdev/curvedshapes \ vcl/source/outdev/wallpaper \ + vcl/source/outdev/nativecontrols \ vcl/source/outdev/map \ vcl/source/gdi/alpha \ vcl/source/gdi/animate \ diff --git a/vcl/source/window/nativecontrols.cxx b/vcl/source/outdev/nativecontrols.cxx index 38c84981c64f..28e2d35921f5 100644 --- a/vcl/source/window/nativecontrols.cxx +++ b/vcl/source/outdev/nativecontrols.cxx @@ -25,6 +25,29 @@ #include <salgdi.hxx> +static bool EnableNativeWidget( const OutputDevice& i_rDevice ) +{ + const OutDevType eType( i_rDevice.GetOutDevType() ); + switch ( eType ) + { + + case OUTDEV_WINDOW: + return dynamic_cast< const Window* >( &i_rDevice )->IsNativeWidgetEnabled(); + + case OUTDEV_VIRDEV: + { + const ::vcl::ExtOutDevData* pOutDevData( i_rDevice.GetExtOutDevData() ); + const ::vcl::PDFExtOutDevData* pPDFData( dynamic_cast< const ::vcl::PDFExtOutDevData* >( pOutDevData ) ); + if ( pPDFData != NULL ) + return false; + return true; + } + + default: + return false; + } +} + ImplControlValue::~ImplControlValue() { } @@ -118,9 +141,9 @@ PushButtonValue* PushButtonValue::clone() const // These functions are mainly passthrough functions that allow access to // the SalFrame behind a Window object for native widget rendering purposes. -bool Window::IsNativeControlSupported( ControlType nType, ControlPart nPart ) const +bool OutputDevice::IsNativeControlSupported( ControlType nType, ControlPart nPart ) const { - if( !IsNativeWidgetEnabled() ) + if( !EnableNativeWidget( *this ) ) return false; if ( !mpGraphics ) @@ -130,13 +153,13 @@ bool Window::IsNativeControlSupported( ControlType nType, ControlPart nPart ) co return( mpGraphics->IsNativeControlSupported(nType, nPart) ); } -bool Window::HitTestNativeControl( ControlType nType, +bool OutputDevice::HitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, const Point& aPos, bool& rIsInside ) const { - if( !IsNativeWidgetEnabled() ) + if( !EnableNativeWidget( *this ) ) return false; if ( !mpGraphics ) @@ -229,15 +252,14 @@ static boost::shared_ptr< ImplControlValue > TransformControlValue( const ImplCo } return aResult; } - -bool Window::DrawNativeControl( ControlType nType, +bool OutputDevice::DrawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, const ImplControlValue& aValue, const OUString& aCaption ) { - if( !IsNativeWidgetEnabled() ) + if( !EnableNativeWidget( *this ) ) return false; // make sure the current clip region is initialized correctly @@ -270,7 +292,7 @@ bool Window::DrawNativeControl( ControlType nType, return bRet; } -bool Window::GetNativeControlRegion( ControlType nType, +bool OutputDevice::GetNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState, @@ -279,7 +301,7 @@ bool Window::GetNativeControlRegion( ControlType nType, Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ) const { - if( !IsNativeWidgetEnabled() ) + if( !EnableNativeWidget( *this ) ) return false; if ( !mpGraphics ) |