[PATCH] Widget UI for Calc cell alignment page

Olivier Hallot (via Code Review) gerrit at gerrit.libreoffice.org
Sat Mar 16 12:40:25 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2773

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/73/2773/1

Widget UI for Calc cell alignment page

Format - cell, alignment tab

Change-Id: I78e4252064671720d41ad3af086b41d2efe06ac1
---
M cui/UI_cui.mk
M cui/source/inc/align.hxx
M cui/source/tabpages/align.cxx
M cui/source/tabpages/align.hrc
M cui/source/tabpages/align.src
A cui/uiconfig/ui/cellalignment.ui
M extras/source/glade/libreoffice-catalog.xml.in
M svx/inc/svx/dialcontrol.hxx
M svx/inc/svx/wrapfield.hxx
M svx/source/dialog/dialcontrol.cxx
M svx/source/dialog/wrapfield.cxx
11 files changed, 721 insertions(+), 334 deletions(-)



diff --git a/cui/UI_cui.mk b/cui/UI_cui.mk
index d5bde91..e8a352c 100644
--- a/cui/UI_cui.mk
+++ b/cui/UI_cui.mk
@@ -13,6 +13,7 @@
 	cui/uiconfig/ui/asiantypography \
 	cui/uiconfig/ui/backgroundpage \
 	cui/uiconfig/ui/borderpage \
+	cui/uiconfig/ui/cellalignment \
 	cui/uiconfig/ui/charnamepage \
 	cui/uiconfig/ui/colorpage \
 	cui/uiconfig/ui/comment \
diff --git a/cui/source/inc/align.hxx b/cui/source/inc/align.hxx
index c47afae..1b2ee61 100644
--- a/cui/source/inc/align.hxx
+++ b/cui/source/inc/align.hxx
@@ -19,6 +19,23 @@
 #ifndef _SVX_ALIGN_HXX
 #define _SVX_ALIGN_HXX
 
+// list box indexes
+#define ALIGNDLG_HORALIGN_STD       0
+#define ALIGNDLG_HORALIGN_LEFT      1
+#define ALIGNDLG_HORALIGN_CENTER    2
+#define ALIGNDLG_HORALIGN_RIGHT     3
+#define ALIGNDLG_HORALIGN_BLOCK     4
+#define ALIGNDLG_HORALIGN_FILL      5
+#define ALIGNDLG_HORALIGN_DISTRIBUTED 6
+
+#define ALIGNDLG_VERALIGN_STD         0
+#define ALIGNDLG_VERALIGN_TOP         1
+#define ALIGNDLG_VERALIGN_MID         2
+#define ALIGNDLG_VERALIGN_BOTTOM      3
+#define ALIGNDLG_VERALIGN_BLOCK       4
+#define ALIGNDLG_VERALIGN_DISTRIBUTED 5
+
+
 #include <svx/orienthelper.hxx>
 #include <vcl/field.hxx>
 #include <vcl/button.hxx>
@@ -42,7 +59,7 @@
     virtual             ~AlignmentTabPage();
 
     static SfxTabPage*  Create( Window* pParent, const SfxItemSet& rAttrSet );
-    static sal_uInt16*      GetRanges();
+    static sal_uInt16*  GetRanges();
 
     virtual sal_Bool    FillItemSet( SfxItemSet& rSet );
     virtual void        Reset( const SfxItemSet& rSet );
@@ -60,30 +77,26 @@
     DECL_LINK( UpdateEnableHdl, void* );
 
 private:
-    FixedLine           maFlAlignment;
-    FixedText           maFtHorAlign;
-    ListBox             maLbHorAlign;
-    FixedText           maFtIndent;
-    MetricField         maEdIndent;
-    FixedText           maFtVerAlign;
-    ListBox             maLbVerAlign;
+    ListBox*             m_pLbHorAlign;
+    FixedText*           m_pFtIndent;
+    MetricField*         m_pEdIndent;
+    ListBox*             m_pLbVerAlign;
 
-    FixedLine           maFlOrient;
-    DialControl         maCtrlDial;
-    FixedText           maFtRotate;
-    WrapField           maNfRotate;
-    FixedText           maFtRefEdge;
-    ValueSet            maVsRefEdge;
-    TriStateBox         maCbStacked;
-    TriStateBox         maCbAsianMode;
-    OrientationHelper   maOrientHlp;
+    DialControl*         m_pCtrlDial;
+    FixedText*           m_pFtRotate;
+    WrapField*           m_pNfRotate;
+    FixedText*           m_pFtRefEdge;
+    ValueSet*            m_pVsRefEdge;
+    TriStateBox*         m_pCbStacked;
+    TriStateBox*         m_pCbAsianMode;
+    OrientationHelper*   m_pOrientHlp;
 
-    FixedLine           maFlProperties;
-    TriStateBox         maBtnWrap;
-    TriStateBox         maBtnHyphen;
-    TriStateBox         maBtnShrink;
-    FixedText           maFtFrameDir;
-    FrameDirListBox     maLbFrameDir;
+    VclHBox*             m_pBoxDirection;
+    TriStateBox*         m_pBtnWrap;
+    TriStateBox*         m_pBtnHyphen;
+    TriStateBox*         m_pBtnShrink;
+    FrameDirListBox*     m_pLbFrameDir;
+
 };
 
 // ============================================================================
diff --git a/cui/source/tabpages/align.cxx b/cui/source/tabpages/align.cxx
index b2aa8a4..96d9942 100644
--- a/cui/source/tabpages/align.cxx
+++ b/cui/source/tabpages/align.cxx
@@ -147,97 +147,97 @@
     rSet.Put(aItem);
 }
 
-}
+}//namespace
 
 // ============================================================================
 
 AlignmentTabPage::AlignmentTabPage( Window* pParent, const SfxItemSet& rCoreAttrs ) :
 
-    SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_ALIGNMENT ), rCoreAttrs ),
+    SfxTabPage( pParent, "CellAlignPage","cui/ui/cellalignment.ui", rCoreAttrs )
 
-    maFlAlignment   ( this, CUI_RES( FL_ALIGNMENT ) ),
-    maFtHorAlign    ( this, CUI_RES( FT_HORALIGN ) ),
-    maLbHorAlign    ( this, CUI_RES( LB_HORALIGN ) ),
-    maFtIndent      ( this, CUI_RES( FT_INDENT ) ),
-    maEdIndent      ( this, CUI_RES( ED_INDENT ) ),
-    maFtVerAlign    ( this, CUI_RES( FT_VERALIGN ) ),
-    maLbVerAlign    ( this, CUI_RES( LB_VERALIGN ) ),
-
-    maFlOrient      ( this, CUI_RES( FL_ORIENTATION ) ),
-    maCtrlDial      ( this, CUI_RES( CTR_DIAL ) ),
-    maFtRotate      ( this, CUI_RES( FT_DEGREES ) ),
-    maNfRotate      ( this, CUI_RES( NF_DEGREES ) ),
-    maFtRefEdge     ( this, CUI_RES( FT_BORDER_LOCK ) ),
-    maVsRefEdge     ( this, CUI_RES( CTR_BORDER_LOCK ) ),
-    maCbStacked     ( this, CUI_RES( BTN_TXTSTACKED ) ),
-    maCbAsianMode   ( this, CUI_RES( BTN_ASIAN_VERTICAL ) ),
-    maOrientHlp     ( maCtrlDial, maNfRotate, maCbStacked ),
-
-    maFlProperties  ( this, CUI_RES( FL_WRAP ) ),
-    maBtnWrap       ( this, CUI_RES( BTN_WRAP ) ),
-    maBtnHyphen     ( this, CUI_RES( BTN_HYPH ) ),
-    maBtnShrink     ( this, CUI_RES( BTN_SHRINK ) ),
-    maFtFrameDir    ( this, CUI_RES( FT_TEXTFLOW ) ),
-    maLbFrameDir    ( this, CUI_RES( LB_FRAMEDIR ) )
 {
+    // text alignment
+    get(m_pLbHorAlign,"comboboxHorzAlign");
+    get(m_pFtIndent,"labelIndent");
+    get(m_pEdIndent,"spinIndentFrom");
+    get(m_pLbVerAlign,"comboboxVertAlign");
+
+    //text rotation
+    get(m_pNfRotate,"spinDegrees");
+    get(m_pCtrlDial,"dialcontrol");
+    get(m_pFtRotate,"labelDegrees");
+    get(m_pFtRefEdge,"labelRefEdge");
+    get(m_pVsRefEdge,"references");
+    get(m_pBoxDirection,"boxDirection");
+
+    //Asian mode
+    get(m_pCbStacked,"checkVertStack");
+    get(m_pCbAsianMode,"checkAsianMode");
+
+    m_pOrientHlp = new OrientationHelper(*m_pCtrlDial, *m_pNfRotate, *m_pCbStacked);
+
+    // Properties
+    get(m_pBtnWrap,"checkWrapTextAuto");
+    get(m_pBtnHyphen,"checkHyphActive");
+    get(m_pBtnShrink,"checkShrinkFitCellSize");
+    get(m_pLbFrameDir,"comboTextDirBox");
+
     InitVsRefEgde();
 
     // windows to be disabled, if stacked text is turned ON
-    maOrientHlp.AddDependentWindow( maFtRotate,     STATE_CHECK );
-    maOrientHlp.AddDependentWindow( maFtRefEdge,    STATE_CHECK );
-    maOrientHlp.AddDependentWindow( maVsRefEdge,    STATE_CHECK );
+    m_pOrientHlp->AddDependentWindow( *m_pFtRotate,     STATE_CHECK );
+    m_pOrientHlp->AddDependentWindow( *m_pFtRefEdge,    STATE_CHECK );
+    m_pOrientHlp->AddDependentWindow( *m_pVsRefEdge,    STATE_CHECK );
     // windows to be disabled, if stacked text is turned OFF
-    maOrientHlp.AddDependentWindow( maCbAsianMode,  STATE_NOCHECK );
+    m_pOrientHlp->AddDependentWindow( *m_pCbAsianMode,  STATE_NOCHECK );
 
     Link aLink = LINK( this, AlignmentTabPage, UpdateEnableHdl );
 
-    maLbHorAlign.SetSelectHdl( aLink );
-    maBtnWrap.SetClickHdl( aLink );
+    m_pLbHorAlign->SetSelectHdl( aLink );
+    m_pBtnWrap->SetClickHdl( aLink );
 
     // Asian vertical mode
-    maCbAsianMode.Show( SvtCJKOptions().IsVerticalTextEnabled() );
+    m_pCbAsianMode->Show( SvtCJKOptions().IsVerticalTextEnabled() );
 
-    // CTL frame direction
-    maLbFrameDir.InsertEntryValue( CUI_RESSTR( RID_SVXSTR_FRAMEDIR_LTR ), FRMDIR_HORI_LEFT_TOP );
-    maLbFrameDir.InsertEntryValue( CUI_RESSTR( RID_SVXSTR_FRAMEDIR_RTL ), FRMDIR_HORI_RIGHT_TOP );
-    maLbFrameDir.InsertEntryValue( CUI_RESSTR( RID_SVXSTR_FRAMEDIR_SUPER ), FRMDIR_ENVIRONMENT );
+
     if( !SvtLanguageOptions().IsCTLFontEnabled() )
     {
-        maFtFrameDir.Hide();
-        maLbFrameDir.Hide();
+        m_pBoxDirection->Hide();
+    }
+    else
+    {
+       // CTL frame direction
+       m_pLbFrameDir->InsertEntryValue( CUI_RESSTR( RID_SVXSTR_FRAMEDIR_LTR ), FRMDIR_HORI_LEFT_TOP );
+       m_pLbFrameDir->InsertEntryValue( CUI_RESSTR( RID_SVXSTR_FRAMEDIR_RTL ), FRMDIR_HORI_RIGHT_TOP );
+       m_pLbFrameDir->InsertEntryValue( CUI_RESSTR( RID_SVXSTR_FRAMEDIR_SUPER ), FRMDIR_ENVIRONMENT );
+       m_pBoxDirection->Show();
     }
 
     // This page needs ExchangeSupport.
     SetExchangeSupport();
 
-    FreeResource();
+    AddItemConnection( new HorJustConnection( SID_ATTR_ALIGN_HOR_JUSTIFY, *m_pLbHorAlign, s_pHorJustMap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_INDENT, *m_pFtIndent, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::UInt16MetricConnection( SID_ATTR_ALIGN_INDENT, *m_pEdIndent, FUNIT_TWIP, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new VerJustConnection( SID_ATTR_ALIGN_VER_JUSTIFY, *m_pLbVerAlign, s_pVerJustMap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new DialControlConnection( SID_ATTR_ALIGN_DEGREES, *m_pCtrlDial, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_DEGREES, *m_pFtRotate, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_LOCKPOS, *m_pFtRefEdge, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new RotateModeConnection( SID_ATTR_ALIGN_LOCKPOS, *m_pVsRefEdge, s_pRotateModeMap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new OrientStackedConnection( SID_ATTR_ALIGN_STACKED, *m_pOrientHlp ) );
+    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_STACKED, *m_pCbStacked, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_ASIANVERTICAL, *m_pCbAsianMode, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_LINEBREAK, *m_pBtnWrap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_HYPHENATION, *m_pBtnHyphen, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_SHRINKTOFIT, *m_pBtnShrink, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_FRAMEDIRECTION, *m_pBoxDirection, sfx::ITEMCONN_HIDE_UNKNOWN ) );
+    AddItemConnection( new FrameDirListBoxConnection( SID_ATTR_FRAMEDIRECTION, *m_pLbFrameDir, sfx::ITEMCONN_HIDE_UNKNOWN ) );
 
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_HOR_JUSTIFY, maFtHorAlign, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new HorJustConnection( SID_ATTR_ALIGN_HOR_JUSTIFY, maLbHorAlign, s_pHorJustMap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_INDENT, maFtIndent, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::UInt16MetricConnection( SID_ATTR_ALIGN_INDENT, maEdIndent, FUNIT_TWIP, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_VER_JUSTIFY, maFtVerAlign, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new VerJustConnection( SID_ATTR_ALIGN_VER_JUSTIFY, maLbVerAlign, s_pVerJustMap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new DialControlConnection( SID_ATTR_ALIGN_DEGREES, maCtrlDial, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_DEGREES, maFtRotate, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_LOCKPOS, maFtRefEdge, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new RotateModeConnection( SID_ATTR_ALIGN_LOCKPOS, maVsRefEdge, s_pRotateModeMap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new OrientStackedConnection( SID_ATTR_ALIGN_STACKED, maOrientHlp ) );
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_ALIGN_STACKED, maCbStacked, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_ASIANVERTICAL, maCbAsianMode, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_LINEBREAK, maBtnWrap, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_HYPHENATION, maBtnHyphen, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::CheckBoxConnection( SID_ATTR_ALIGN_SHRINKTOFIT, maBtnShrink, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new sfx::DummyItemConnection( SID_ATTR_FRAMEDIRECTION, maFtFrameDir, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-    AddItemConnection( new FrameDirListBoxConnection( SID_ATTR_FRAMEDIRECTION, maLbFrameDir, sfx::ITEMCONN_HIDE_UNKNOWN ) );
-
-    maLbHorAlign.SetAccessibleRelationMemberOf( &maFlAlignment );
-    maEdIndent.SetAccessibleRelationMemberOf( &maFlAlignment );
-    maLbVerAlign.SetAccessibleRelationMemberOf( &maFlAlignment );
 }
 
 AlignmentTabPage::~AlignmentTabPage()
 {
+    delete m_pOrientHlp;
 }
 
 SfxTabPage* AlignmentTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
@@ -258,12 +258,12 @@
     // method to 'distribute' to distinguish from the normal justification.
 
     sal_uInt16 nWhichHorJM = GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD);
-    lcl_SetJustifyMethodToItemSet(rSet, nWhichHorJM, maLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED);
+    lcl_SetJustifyMethodToItemSet(rSet, nWhichHorJM, *m_pLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED);
     if (!bChanged)
         bChanged = HasAlignmentChanged(rSet, nWhichHorJM);
 
     sal_uInt16 nWhichVerJM = GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD);
-    lcl_SetJustifyMethodToItemSet(rSet, nWhichVerJM, maLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED);
+    lcl_SetJustifyMethodToItemSet(rSet, nWhichVerJM, *m_pLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED);
     if (!bChanged)
         bChanged = HasAlignmentChanged(rSet, nWhichVerJM);
 
@@ -278,12 +278,12 @@
     // method to 'distribute' to distinguish from the normal justification.
 
     lcl_MaybeResetAlignToDistro<SvxCellHorJustify, SvxCellHorJustify>(
-        maLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED, rCoreAttrs,
+        *m_pLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED, rCoreAttrs,
         GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY), GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD),
         SVX_HOR_JUSTIFY_BLOCK);
 
     lcl_MaybeResetAlignToDistro<SvxCellVerJustify, SvxCellVerJustify>(
-        maLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED, rCoreAttrs,
+        *m_pLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED, rCoreAttrs,
         GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY), GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD),
         SVX_VER_JUSTIFY_BLOCK);
 
@@ -310,50 +310,46 @@
 void AlignmentTabPage::InitVsRefEgde()
 {
     // remember selection - is deleted in call to ValueSet::Clear()
-    sal_uInt16 nSel = maVsRefEdge.GetSelectItemId();
+    sal_uInt16 nSel = m_pVsRefEdge->GetSelectItemId();
 
     ResId aResId( IL_LOCK_BMPS, CUI_MGR() );
     ImageList aImageList( aResId );
     Size aItemSize( aImageList.GetImage( IID_BOTTOMLOCK ).GetSizePixel() );
 
-    maVsRefEdge.Clear();
-    maVsRefEdge.SetStyle( maVsRefEdge.GetStyle() | WB_ITEMBORDER | WB_DOUBLEBORDER );
+    m_pVsRefEdge->Clear();
+    m_pVsRefEdge->SetStyle( m_pVsRefEdge->GetStyle() | WB_ITEMBORDER | WB_DOUBLEBORDER );
 
-    maVsRefEdge.SetColCount( 3 );
-    maVsRefEdge.InsertItem( IID_BOTTOMLOCK, aImageList.GetImage( IID_BOTTOMLOCK ),  String( CUI_RES( STR_BOTTOMLOCK ) ) );
-    maVsRefEdge.InsertItem( IID_TOPLOCK,    aImageList.GetImage( IID_TOPLOCK ),     String( CUI_RES( STR_TOPLOCK ) ) );
-    maVsRefEdge.InsertItem( IID_CELLLOCK,   aImageList.GetImage( IID_CELLLOCK ),    String( CUI_RES( STR_CELLLOCK ) ) );
+    m_pVsRefEdge->SetColCount( 3 );
+    m_pVsRefEdge->InsertItem( IID_BOTTOMLOCK, aImageList.GetImage( IID_BOTTOMLOCK ),  OUString( CUI_RES( STR_BOTTOMLOCK ) ) );
+    m_pVsRefEdge->InsertItem( IID_TOPLOCK,    aImageList.GetImage( IID_TOPLOCK ),     OUString( CUI_RES( STR_TOPLOCK ) ) );
+    m_pVsRefEdge->InsertItem( IID_CELLLOCK,   aImageList.GetImage( IID_CELLLOCK ),    OUString( CUI_RES( STR_CELLLOCK ) ) );
 
-    maVsRefEdge.SetSizePixel( maVsRefEdge.CalcWindowSizePixel( aItemSize ) );
+    m_pVsRefEdge->SetSizePixel( m_pVsRefEdge->CalcWindowSizePixel( aItemSize ) );
 
-    maVsRefEdge.SelectItem( nSel );
+    m_pVsRefEdge->SelectItem( nSel );
 }
 
 void AlignmentTabPage::UpdateEnableControls()
 {
-    sal_uInt16 nHorAlign = maLbHorAlign.GetSelectEntryPos();
+    sal_uInt16 nHorAlign = m_pLbHorAlign->GetSelectEntryPos();
     bool bHorLeft  = (nHorAlign == ALIGNDLG_HORALIGN_LEFT);
     bool bHorBlock = (nHorAlign == ALIGNDLG_HORALIGN_BLOCK);
     bool bHorFill  = (nHorAlign == ALIGNDLG_HORALIGN_FILL);
     bool bHorDist  = (nHorAlign == ALIGNDLG_HORALIGN_DISTRIBUTED);
 
     // indent edit field only for left alignment
-    maFtIndent.Enable( bHorLeft );
-    maEdIndent.Enable( bHorLeft );
+    m_pFtIndent->Enable( bHorLeft );
+    m_pEdIndent->Enable( bHorLeft );
 
     // rotation/stacked disabled for fill alignment
-    maOrientHlp.Enable( !bHorFill );
+    m_pOrientHlp->Enable( !bHorFill );
 
     // hyphenation only for automatic line breaks or for block alignment
-    maBtnHyphen.Enable( maBtnWrap.IsChecked() || bHorBlock );
+    m_pBtnHyphen->Enable( m_pBtnWrap->IsChecked() || bHorBlock );
 
     // shrink only without automatic line break, and not for block, fill or distribute.
-    maBtnShrink.Enable( (maBtnWrap.GetState() == STATE_NOCHECK) && !bHorBlock && !bHorFill && !bHorDist );
+    m_pBtnShrink->Enable( (m_pBtnWrap->GetState() == STATE_NOCHECK) && !bHorBlock && !bHorFill && !bHorDist );
 
-    // visibility of fixed lines
-    maFlAlignment.Show( maLbHorAlign.IsVisible() || maEdIndent.IsVisible() || maLbVerAlign.IsVisible() );
-    maFlOrient.Show( maCtrlDial.IsVisible() || maVsRefEdge.IsVisible() || maCbStacked.IsVisible() || maCbAsianMode.IsVisible() );
-    maFlProperties.Show( maBtnWrap.IsVisible() || maBtnHyphen.IsVisible() || maBtnShrink.IsVisible() || maLbFrameDir.IsVisible() );
 }
 
 bool AlignmentTabPage::HasAlignmentChanged( const SfxItemSet& rNew, sal_uInt16 nWhich ) const
diff --git a/cui/source/tabpages/align.hrc b/cui/source/tabpages/align.hrc
index 4f7b79b..6bc68ad 100644
--- a/cui/source/tabpages/align.hrc
+++ b/cui/source/tabpages/align.hrc
@@ -16,51 +16,8 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
-#ifndef _SVX_ALIGN_HRC
-#define _SVX_ALIGN_HRC
 
 // defines ------------------------------------------------------------------
-
-// resource id's
-#define FL_ALIGNMENT                10
-#define FT_HORALIGN                 11
-#define LB_HORALIGN                 12
-#define FT_INDENT                   13
-#define ED_INDENT                   14
-#define FT_VERALIGN                 15
-#define LB_VERALIGN                 16
-
-#define FL_ORIENTATION              20
-#define BTN_TXTSTACKED              21
-#define CTR_DIAL                    22
-#define FT_DEGREES                  23
-#define NF_DEGREES                  24
-#define FT_BORDER_LOCK              25
-#define CTR_BORDER_LOCK             26
-#define BTN_ASIAN_VERTICAL          27
-
-#define FL_WRAP                     40
-#define BTN_WRAP                    41
-#define BTN_HYPH                    42
-#define FT_TEXTFLOW                 43
-#define LB_FRAMEDIR                 44
-#define BTN_SHRINK                  45
-
-// list box indexes
-#define ALIGNDLG_HORALIGN_STD       0
-#define ALIGNDLG_HORALIGN_LEFT      1
-#define ALIGNDLG_HORALIGN_CENTER    2
-#define ALIGNDLG_HORALIGN_RIGHT     3
-#define ALIGNDLG_HORALIGN_BLOCK     4
-#define ALIGNDLG_HORALIGN_FILL      5
-#define ALIGNDLG_HORALIGN_DISTRIBUTED 6
-
-#define ALIGNDLG_VERALIGN_STD         0
-#define ALIGNDLG_VERALIGN_TOP         1
-#define ALIGNDLG_VERALIGN_MID         2
-#define ALIGNDLG_VERALIGN_BOTTOM      3
-#define ALIGNDLG_VERALIGN_BLOCK       4
-#define ALIGNDLG_VERALIGN_DISTRIBUTED 5
 
 // image list for ValueSets:
 #define IL_LOCK_BMPS                1100
@@ -72,6 +29,5 @@
 #define STR_TOPLOCK                 2
 #define STR_CELLLOCK                3
 
-#endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/tabpages/align.src b/cui/source/tabpages/align.src
index 958af09..de47a39 100644
--- a/cui/source/tabpages/align.src
+++ b/cui/source/tabpages/align.src
@@ -30,188 +30,6 @@
  // RID_SVXPAGE_ALIGNMENT -------------------------------------------------
 TabPage RID_SVXPAGE_ALIGNMENT
 {
-    HelpId = HID_ALIGNMENT ;
-    Hide = TRUE ;
-    Text [ en-US ] = "Alignment" ;
-    Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
-    SVLook = TRUE ;
-    FixedLine FL_ALIGNMENT
-    {
-        Pos = MAP_APPFONT ( 6 , 3 ) ;
-        Size = MAP_APPFONT ( 248 , 8 ) ;
-        Text [ en-US ] = "Text alignment";
-    };
-    FixedText FT_HORALIGN
-    {
-        Pos = MAP_APPFONT ( 12 ,14 ) ;
-        Size = MAP_APPFONT ( 100 , 8 ) ;
-        Text [ en-US ] = "Hori~zontal";
-    };
-    ListBox LB_HORALIGN
-    {
-        HelpID = "cui:ListBox:RID_SVXPAGE_ALIGNMENT:LB_HORALIGN";
-        Border = TRUE;
-        Pos = MAP_APPFONT ( 12 , 25  );
-        Size = MAP_APPFONT ( 100 , 60 );
-        TabStop = TRUE;
-        DropDown = TRUE;
-        StringList [ en-US ] =
-        {
-            < "Default" ; ALIGNDLG_HORALIGN_STD ; > ;
-            < "Left" ; ALIGNDLG_HORALIGN_LEFT ; > ;
-            < "Center" ; ALIGNDLG_HORALIGN_CENTER ; > ;
-            < "Right" ; ALIGNDLG_HORALIGN_RIGHT ; > ;
-            < "Justified" ; ALIGNDLG_HORALIGN_BLOCK ; > ;
-            < "Filled" ; ALIGNDLG_HORALIGN_FILL ; > ;
-            < "Distributed" ; ALIGNDLG_HORALIGN_DISTRIBUTED ; > ;
-        };
-    };
-    FixedText FT_INDENT
-    {
-        Pos = MAP_APPFONT ( 118 , 14 ) ;
-        Size = MAP_APPFONT ( 40 , 8 ) ;
-        Text [ en-US ] = "I~ndent" ;
-    };
-    MetricField ED_INDENT
-    {
-        HelpID = "cui:MetricField:RID_SVXPAGE_ALIGNMENT:ED_INDENT";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 118 , 25 ) ;
-        Size = MAP_APPFONT ( 36 , 12 ) ;
-        Repeat = TRUE ;
-        Spin = TRUE ;
-        Minimum = 0 ;
-        Maximum = 990 ;
-        SpinSize = 10 ;
-        Unit = FUNIT_POINT ;
-    };
-    FixedText FT_VERALIGN
-    {
-        Pos = MAP_APPFONT ( 160 , 14 ) ;
-        Size = MAP_APPFONT ( 88 , 8 ) ;
-        Text [ en-US ] = "~Vertical";
-    };
-    ListBox LB_VERALIGN
-    {
-        HelpID = "cui:ListBox:RID_SVXPAGE_ALIGNMENT:LB_VERALIGN";
-        Border = TRUE;
-        Pos = MAP_APPFONT ( 160 , 25  );
-        Size = MAP_APPFONT ( 88 , 60 );
-        TabStop = TRUE;
-        DropDown = TRUE;
-        StringList [ en-US ] =
-        {
-            < "Default" ; ALIGNDLG_VERALIGN_STD ; > ;
-            < "Top" ; ALIGNDLG_VERALIGN_TOP ; > ;
-            < "Middle" ; ALIGNDLG_VERALIGN_MID ; > ;
-            < "Bottom" ; ALIGNDLG_VERALIGN_BOTTOM ; > ;
-            < "Justified" ; ALIGNDLG_VERALIGN_BLOCK ; > ;
-            < "Distributed" ; ALIGNDLG_VERALIGN_DISTRIBUTED ; > ;
-        };
-    };
-    FixedLine FL_ORIENTATION
-    {
-        Pos = MAP_APPFONT ( 6 , 43 ) ;
-        Size = MAP_APPFONT ( 248 , 8 ) ;
-        Text [ en-US ] = "Text orientation" ;
-    };
-    TriStateBox BTN_TXTSTACKED
-    {
-        HelpID = "cui:TriStateBox:RID_SVXPAGE_ALIGNMENT:BTN_TXTSTACKED";
-        Pos = MAP_APPFONT ( 133 , 54 ) ;
-        Size = MAP_APPFONT ( 115 , 10 ) ;
-        TabStop = TRUE ;
-        Text[ en-US ] = "Ve~rtically stacked";
-    };
-    Control CTR_DIAL
-    {
-        HelpId = HID_ALIGNMENT_CTR_DIAL ;
-        Pos = MAP_APPFONT ( 12 , 60 ) ;
-        Size = MAP_APPFONT ( 42 , 43 ) ;
-        Text = "ABCD" ;
-    };
-    FixedText FT_DEGREES
-    {
-        Pos = MAP_APPFONT ( 72 , 54 ) ;
-        Size = MAP_APPFONT ( 50 , 8 ) ;
-        Text [ en-US ] = "De~grees";
-    };
-    NumericField NF_DEGREES
-    {
-        HelpID = "cui:NumericField:RID_SVXPAGE_ALIGNMENT:NF_DEGREES";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 72 , 65 ) ;
-        Size = MAP_APPFONT ( 40 , 12 ) ;
-        TabStop = TRUE ;
-        Repeat = TRUE ;
-        Spin = TRUE ;
-        Minimum = 0 ;
-        Maximum = 359 ;
-        SpinSize = 5 ;
-        StrictFormat = TRUE ;
-    };
-    FixedText FT_BORDER_LOCK
-    {
-        Pos = MAP_APPFONT ( 72 , 83 ) ;
-        Size = MAP_APPFONT ( 70 , 8 ) ;
-        Text [ en-US ] = "Re~ference edge" ;
-    };
-    Control CTR_BORDER_LOCK
-    {
-        HelpId = HID_ALIGNMENT_CTR_BORDER_LOCK ;
-        Pos = MAP_APPFONT ( 72 , 94 ) ;
-        Size = MAP_APPFONT ( 50 , 15 ) ;
-        TabStop = TRUE ;
-    };
-    TriStateBox BTN_ASIAN_VERTICAL
-    {
-        HelpID = "cui:TriStateBox:RID_SVXPAGE_ALIGNMENT:BTN_ASIAN_VERTICAL";
-        Pos = MAP_APPFONT ( 143 , 68 ) ;
-        Size = MAP_APPFONT ( 105 , 10 ) ;
-        TabStop = TRUE ;
-        Text [ en-US ] = "Asian layout ~mode" ;
-    };
-    FixedLine FL_WRAP
-    {
-        Pos = MAP_APPFONT ( 6 , 115 ) ;
-        Size = MAP_APPFONT ( 248 , 8 ) ;
-        Text [ en-US ] = "Properties" ;
-    };
-    TriStateBox BTN_WRAP
-    {
-        HelpID = "cui:TriStateBox:RID_SVXPAGE_ALIGNMENT:BTN_WRAP";
-        Pos = MAP_APPFONT ( 12 , 126 ) ;
-        Size = MAP_APPFONT ( 236 , 10 ) ;
-        Text [ en-US ] = "~Wrap text automatically" ;
-    };
-    TriStateBox BTN_HYPH
-    {
-        HelpID = "cui:TriStateBox:RID_SVXPAGE_ALIGNMENT:BTN_HYPH";
-        Pos = MAP_APPFONT ( 22 , 139 ) ;
-        Size = MAP_APPFONT ( 226 , 10 ) ;
-        Text [ en-US ] = "Hyphenation ~active";
-    };
-    TriStateBox BTN_SHRINK
-    {
-        HelpID = "cui:TriStateBox:RID_SVXPAGE_ALIGNMENT:BTN_SHRINK";
-        Pos = MAP_APPFONT( 12, 152 );
-        Size = MAP_APPFONT( 236, 10 );
-        Text [ en-US ] = "~Shrink to fit cell size";
-    };
-    FixedText FT_TEXTFLOW
-    {
-        Pos = MAP_APPFONT( 12 , 170 );
-        Size = MAP_APPFONT( 64 , 8 );
-        Text [ en-US ] = "Te~xt direction";
-    };
-    ListBox LB_FRAMEDIR
-    {
-        HelpID = "cui:ListBox:RID_SVXPAGE_ALIGNMENT:LB_FRAMEDIR";
-        Pos = MAP_APPFONT( 78 , 168 );
-        Size = MAP_APPFONT( 170 , 50 );
-        Border = TRUE;
-        DropDown = TRUE;
-    };
     ImageList IL_LOCK_BMPS
     {
         Prefix = "lo";
diff --git a/cui/uiconfig/ui/cellalignment.ui b/cui/uiconfig/ui/cellalignment.ui
new file mode 100644
index 0000000..8b42771
--- /dev/null
+++ b/cui/uiconfig/ui/cellalignment.ui
@@ -0,0 +1,564 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <!-- interface-requires LibreOffice 1.0 -->
+  <object class="GtkGrid" id="CellAlignPage">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="row_spacing">12</property>
+    <property name="column_spacing">6</property>
+    <child>
+      <object class="GtkFrame" id="orientation">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">none</property>
+        <child>
+          <object class="GtkAlignment" id="alignment5">
+            <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="GtkGrid" id="grid10">
+                <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="GtkGrid" id="grid3">
+                    <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="GtkLabel" id="labelDegrees">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">_Degrees</property>
+                        <property name="use_underline">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="labelRefEdge">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">_Reference edge</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">references</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="svtlo-ValueSet" id="references">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">start</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">3</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="svxlo-WrapField" id="spinDegrees">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">•</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="svxlo-DialControl" id="dialcontrol">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">ABCD</property>
+                    <property name="justify">center</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkGrid" id="grid4">
+                    <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="checkVertStack">
+                        <property name="label" translatable="yes">Vertically s_tacked</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.019999999552965164</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>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="checkAsianMode">
+                        <property name="label" translatable="yes">Asian layout _mode</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="margin_left">25</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0.5</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>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label">
+          <object class="GtkLabel" id="labelTextOrient">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label" translatable="yes">Text orientation</property>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
+          </object>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">1</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkFrame" id="properties">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">none</property>
+        <child>
+          <object class="GtkAlignment" id="alignment6">
+            <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="GtkGrid" id="grid1">
+                <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="checkWrapTextAuto">
+                    <property name="label" translatable="yes">_Wrap text automatically</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="no_show_all">True</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>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkCheckButton" id="checkShrinkFitCellSize">
+                    <property name="label" translatable="yes">_Shrink to fit cell size</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>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkCheckButton" id="checkHyphActive">
+                    <property name="label" translatable="yes">Hyphenation _active</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="no_show_all">True</property>
+                    <property name="margin_left">25</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>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label">
+          <object class="GtkLabel" id="labelPropeties">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label" translatable="yes">Properties</property>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
+          </object>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">2</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkFrame" id="alignment">
+        <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="alignment1">
+            <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="GtkGrid" id="grid2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">6</property>
+                <property name="row_spacing">6</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkSpinButton" id="spinIndentFrom:0.00pt">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">•</property>
+                    <property name="invisible_char_set">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="labelHorzAlign">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Hori_zontal</property>
+                    <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">comboboxHorzAlign</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="labelVertAlign">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">_Vertical</property>
+                    <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">comboboxVertAlign</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="labelIndent">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">I_ndent</property>
+                    <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">spinIndentFrom:0.00pt</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBox" id="comboboxHorzAlign">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="model">liststoreHorzAlign</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBox" id="comboboxVertAlign">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="model">liststoreVertAlign</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label">
+          <object class="GtkLabel" id="LabelTextAlig">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label" translatable="yes">Text alignment</property>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
+          </object>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkHBox" id="boxDirection">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="border_width">6</property>
+        <property name="spacing">12</property>
+        <child>
+          <object class="GtkLabel" id="LabelTxtDir">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="xalign">0</property>
+            <property name="label" translatable="yes">Te_xt direction</property>
+            <property name="use_underline">True</property>
+            <property name="mnemonic_widget">comboTextDirBox</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="svxlo-FrameDirectionListBox" id="comboTextDirBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">3</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkAdjustment" id="adjustmentSpinDegrees">
+    <property name="upper">359</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkListStore" id="liststoreHorzAlign">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+      <!-- column-name gint1 -->
+      <column type="gint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Default</col>
+        <col id="1">0</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Left</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Center</col>
+        <col id="1">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Right</col>
+        <col id="1">3</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Justified</col>
+        <col id="1">4</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Filled</col>
+        <col id="1">5</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Distributed</col>
+        <col id="1">6</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="liststoreVertAlign">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+      <!-- column-name gint1 -->
+      <column type="gint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Default</col>
+        <col id="1">0</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Top</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Middle</col>
+        <col id="1">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Bottom</col>
+        <col id="1">3</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Justified</col>
+        <col id="1">4</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Distributed</col>
+        <col id="1">5</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup1">
+    <property name="mode">both</property>
+    <property name="ignore_hidden">True</property>
+    <widgets>
+      <widget name="spinIndentFrom:0.00pt"/>
+      <widget name="labelHorzAlign"/>
+      <widget name="labelVertAlign"/>
+      <widget name="labelIndent"/>
+      <widget name="comboboxHorzAlign"/>
+      <widget name="comboboxVertAlign"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup2">
+    <property name="ignore_hidden">True</property>
+    <widgets>
+      <widget name="checkWrapTextAuto"/>
+      <widget name="checkShrinkFitCellSize"/>
+      <widget name="checkHyphActive"/>
+      <widget name="LabelTxtDir"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup3">
+    <widgets>
+      <widget name="orientation"/>
+      <widget name="properties"/>
+      <widget name="alignment"/>
+    </widgets>
+  </object>
+</interface>
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index f69393d..654ff41 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -123,6 +123,12 @@
     <glade-widget-class title="Tree List" name="svtlo-SvTreeListBox"
                         generic-name="Tree List" parent="GtkTreeView"
                         icon-name="widget-gtk-treeview"/>
+    <glade-widget-class title="Dial Control" name="svxlo-DialControl"
+                        generic-name="Dial Control" parent="GtkLabel"
+                        icon-name="widget-gtk-label"/>
+    <glade-widget-class title="Wrap Field" name="svxlo-WrapField"
+                        generic-name="Wrap Field" parent="GtkSpinButton"
+                        icon-name="widget-gtk-spinbutton"/>
 
     <glade-widget-class title="VclComboBoxText" name="VclComboBoxText"
                         generic-name="ComboBoxText" parent="GtkComboBoxText"
diff --git a/svx/inc/svx/dialcontrol.hxx b/svx/inc/svx/dialcontrol.hxx
index 0f37a2f..578695d 100644
--- a/svx/inc/svx/dialcontrol.hxx
+++ b/svx/inc/svx/dialcontrol.hxx
@@ -51,6 +51,8 @@
 {
 public:
     explicit            DialControl( Window* pParent, const ResId& rResId );
+    explicit            DialControl( Window* pParent, WinBits nBits );
+
     virtual             ~DialControl();
 
     virtual void        Paint( const Rectangle& rRect );
diff --git a/svx/inc/svx/wrapfield.hxx b/svx/inc/svx/wrapfield.hxx
index d79185f..c8fa94e 100644
--- a/svx/inc/svx/wrapfield.hxx
+++ b/svx/inc/svx/wrapfield.hxx
@@ -33,6 +33,7 @@
 {
 public:
     explicit            WrapField( Window* pParent, const ResId& rResId );
+    explicit            WrapField( Window* pParent, WinBits nBits );
 
 protected:
     /** Up event with wrap-around functionality. */
diff --git a/svx/source/dialog/dialcontrol.cxx b/svx/source/dialog/dialcontrol.cxx
index 95f67de..2adb5a5 100644
--- a/svx/source/dialog/dialcontrol.cxx
+++ b/svx/source/dialog/dialcontrol.cxx
@@ -25,6 +25,7 @@
 #include <vcl/bitmap.hxx>
 #include <vcl/field.hxx>
 #include <svtools/colorcfg.hxx>
+#include <vcl/builder.hxx>
 
 namespace svx {
 
@@ -289,10 +290,22 @@
     Init( GetOutputSizePixel() );
 }
 
+DialControl::DialControl( Window* pParent, WinBits nBits ) :
+    Control( pParent, nBits ),
+     mpImpl( new DialControl_Impl( *this ) )
+{
+    Init( GetOutputSizePixel() );
+}
+
 DialControl::~DialControl()
 {
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeDialControl(Window *pParent, VclBuilder::stringmap &)
+{
+ return new DialControl(pParent, WB_LEFT|WB_DROPDOWN|WB_VCENTER|WB_3DLOOK|WB_TABSTOP);
+}
+
 void DialControl::Paint( const Rectangle&  )
 {
     Point aPos;
diff --git a/svx/source/dialog/wrapfield.cxx b/svx/source/dialog/wrapfield.cxx
index 0df7da55..1af54f8 100644
--- a/svx/source/dialog/wrapfield.cxx
+++ b/svx/source/dialog/wrapfield.cxx
@@ -18,6 +18,7 @@
  */
 
 #include "svx/wrapfield.hxx"
+#include <vcl/builder.hxx>
 
 namespace svx {
 
@@ -26,6 +27,22 @@
 {
 }
 
+WrapField::WrapField( Window* pParent, WinBits nBits ) :
+    NumericField( pParent, nBits )
+{
+}
+
+//WrapField::~WrapField()
+//{
+//}
+
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeWrapField(Window *pParent, VclBuilder::stringmap &)
+{
+    return new WrapField(pParent, WB_LEFT|WB_DROPDOWN|WB_VCENTER|WB_3DLOOK|WB_TABSTOP);
+}
+
+
+
 void WrapField::Up()
 {
     SetValue( ((GetValue() + GetSpinSize() - GetMin()) % (GetMax() + 1)) + GetMin() );

-- 
To view, visit https://gerrit.libreoffice.org/2773
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I78e4252064671720d41ad3af086b41d2efe06ac1
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Olivier Hallot <olivier.hallot at alta.org.br>



More information about the LibreOffice mailing list