[Libreoffice-commits] core.git: include/vcl vcl/Library_vcl.mk vcl/source

Chris Sherlock chris.sherlock79 at gmail.com
Thu May 1 03:01:50 PDT 2014


 include/vcl/outdev.hxx               |   45 ++++
 include/vcl/window.hxx               |   49 -----
 vcl/Library_vcl.mk                   |    2 
 vcl/source/outdev/nativecontrols.cxx |  329 +++++++++++++++++++++++++++++++++++
 vcl/source/window/nativecontrols.cxx |  307 --------------------------------
 5 files changed, 377 insertions(+), 355 deletions(-)

New commits:
commit f2e4bb4b96a7c2176a0dd1dacd9930bf9b68d895
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date:   Thu May 1 20:00:56 2014 +1000

    Revert "VCL: move native widget rendering functions out of OutputDevice"
    
    This reverts commit 5b86e33b5fb5f8250b88bf14e579cddd98fec36a.

diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 7051f5a..9cc34e8 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 19c20d01..001dfd5 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 c331fdf..d630017 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
similarity index 90%
rename from vcl/source/window/nativecontrols.cxx
rename to vcl/source/outdev/nativecontrols.cxx
index 38c8498..28e2d35 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 )


More information about the Libreoffice-commits mailing list