[Libreoffice-commits] core.git: 2 commits - cui/source cui/uiconfig include/svx sd/source vcl/inc vcl/unx

Caolán McNamara caolanm at redhat.com
Mon Jun 13 10:28:49 UTC 2016


 cui/source/inc/textattr.hxx          |    8 
 cui/source/tabpages/textanim.cxx     |   17 +-
 cui/source/tabpages/textattr.cxx     |  131 ++++++++--------
 cui/uiconfig/ui/textattrtabpage.ui   |  286 ++++++++++++++++++++---------------
 include/svx/svxids.hrc               |    2 
 sd/source/ui/dlg/prltempl.cxx        |    5 
 sd/source/ui/dlg/tabtempl.cxx        |    5 
 vcl/inc/unx/gtk/gtkgdi.hxx           |    5 
 vcl/unx/gtk/gtkinst.cxx              |    4 
 vcl/unx/gtk/salnativewidgets-gtk.cxx |   10 -
 10 files changed, 273 insertions(+), 200 deletions(-)

New commits:
commit 8d51397bfd98615e74e116582a50e29846ecb76e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jun 9 13:03:57 2016 +0100

    Related: tdf#93135 adjust the ui to reflect the text fit options entanglement
    
    We have two major groups of text fitting options in draw/impress
    
    ones that apply only to custom shapes
     * Word wrap text in shape
     * Resize shape to fit text
    
    those that apply to other elements, e.g. text boxes, legacy rectangles and lines
     * Fit width to text
     * Fit height to text
     * Fit to frame
     * Adjust to contour
    
    Of the second group, only "fit to frame" is always available. Text boxes
    have "Fit width to text" and "Fit height to text", while stuff like legacy
    rectangles and lines etc have "Adjust to contour" instead.
    
    A fun issue is that (currently anyway) the bit for "resize shape to
    fit text" in custom shapes and the bit for "fit height to text" in text boxes
    is the same bit, SDRATTR_TEXT_AUTOGROWHEIGHT.
    
    So before this change in all circumstances the same collection of checkboxes
    for all settings was visible. With context used to enable or disable which
    ones could be set according to the type of shape it was. Simultaneously there
    is logic to enable/disable checkboxes depending on if other checkboxes that
    control contradictionary options were checked/unchecked. e.g. "Fit to frame"
    disabled if "fit height to text" is enabled. So its not apparently why some
    can be enabled and some disabled by clicking about the place in the shared
    collection.
    
    In this commit we split the sizing options into their two families, one frame and
    column for each of "custom shapes" and "everything else". When adjusting
    a single selected object we use context to determine which column to show
    or hide. When editing multiple objects or the underlying graphic styles we show
    both columns. When editing a presentation style we show just the text box
    column. (The use of HasText in the original code is a concern, cause it doesn't
    make sense to me, using it like that means that in the original dialog
    format->text on an empty text box from F2 shows the contour option, but after
    entering text and then format->text it shows a set of different text box sizing
    options, so that's dropped here)
    
    Because (currently) the same SDRATTR_TEXT_AUTOGROWHEIGHT bit it used for two
    apparently different things then we visually toggle on all things that use that
    bit in multi-column mode when its togged on, i.e. on editing a style visually
    both "fit height to text" and "resize shape to fix text" are kept in sync when
    you toggle one or the other. We don't disable the "resize shape to fit text"
    checkbox (unlike the fit height to text checkbox which controls the same bit)
    if "fit to frame" and "adjust to contour" are set, and give it additional
    powers to unset those if clicked.
    
    This hopefully makes the ui describe the way things actually are.
    
    Because this SDRATTR_TEXT_AUTOGROWHEIGHT is currently sort of doing two purposes
    selecting a freshly drawn custom rectangle and using format->default formatting
    will cause it to change properties because the underlying
    SDRATTR_TEXT_AUTOGROWHEIGHT bit is cleared.
    
    The way things should probably be I guess is that there should be a
    SDRATTR_TEXT_AUTOGROWSIZE property (which used to exist but wasn't hooked up to
    anything) just for custom shapes which overrides the old family of options if
    set.
    
    Change-Id: I49241c90d919eeb5caa8775beab57746d5c6df04

diff --git a/cui/source/inc/textattr.hxx b/cui/source/inc/textattr.hxx
index 7d67d86..a826b2f 100644
--- a/cui/source/inc/textattr.hxx
+++ b/cui/source/inc/textattr.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_CUI_SOURCE_INC_TEXTATTR_HXX
 
 #include <svx/dlgctrl.hxx>
+#include <svx/svdobj.hxx>
 
 #include <vcl/group.hxx>
 
@@ -39,6 +40,9 @@ class SvxTextAttrPage : public SvxTabPage
 private:
     static const sal_uInt16 pRanges[];
 
+    VclPtr<VclContainer>        m_pDrawingText;
+    VclPtr<VclContainer>        m_pCustomShapeText;
+
     VclPtr<TriStateBox>         m_pTsbAutoGrowWidth;
     VclPtr<TriStateBox>         m_pTsbAutoGrowHeight;
     VclPtr<TriStateBox>         m_pTsbFitToSize;
@@ -57,7 +61,7 @@ private:
     VclPtr<TriStateBox>         m_pTsbFullWidth;
 
     const SfxItemSet&   rOutAttrs;
-    const SdrView*      pView;
+    SdrObjKind    m_eObjKind;
 
     bool                bAutoGrowSizeEnabled;
     bool                bContourEnabled;
@@ -89,7 +93,7 @@ public:
     virtual void        PointChanged( vcl::Window* pWindow, RECT_POINT eRP ) override;
 
     void         Construct();
-    void         SetView( const SdrView* pSdrView ) { pView = pSdrView; }
+    void         SetObjKind(SdrObjKind eObjKind) { m_eObjKind = eObjKind; }
     virtual void PageCreated(const SfxAllItemSet& aSet) override;
 };
 
diff --git a/cui/source/tabpages/textanim.cxx b/cui/source/tabpages/textanim.cxx
index 64bf0e1..5c9ba06 100644
--- a/cui/source/tabpages/textanim.cxx
+++ b/cui/source/tabpages/textanim.cxx
@@ -27,6 +27,8 @@
 #include "textattr.hxx"
 #include <dialmgr.hxx>
 #include "svx/dlgutil.hxx"
+#include "svx/svdmark.hxx"
+#include "svx/svdview.hxx"
 
 const sal_uInt16 SvxTextAnimationPage::pRanges[] =
 {
@@ -63,10 +65,21 @@ SvxTextTabDialog::SvxTextTabDialog( vcl::Window* pParent,
 void SvxTextTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
 {
     if (nId == m_nTextId)
+    {
+        const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+        bool bHasMarked = rMarkList.GetMarkCount() > 0;
+        SdrObjKind eKind = OBJ_NONE;
+        if (bHasMarked)
         {
-            static_cast<SvxTextAttrPage&>(rPage).SetView( pView );
-            static_cast<SvxTextAttrPage&>(rPage).Construct();
+            if (rMarkList.GetMarkCount() == 1)
+            {
+                const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+                eKind = (SdrObjKind)pObj->GetObjIdentifier();
+            }
         }
+        static_cast<SvxTextAttrPage&>(rPage).SetObjKind(eKind);
+        static_cast<SvxTextAttrPage&>(rPage).Construct();
+    }
 }
 
 
diff --git a/cui/source/tabpages/textattr.cxx b/cui/source/tabpages/textattr.cxx
index 29e6325..d7d8008 100644
--- a/cui/source/tabpages/textattr.cxx
+++ b/cui/source/tabpages/textattr.cxx
@@ -56,7 +56,7 @@ const sal_uInt16 SvxTextAttrPage::pRanges[] =
 SvxTextAttrPage::SvxTextAttrPage(vcl::Window* pWindow, const SfxItemSet& rInAttrs)
     : SvxTabPage(pWindow,"TextAttributesPage","cui/ui/textattrtabpage.ui", rInAttrs)
     , rOutAttrs(rInAttrs)
-    , pView(nullptr)
+    , m_eObjKind(OBJ_NONE)
     , bAutoGrowSizeEnabled(false)
     , bContourEnabled(false)
     , bAutoGrowWidthEnabled(false)
@@ -64,6 +64,8 @@ SvxTextAttrPage::SvxTextAttrPage(vcl::Window* pWindow, const SfxItemSet& rInAttr
     , bWordWrapTextEnabled(false)
     , bFitToSizeEnabled(false)
 {
+    get(m_pDrawingText, "drawingtext");
+    get(m_pCustomShapeText, "customshapetext");
     get(m_pTsbAutoGrowWidth,"TSB_AUTOGROW_WIDTH");
     get(m_pTsbAutoGrowHeight,"TSB_AUTOGROW_HEIGHT");
     get(m_pTsbFitToSize,"TSB_FIT_TO_SIZE");
@@ -90,6 +92,7 @@ SvxTextAttrPage::SvxTextAttrPage(vcl::Window* pWindow, const SfxItemSet& rInAttr
     Link<Button*,void> aLink( LINK( this, SvxTextAttrPage, ClickHdl_Impl ) );
     m_pTsbAutoGrowWidth->SetClickHdl( aLink );
     m_pTsbAutoGrowHeight->SetClickHdl( aLink );
+    m_pTsbAutoGrowSize->SetClickHdl( aLink );
     m_pTsbFitToSize->SetClickHdl( aLink );
     m_pTsbContour->SetClickHdl( aLink );
 
@@ -103,6 +106,8 @@ SvxTextAttrPage::~SvxTextAttrPage()
 
 void SvxTextAttrPage::dispose()
 {
+    m_pDrawingText.clear();
+    m_pCustomShapeText.clear();
     m_pTsbAutoGrowWidth.clear();
     m_pTsbAutoGrowHeight.clear();
     m_pTsbFitToSize.clear();
@@ -181,16 +186,24 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
         m_pMtrFldBottom->SetText( "" );
     m_pMtrFldBottom->SaveValue();
 
-    // adjust to height
+    // adjust to height and autogrowsize
     if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) != SfxItemState::DONTCARE )
     {
         m_pTsbAutoGrowHeight->SetState( static_cast<const SdrOnOffItem&>( rAttrs->Get( SDRATTR_TEXT_AUTOGROWHEIGHT ) ).
                         GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
         m_pTsbAutoGrowHeight->EnableTriState( false );
+
+        m_pTsbAutoGrowSize->SetState( static_cast<const SdrOnOffItem&>( rAttrs->Get( SDRATTR_TEXT_AUTOGROWHEIGHT ) ).
+                        GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
+        m_pTsbAutoGrowSize->EnableTriState( false );
     }
     else
+    {
         m_pTsbAutoGrowHeight->SetState( TRISTATE_INDET );
+        m_pTsbAutoGrowSize->SetState( TRISTATE_INDET );
+    }
     m_pTsbAutoGrowHeight->SaveValue();
+    m_pTsbAutoGrowSize->SaveValue();
 
     // adjust to width
     if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWWIDTH ) != SfxItemState::DONTCARE )
@@ -203,17 +216,6 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
         m_pTsbAutoGrowWidth->SetState( TRISTATE_INDET );
     m_pTsbAutoGrowWidth->SaveValue();
 
-    // autogrowsize
-    if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) != SfxItemState::DONTCARE )
-    {
-        m_pTsbAutoGrowSize->SetState( static_cast<const SdrOnOffItem&>( rAttrs->Get( SDRATTR_TEXT_AUTOGROWHEIGHT ) ).
-                        GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
-        m_pTsbAutoGrowSize->EnableTriState( false );
-    }
-    else
-        m_pTsbAutoGrowSize->SetState( TRISTATE_INDET );
-    m_pTsbAutoGrowSize->SaveValue();
-
     // wordwrap text
     if ( rAttrs->GetItemState( SDRATTR_TEXT_WORDWRAP ) != SfxItemState::DONTCARE )
     {
@@ -481,52 +483,47 @@ bool SvxTextAttrPage::FillItemSet( SfxItemSet* rAttrs)
 
 void SvxTextAttrPage::Construct()
 {
-    DBG_ASSERT( pView, "Keine gueltige View Uebergeben!" );
-
-    bFitToSizeEnabled = bContourEnabled = true;
-    bWordWrapTextEnabled = bAutoGrowSizeEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = false;
-
-    const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
-    if( rMarkList.GetMarkCount() == 1 )
+    switch (m_eObjKind)
     {
-        const SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
-        SdrObjKind eKind = (SdrObjKind) pObj->GetObjIdentifier();
-        if( pObj->GetObjInventor() == SdrInventor )
-        {
-            switch( eKind )
-            {
-                case OBJ_TEXT :
-                case OBJ_TITLETEXT :
-                case OBJ_OUTLINETEXT :
-                case OBJ_CAPTION :
-                {
-                    if(pObj->HasText())
-                    {
-                        // contour NOT possible for pure text objects
-                        bContourEnabled = false;
-
-                        // adjusting width and height is ONLY possible for pure text objects
-                        bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = true;
-                    }
-                }
-                break;
-                case OBJ_CUSTOMSHAPE :
-                {
-                    bFitToSizeEnabled = bContourEnabled = false;
-                    bAutoGrowSizeEnabled = true;
-                    bWordWrapTextEnabled = true;
-                }
-                break;
-                default: ;//prevent warning
-            }
-        }
+        case OBJ_NONE:
+            // indeterminate, show them all
+            bFitToSizeEnabled = bContourEnabled = bWordWrapTextEnabled =
+            bAutoGrowSizeEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = true;
+            m_pCustomShapeText->Show();
+            m_pDrawingText->Show();
+            break;
+        case OBJ_TEXT:
+        case OBJ_TITLETEXT:
+        case OBJ_OUTLINETEXT:
+        case OBJ_CAPTION:
+            // contour NOT possible for pure text objects
+            bContourEnabled = bWordWrapTextEnabled = bAutoGrowSizeEnabled = false;
+
+            // adjusting width and height is ONLY possible for pure text objects
+            bFitToSizeEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = true;
+            m_pCustomShapeText->Hide();
+            m_pDrawingText->Show();
+            break;
+        case OBJ_CUSTOMSHAPE:
+            bFitToSizeEnabled = bContourEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = false;
+            bWordWrapTextEnabled = bAutoGrowSizeEnabled = true;
+            m_pDrawingText->Hide();
+            m_pCustomShapeText->Show();
+            break;
+        default:
+            bFitToSizeEnabled = bContourEnabled = true;
+            bWordWrapTextEnabled = bAutoGrowSizeEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = false;
+            m_pCustomShapeText->Hide();
+            m_pDrawingText->Show();
+            break;
     }
-    m_pTsbAutoGrowHeight->Enable( bAutoGrowHeightEnabled );
-    m_pTsbAutoGrowWidth->Enable( bAutoGrowWidthEnabled );
-    m_pTsbFitToSize->Enable( bFitToSizeEnabled );
-    m_pTsbContour->Enable( bContourEnabled );
-    m_pTsbAutoGrowSize->Enable( bAutoGrowSizeEnabled );
-    m_pTsbWordWrapText->Enable( bWordWrapTextEnabled );
+
+    m_pTsbAutoGrowHeight->Show( bAutoGrowHeightEnabled );
+    m_pTsbAutoGrowWidth->Show( bAutoGrowWidthEnabled );
+    m_pTsbFitToSize->Show( bFitToSizeEnabled );
+    m_pTsbContour->Show( bContourEnabled );
+    m_pTsbAutoGrowSize->Show( bAutoGrowSizeEnabled );
+    m_pTsbWordWrapText->Show( bWordWrapTextEnabled );
 }
 
 VclPtr<SfxTabPage> SvxTextAttrPage::Create( vcl::Window* pWindow,
@@ -639,8 +636,20 @@ IMPL_LINK_NOARG_TYPED(SvxTextAttrPage, ClickFullWidthHdl_Impl, Button*, void)
 |*
 \************************************************************************/
 
-IMPL_LINK_NOARG_TYPED(SvxTextAttrPage, ClickHdl_Impl, Button*, void)
+IMPL_LINK_TYPED(SvxTextAttrPage, ClickHdl_Impl, Button*, pButton, void)
 {
+    if (pButton == m_pTsbAutoGrowSize)
+    {
+        m_pTsbAutoGrowHeight->SetState(m_pTsbAutoGrowSize->GetState());
+        if (m_pTsbAutoGrowSize->GetState() == TRISTATE_TRUE)
+        {
+            m_pTsbFitToSize->SetState(TRISTATE_FALSE);
+            m_pTsbContour->SetState(TRISTATE_FALSE);
+        }
+    }
+    else if (pButton == m_pTsbAutoGrowHeight)
+        m_pTsbAutoGrowSize->SetState(m_pTsbAutoGrowHeight->GetState());
+
     bool bAutoGrowWidth  = m_pTsbAutoGrowWidth->GetState() == TRISTATE_TRUE;
     bool bAutoGrowHeight = m_pTsbAutoGrowHeight->GetState() == TRISTATE_TRUE;
     bool bFitToSize      = m_pTsbFitToSize->GetState() == TRISTATE_TRUE;
@@ -701,10 +710,10 @@ bool SvxTextAttrPage::IsTextDirectionLeftToRight() const
 
 void SvxTextAttrPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    const OfaPtrItem* pViewItem = aSet.GetItem<OfaPtrItem>(SID_SVXTEXTATTRPAGE_VIEW, false);
+    const CntUInt16Item* pObjTypeItem = aSet.GetItem<CntUInt16Item>(SID_SVXTEXTATTRPAGE_OBJKIND, false);
 
-    if (pViewItem)
-        SetView( static_cast<SdrView *>(pViewItem->GetValue()));
+    if (pObjTypeItem)
+        SetObjKind(static_cast<SdrObjKind>(pObjTypeItem->GetValue()));
 
     Construct();
 }
diff --git a/cui/uiconfig/ui/textattrtabpage.ui b/cui/uiconfig/ui/textattrtabpage.ui
index 15574d6..dc0059b 100644
--- a/cui/uiconfig/ui/textattrtabpage.ui
+++ b/cui/uiconfig/ui/textattrtabpage.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.0 -->
 <interface>
   <requires lib="gtk+" version="3.0"/>
   <requires lib="LibreOffice" version="1.0"/>
@@ -16,139 +16,189 @@
     <property name="orientation">vertical</property>
     <property name="spacing">12</property>
     <child>
-      <object class="GtkFrame" id="frame1">
+      <object class="GtkGrid">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="label_xalign">0</property>
-        <property name="shadow_type">none</property>
+        <property name="column_homogeneous">True</property>
         <child>
-          <object class="GtkAlignment" id="alignment1">
+          <object class="GtkFrame" id="drawingtext">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="top_padding">6</property>
-            <property name="left_padding">12</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
             <child>
-              <object class="GtkGrid" id="grid1">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="row_spacing">6</property>
-                <property name="column_spacing">12</property>
-                <child>
-                  <object class="GtkCheckButton" id="TSB_AUTOGROW_WIDTH">
-                    <property name="label" translatable="yes">Fit wi_dth to text</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="inconsistent">True</property>
-                    <property name="draw_indicator">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkCheckButton" id="TSB_AUTOGROW_HEIGHT">
-                    <property name="label" translatable="yes">Fit h_eight to text</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="inconsistent">True</property>
-                    <property name="draw_indicator">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkCheckButton" id="TSB_FIT_TO_SIZE">
-                    <property name="label" translatable="yes">_Fit to frame</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="inconsistent">True</property>
-                    <property name="draw_indicator">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkCheckButton" id="TSB_CONTOUR">
-                    <property name="label" translatable="yes">_Adjust to contour</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="inconsistent">True</property>
-                    <property name="draw_indicator">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">3</property>
-                  </packing>
-                </child>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkCheckButton" id="TSB_WORDWRAP_TEXT">
-                    <property name="label" translatable="yes">_Word wrap text in shape</property>
+                  <object class="GtkGrid" id="grid1">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="inconsistent">True</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">12</property>
+                    <child>
+                      <object class="GtkCheckButton" id="TSB_AUTOGROW_WIDTH">
+                        <property name="label" translatable="yes">Fit wi_dth to text</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="inconsistent">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="TSB_AUTOGROW_HEIGHT">
+                        <property name="label" translatable="yes">Fit h_eight to text</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="inconsistent">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="TSB_FIT_TO_SIZE">
+                        <property name="label" translatable="yes">_Fit to frame</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="inconsistent">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="TSB_CONTOUR">
+                        <property name="label" translatable="yes">_Adjust to contour</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="inconsistent">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">3</property>
+                      </packing>
+                    </child>
                   </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">0</property>
-                  </packing>
                 </child>
+              </object>
+            </child>
+            <child type="label">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Drawing Object Text</property>
+                <property name="xalign">0</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="customshapetext">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <child>
+              <object class="GtkAlignment" id="alignment4">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
                 <child>
-                  <object class="GtkCheckButton" id="TSB_AUTOGROW_SIZE">
-                    <property name="label" translatable="yes">_Resize shape to fit text</property>
+                  <object class="GtkGrid" id="grid3">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="inconsistent">True</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">12</property>
+                    <child>
+                      <object class="GtkCheckButton" id="TSB_WORDWRAP_TEXT">
+                        <property name="label" translatable="yes">_Word wrap text in shape</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="inconsistent">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="TSB_AUTOGROW_SIZE">
+                        <property name="label" translatable="yes">_Resize shape to fit text</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="inconsistent">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
                 </child>
               </object>
             </child>
+            <child type="label">
+              <object class="GtkLabel" id="label8">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Custom Shape Text</property>
+                <property name="xalign">0</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
           </object>
-        </child>
-        <child type="label">
-          <object class="GtkLabel" id="label1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="xalign">0</property>
-            <property name="label" translatable="yes">Text</property>
-            <attributes>
-              <attribute name="weight" value="bold"/>
-            </attributes>
-          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+          </packing>
         </child>
       </object>
       <packing>
@@ -184,10 +234,10 @@
                       <object class="GtkLabel" id="label4">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Left:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">MTR_FLD_LEFT:0.00cm</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -198,10 +248,10 @@
                       <object class="GtkLabel" id="label5">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Right:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">MTR_FLD_RIGHT:0.00cm</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -212,10 +262,10 @@
                       <object class="GtkLabel" id="label6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Top:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">MTR_FLD_TOP:0.00cm</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -226,10 +276,10 @@
                       <object class="GtkLabel" id="label7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Bottom:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">MTR_FLD_BOTTOM:0.00cm</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -296,8 +346,8 @@
               <object class="GtkLabel" id="label2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="xalign">0</property>
                 <property name="label" translatable="yes">Spacing to Borders</property>
+                <property name="xalign">0</property>
                 <attributes>
                   <attribute name="weight" value="bold"/>
                 </attributes>
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 8f9bcf7..c5e8918 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -851,7 +851,7 @@
 #define SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET              ( SID_SVX_START + 1030 )
 #define SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST          ( SID_SVX_START + 1031 )
 #define SID_SVXTABULATORTABPAGE_DISABLEFLAGS            ( SID_SVX_START + 1032 )
-#define SID_SVXTEXTATTRPAGE_VIEW                        ( SID_SVX_START + 1033 )
+#define SID_SVXTEXTATTRPAGE_OBJKIND                     ( SID_SVX_START + 1033 )
 #define SID_FLAG_TYPE                                   ( SID_SVX_START + 1034 )
 #define SID_SWMODE_TYPE                                 ( SID_SVX_START + 1035 )
 #define SID_DISABLE_CTL                                 ( SID_SVX_START + 1036 )
diff --git a/sd/source/ui/dlg/prltempl.cxx b/sd/source/ui/dlg/prltempl.cxx
index 8c42ee3..5bcccc5 100644
--- a/sd/source/ui/dlg/prltempl.cxx
+++ b/sd/source/ui/dlg/prltempl.cxx
@@ -278,6 +278,11 @@ void SdPresLayoutTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
     {
         rPage.PageCreated(aSet);
     }
+    else if (nId == mnTextAtt)
+    {
+        aSet.Put(CntUInt16Item(SID_SVXTEXTATTRPAGE_OBJKIND, OBJ_TEXT));
+        rPage.PageCreated(aSet);
+    }
 }
 
 const SfxItemSet* SdPresLayoutTemplateDlg::GetOutputItemSet() const
diff --git a/sd/source/ui/dlg/tabtempl.cxx b/sd/source/ui/dlg/tabtempl.cxx
index 1189922..9a06ece 100644
--- a/sd/source/ui/dlg/tabtempl.cxx
+++ b/sd/source/ui/dlg/tabtempl.cxx
@@ -24,8 +24,10 @@
 #include <svx/drawitem.hxx>
 #include <svl/intitem.hxx>
 #include <svx/ofaitem.hxx>
-#include <svx/svxgrahicitem.hxx>
+#include <svx/svdmark.hxx>
 #include <svx/svdmodel.hxx>
+#include <svx/svdview.hxx>
+#include <svx/svxgrahicitem.hxx>
 #include <svl/cjkoptions.hxx>
 
 #include <svx/dialogs.hrc>
@@ -156,7 +158,6 @@ void SdTabTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
     }
     else if (nId == m_nTextId)
     {
-        aSet.Put(OfaPtrItem(SID_SVXTEXTATTRPAGE_VIEW,pSdrView));
         rPage.PageCreated(aSet);
     }
     else if (nId == m_nDimensionId)
commit a924d8f4c031504592a53e69c7c79c1359daa88a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 13 09:15:28 2016 +0100

    looks to me we can merge these ctors
    
    Change-Id: Iab1e9888d35ecad7b1ca9713a571f32d59389cd1

diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx
index f0880c6..5bfcaf5d9 100644
--- a/vcl/inc/unx/gtk/gtkgdi.hxx
+++ b/vcl/inc/unx/gtk/gtkgdi.hxx
@@ -202,9 +202,8 @@ class GtkSalGraphics : public X11SalGraphics
     vcl::Region               m_aClipRegion;
 
 public:
-                        GtkSalGraphics( GtkSalFrame *, GtkWidget *window );
-                        GtkSalGraphics( GtkSalFrame *, GtkWidget *window, SalX11Screen nXScreen );
-    virtual             ~GtkSalGraphics();
+    GtkSalGraphics(GtkSalFrame *, GtkWidget *window, SalX11Screen nXScreen);
+    virtual ~GtkSalGraphics();
 
     inline GtkWidget*  GetGtkWidget() const { return m_pWindow; }
     inline GdkWindow*  GetGdkWindow() const { return m_pWindow->window; }
diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx
index a37102e..04d7822 100644
--- a/vcl/unx/gtk/gtkinst.cxx
+++ b/vcl/unx/gtk/gtkinst.cxx
@@ -331,7 +331,9 @@ SalVirtualDevice* GtkInstance::CreateVirtualDevice( SalGraphics *pG,
     GtkSalGraphics *pGtkSalGraphics = dynamic_cast<GtkSalGraphics*>(pG);
     assert(pGtkSalGraphics);
     return CreateX11VirtualDevice(pG, nDX, nDY, eFormat, pGd,
-            new GtkSalGraphics(pGtkSalGraphics->GetGtkFrame(), pGtkSalGraphics->GetGtkWidget()));
+            new GtkSalGraphics(pGtkSalGraphics->GetGtkFrame(),
+                               pGtkSalGraphics->GetGtkWidget(),
+                               pGtkSalGraphics->GetScreenNumber()));
 #endif
 }
 
diff --git a/vcl/unx/gtk/salnativewidgets-gtk.cxx b/vcl/unx/gtk/salnativewidgets-gtk.cxx
index 96f6885..c09c996 100644
--- a/vcl/unx/gtk/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/salnativewidgets-gtk.cxx
@@ -61,16 +61,6 @@ enum
     BG_BLACK
 };
 
-GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow )
-    : X11SalGraphics(),
-      m_pWindow( pWindow ),
-      m_aClipRegion(true)
-{
-    Init( pFrame, GDK_WINDOW_XID( widget_get_window( pWindow ) ),
-          SalX11Screen( gdk_x11_screen_get_screen_number(
-                                gtk_widget_get_screen( pWindow ) ) ) );
-}
-
 GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow,
                                 SalX11Screen nXScreen )
     : X11SalGraphics(),


More information about the Libreoffice-commits mailing list