[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - editeng/source include/svx svx/inc svx/source

matteocam matteo.campanelli at gmail.com
Tue Jul 22 05:58:10 PDT 2014


 editeng/source/editeng/impedit3.cxx                  |    4 +-
 include/svx/sdr/primitive2d/svx_primitivetypes2d.hxx |    2 -
 svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx       |   27 +++++++++++++++++++
 svx/source/sdr/primitive2d/sdrdecompositiontools.cxx |    5 +++
 svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx    |   23 ++++++++++++++++
 5 files changed, 58 insertions(+), 3 deletions(-)

New commits:
commit 7427a65ad93a68ac3814d8c88f831474194351c0
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Tue Jul 22 15:57:18 2014 +0300

    Basic SdrChainedTextPrimitive2D class definition
    
    Change-Id: I3bab06d061b1bde6804c0d539df3cf81bb363857

diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 196d0ee..77264b4 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -542,8 +542,8 @@ void ImpEditEngine::CheckAutoPageSize()
     SetValidPaperSize( aPaperSize );    // consider Min, Max
 
     // FIXME(matteocam)
-    fprintf( stderr, IsPageOverflow(aPaperSize, aPrevPaperSize)
-                        ? "YES Overflow!\n"  : "NO Overflow!\n" );
+    /* fprintf( stderr, IsPageOverflow(aPaperSize, aPrevPaperSize)
+                        ? "YES Overflow!\n"  : "NO Overflow!\n" ); */
     // setting overflow status
     if ( IsPageOverflow( aPaperSize, aPrevPaperSize ) )
         aStatus.SetPageOverflow(true);
diff --git a/include/svx/sdr/primitive2d/svx_primitivetypes2d.hxx b/include/svx/sdr/primitive2d/svx_primitivetypes2d.hxx
index 0fae52a..cc7aca0 100644
--- a/include/svx/sdr/primitive2d/svx_primitivetypes2d.hxx
+++ b/include/svx/sdr/primitive2d/svx_primitivetypes2d.hxx
@@ -48,7 +48,7 @@
 #define PRIMITIVE2D_ID_SDRCONTROLPRIMITIVE2D            (PRIMITIVE2D_ID_RANGE_SVX| 21)
 #define PRIMITIVE2D_ID_SDROLECONTENTPRIMITIVE2D         (PRIMITIVE2D_ID_RANGE_SVX| 22)
 #define PRIMITIVE2D_ID_SDRAUTOFITTEXTPRIMITIVE2D        (PRIMITIVE2D_ID_RANGE_SVX| 23)
-
+#define PRIMITIVE2D_ID_SDRCHAINEDTEXTPRIMITIVE2D        (PRIMITIVE2D_ID_RANGE_SVX| 24)
 
 
 #endif // INCLUDED_SVX_SDR_PRIMITIVE2D_SVX_PRIMITIVETYPES2D_HXX
diff --git a/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx
index fa8a13f..44b82ae 100644
--- a/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx
+++ b/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx
@@ -331,6 +331,33 @@ namespace drawinglayer
     } // end of namespace primitive2d
 } // end of namespace drawinglayer
 
+namespace drawinglayer
+{
+    namespace primitive2d
+    {
+        class SdrChainedTextPrimitive2D : public SdrTextPrimitive2D
+        {
+        private:
+            // XXX: might have position of overflowing text
+        protected:
+            // local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const SAL_OVERRIDE;
+
+        public:
+            SdrChainedTextPrimitive2D(
+                const SdrText* pSdrText,
+                const OutlinerParaObject& rOutlinerParaObjectPtrs);
+
+            // get data
+
+            // compare operator
+            //virtual bool operator==(const BasePrimitive2D& rPrimitive) const SAL_OVERRIDE;
+
+            // provide unique ID
+            DeclPrimitive2DIDBlock()
+        };
+    } // end of namespace primitive2d
+} // end of namespace drawinglayer
 
 
 #endif // INCLUDED_SVX_INC_SDR_PRIMITIVE2D_SDRTEXTPRIMITIVE2D_HXX
diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
index a12ff99..7e2a705 100644
--- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
+++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
@@ -302,6 +302,11 @@ namespace drawinglayer
                 }
                 else if(rText.isAutoFit())
                 {
+                    // FIXME(matteocam)
+                    bool b = false;
+                    if (b)
+                        pNew = new SdrChainedTextPrimitive2D( &rText.getSdrText(), rText.getOutlinerParaObject() );
+                    else // end FIXME
                     // isotrophically scaled text in range
                     pNew = new SdrAutoFitTextPrimitive2D(&rText.getSdrText(), rText.getOutlinerParaObject(), aAnchorTransform, bWordWrap);
                 }
diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
index 158a0d0..8ba2909 100644
--- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
@@ -480,6 +480,29 @@ namespace drawinglayer
      } // end of namespace primitive2d
  } // end of namespace drawinglayer
 
+namespace drawinglayer
+{
+    namespace primitive2d
+    {
+
+        SdrChainedTextPrimitive2D::SdrChainedTextPrimitive2D(
+            const SdrText* pSdrText,
+            const OutlinerParaObject& rOutlinerParaObject)
+        : SdrTextPrimitive2D(pSdrText, rOutlinerParaObject)
+        { }
+
+        Primitive2DSequence SdrChainedTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const
+        {
+            Primitive2DSequence aRetval;
+            getSdrText()->GetObject().impDecomposeChainedPrimitive(aRetval, *this, aViewInformation);
+
+            return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval);
+        }
+
+        // provide unique ID
+        ImplPrimitive2DIDBlock(SdrChainedTextPrimitive2D, PRIMITIVE2D_ID_SDRCHAINEDTEXTPRIMITIVE2D)
+    } // end of namespace primitive2d
+} // end of namespace drawinglayer
 
 
  namespace drawinglayer


More information about the Libreoffice-commits mailing list