[Libreoffice-commits] .: sfx2/inc sfx2/source sfx2/uiconfig sfx2/UI_sfx.mk svtools/inc svtools/source translations vcl/inc vcl/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Dec 17 03:44:35 PST 2012


 sfx2/UI_sfx.mk                         |    1 
 sfx2/inc/sfx2/dinfdlg.hxx              |   61 +--
 sfx2/source/dialog/dinfdlg.cxx         |  234 +++++----------
 sfx2/source/dialog/dinfdlg.hrc         |   33 --
 sfx2/source/dialog/dinfdlg.src         |  206 -------------
 sfx2/source/inc/helpid.hrc             |    1 
 sfx2/uiconfig/ui/documentinfopage.ui   |  514 +++++++++++++++++++++++++++++++++
 sfx2/uiconfig/ui/documentproperties.ui |  428 ---------------------------
 svtools/inc/svtools/stdctrl.hxx        |   20 -
 svtools/source/control/stdctrl.cxx     |   41 --
 translations                           |    2 
 vcl/inc/vcl/fixed.hxx                  |   15 
 vcl/source/control/fixed.cxx           |   35 ++
 vcl/source/window/builder.cxx          |   20 +
 14 files changed, 692 insertions(+), 919 deletions(-)

New commits:
commit 151cc93f7363d2dd939be790fad7a5a32748eb30
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Dec 17 11:18:13 2012 +0000

    split out document info page and convert to .ui
    
    move svt::SelectableFixedText to vcl and implement
    "selectable" GtkLabels by mapping to that vs
    FixedText for standard GtkLabels
    
    Change-Id: Ic114991cd2c2eb6673bcef634fa286dd7c67056f

diff --git a/sfx2/UI_sfx.mk b/sfx2/UI_sfx.mk
index 410931b..917926f 100644
--- a/sfx2/UI_sfx.mk
+++ b/sfx2/UI_sfx.mk
@@ -11,6 +11,7 @@ $(eval $(call gb_UI_UI,sfx))
 
 $(eval $(call gb_UI_add_uifiles,sfx,\
 	sfx2/uiconfig/ui/checkin \
+	sfx2/uiconfig/ui/documentinfopage \
 	sfx2/uiconfig/ui/password \
 	sfx2/uiconfig/ui/printeroptionsdialog \
 	sfx2/uiconfig/ui/templatemanagementdialog \
diff --git a/sfx2/inc/sfx2/dinfdlg.hxx b/sfx2/inc/sfx2/dinfdlg.hxx
index 47beacc..b5147ec 100644
--- a/sfx2/inc/sfx2/dinfdlg.hxx
+++ b/sfx2/inc/sfx2/dinfdlg.hxx
@@ -162,42 +162,31 @@ public:
 class SfxDocumentPage : public SfxTabPage
 {
 private:
-    FixedImage                  aBmp1;
-    Edit                        aNameED;
-    PushButton                  aChangePassBtn;
-
-    FixedLine                   aLine1FL;
-    FixedText                   aTypeFT;
-    svt::SelectableFixedText    aShowTypeFT;
-    CheckBox                    aReadOnlyCB;
-    FixedText                   aFileFt;
-    svt::SelectableFixedText    aFileValFt;
-    FixedText                   aSizeFT;
-    svt::SelectableFixedText    aShowSizeFT;
-
-    FixedLine                   aLine2FL;
-    FixedText                   aCreateFt;
-    svt::SelectableFixedText    aCreateValFt;
-    FixedText                   aChangeFt;
-    svt::SelectableFixedText    aChangeValFt;
-    FixedText                   aSignedFt;
-    svt::SelectableFixedText    aSignedValFt;
-    PushButton                  aSignatureBtn;
-    FixedText                   aPrintFt;
-    svt::SelectableFixedText    aPrintValFt;
-    FixedText                   aTimeLogFt;
-    svt::SelectableFixedText    aTimeLogValFt;
-    FixedText                   aDocNoFt;
-    svt::SelectableFixedText    aDocNoValFt;
-    CheckBox                    aUseUserDataCB;
-    PushButton                  aDeleteBtn;
-
-    FixedLine                   aLine3FL;
-    FixedText                   aTemplFt;
-    svt::SelectableFixedText    aTemplValFt;
-
-    String                      aUnknownSize;
-    String                      aMultiSignedStr;
+    FixedImage*                 m_pBmp;
+    Edit*                       m_pNameED;
+    PushButton*                 m_pChangePassBtn;
+
+    SelectableFixedText*        m_pShowTypeFT;
+    CheckBox*                   m_pReadOnlyCB;
+    SelectableFixedText*        m_pFileValFt;
+    SelectableFixedText*        m_pShowSizeFT;
+
+    SelectableFixedText*        m_pCreateValFt;
+    SelectableFixedText*        m_pChangeValFt;
+    SelectableFixedText*        m_pSignedValFt;
+    PushButton*                 m_pSignatureBtn;
+    SelectableFixedText*        m_pPrintValFt;
+    SelectableFixedText*        m_pTimeLogValFt;
+    SelectableFixedText*        m_pDocNoValFt;
+
+    CheckBox*                   m_pUseUserDataCB;
+    PushButton*                 m_pDeleteBtn;
+
+    FixedText*                  m_pTemplFt;
+    SelectableFixedText*        m_pTemplValFt;
+
+    OUString                    m_aUnknownSize;
+    OUString                    m_aMultiSignedStr;
 
     sal_Bool                        bEnableUseUserData  : 1,
                                 bHandleDelete       : 1;
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 416e677..b147e87 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -754,121 +754,51 @@ namespace
     }
 }
 
-SfxDocumentPage::SfxDocumentPage( Window* pParent, const SfxItemSet& rItemSet ) :
-
-    SfxTabPage( pParent, SfxResId( TP_DOCINFODOC ), rItemSet ),
-
-    aBmp1           ( this, SfxResId( BMP_FILE_1 ) ),
-    aNameED         ( this, SfxResId( ED_FILE_NAME ) ),
-    aChangePassBtn  ( this, SfxResId( BTN_CHANGE_PASS ) ),
-
-    aLine1FL        ( this, SfxResId( FL_FILE_1 ) ),
-    aTypeFT         ( this, SfxResId( FT_FILE_TYP ) ),
-    aShowTypeFT     ( this, SfxResId( FT_FILE_SHOW_TYP ) ),
-    aReadOnlyCB     ( this, SfxResId( CB_FILE_READONLY ) ),
-    aFileFt         ( this, SfxResId( FT_FILE ) ),
-    aFileValFt      ( this, SfxResId( FT_FILE_VAL ) ),
-    aSizeFT         ( this, SfxResId( FT_FILE_SIZE ) ),
-    aShowSizeFT     ( this, SfxResId( FT_FILE_SHOW_SIZE ) ),
-
-    aLine2FL        ( this, SfxResId( FL_FILE_2 ) ),
-    aCreateFt       ( this, SfxResId( FT_CREATE ) ),
-    aCreateValFt    ( this, SfxResId( FT_CREATE_VAL ) ),
-    aChangeFt       ( this, SfxResId( FT_CHANGE ) ),
-    aChangeValFt    ( this, SfxResId( FT_CHANGE_VAL ) ),
-    aSignedFt       ( this, SfxResId( FT_SIGNED ) ),
-    aSignedValFt    ( this, SfxResId( FT_SIGNED_VAL ) ),
-    aSignatureBtn   ( this, SfxResId( BTN_SIGNATURE ) ),
-    aPrintFt        ( this, SfxResId( FT_PRINT ) ),
-    aPrintValFt     ( this, SfxResId( FT_PRINT_VAL ) ),
-    aTimeLogFt      ( this, SfxResId( FT_TIMELOG ) ),
-    aTimeLogValFt   ( this, SfxResId( FT_TIMELOG_VAL ) ),
-    aDocNoFt        ( this, SfxResId( FT_DOCNO ) ),
-    aDocNoValFt     ( this, SfxResId( FT_DOCNO_VAL ) ),
-    aUseUserDataCB  ( this, SfxResId( CB_USE_USERDATA ) ),
-    aDeleteBtn      ( this, SfxResId( BTN_DELETE ) ),
-
-    aLine3FL        ( this, SfxResId( FL_FILE_3 ) ),
-    aTemplFt        ( this, SfxResId( FT_TEMPL ) ),
-    aTemplValFt     ( this, SfxResId( FT_TEMPL_VAL ) ),
-
-    aUnknownSize    ( SfxResId( STR_UNKNOWNSIZE ).toString() ),
-    aMultiSignedStr ( SfxResId( STR_MULTSIGNED ).toString() ),
-
-    bEnableUseUserData  ( sal_False ),
-    bHandleDelete       ( sal_False )
-
-{
-    aNameED.SetAccessibleName( SfxResId( EDIT_FILE_NAME ).toString() );
-    FreeResource();
+SfxDocumentPage::SfxDocumentPage(Window* pParent, const SfxItemSet& rItemSet)
+    : SfxTabPage(pParent, "DocumentInfoPage", "sfx/ui/documentinfopage.ui", rItemSet)
+    , bEnableUseUserData( sal_False )
+    , bHandleDelete( sal_False )
+{
+    get(m_pBmp, "icon");
+    get(m_pNameED, "nameed");
+//FIXME    m_pNameED->SetAccessibleName( SfxResId( EDIT_FILE_NAME ).toString() );
+    get(m_pChangePassBtn, "changepass");
+
+    get(m_pShowTypeFT, "showtype");
+    get(m_pReadOnlyCB, "readonlycb");
+    get(m_pFileValFt, "showlocation");
+    get(m_pShowSizeFT, "showsize");
+    m_aUnknownSize = m_pShowSizeFT->GetText();
+    m_pShowSizeFT->SetText(OUString(""));
+
+    get(m_pCreateValFt, "showcreate");
+    get(m_pChangeValFt, "showmodify");
+    get(m_pSignedValFt, "showsigned");
+    m_aMultiSignedStr = m_pSignedValFt->GetText();
+    m_pSignedValFt->SetText(OUString(""));
+    get(m_pSignatureBtn, "signature");
+    get(m_pPrintValFt, "showprint");
+    get(m_pTimeLogValFt, "showedittime");
+    get(m_pDocNoValFt, "showrevision");
+
+    get(m_pUseUserDataCB, "userdatacb");
+    get(m_pDeleteBtn, "reset");
+
+    get(m_pTemplFt, "templateft");
+    get(m_pTemplValFt, "showtemplate");
+
     ImplUpdateSignatures();
     ImplCheckPasswordState();
-    aChangePassBtn.SetClickHdl( LINK( this, SfxDocumentPage, ChangePassHdl ) );
-    aSignatureBtn.SetClickHdl( LINK( this, SfxDocumentPage, SignatureHdl ) );
-    aDeleteBtn.SetClickHdl( LINK( this, SfxDocumentPage, DeleteHdl ) );
-
-    // Get the max size needed for the 'Change Password', 'Signature' and 'Delete' buttons
-    // and set their size according to this max size to get perfect aligment
-    long nTxtW = ( aChangePassBtn.GetTextWidth( aChangePassBtn.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH );
-    nTxtW = Max( ( aSignatureBtn.GetTextWidth( aSignatureBtn.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH ), nTxtW);
-    nTxtW = Max( ( aDeleteBtn.GetTextWidth( aDeleteBtn.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH ), nTxtW);
-
-    // New size and position for the 'Change Password' button
-    Size aNewSize = aChangePassBtn.GetSizePixel();
-    long nDelta = nTxtW - aNewSize.Width();
-    aNewSize.Width() = nTxtW;
-    aChangePassBtn.SetSizePixel( aNewSize );
-    Point aNewPos = aChangePassBtn.GetPosPixel();
-    aNewPos.X() -= nDelta;
-    aChangePassBtn.SetPosPixel( aNewPos );
-
-    // Calculate the space between the bmp image and the 'Change password' button
-    nDelta = aNewPos.X() - IMPL_EXTRA_BUTTON_WIDTH / 2 \
-             - ( aBmp1.GetPosPixel().X() + aBmp1.GetSizePixel().Width() );
-
-    // Reduces the filename field size if space size is not large enough
-    aNewSize = aNameED.GetSizePixel();
-    if ( nDelta - aNewSize.Width() < IMPL_EXTRA_BUTTON_WIDTH )
-    {
-        aNewSize.Width() -= IMPL_EXTRA_BUTTON_WIDTH - ( nDelta - aNewSize.Width() );
-        aNameED.SetSizePixel( aNewSize );
-    }
-
-    // Centers the filename field in the space
-    aNewPos = aNameED.GetPosPixel();
-    nDelta -= aNewSize.Width();
-    aNewPos.X() = aBmp1.GetPosPixel().X() + aBmp1.GetSizePixel().Width() + nDelta / 2;
-    aNameED.SetPosPixel( aNewPos );
-
-    // New size and position for the 'Signature' button
-    aNewSize = aSignatureBtn.GetSizePixel();
-    nDelta = nTxtW - aNewSize.Width();
-    aNewSize.Width() = nTxtW;
-    aSignatureBtn.SetSizePixel( aNewSize );
-    aNewPos = aSignatureBtn.GetPosPixel();
-    aNewPos.X() -= nDelta;
-    aSignatureBtn.SetPosPixel( aNewPos );
-
-    // New size for the signature field
-    aNewSize = aSignedValFt.GetSizePixel();
-    aNewSize.Width() -= nDelta;
-    aSignedValFt.SetSizePixel( aNewSize );
-
-    // New size and position for the 'Delete' button
-    aNewSize = aDeleteBtn.GetSizePixel();
-    nDelta = nTxtW - aNewSize.Width();
-    aNewSize.Width() = nTxtW;
-    aDeleteBtn.SetSizePixel( aNewSize );
-    aNewPos = aDeleteBtn.GetPosPixel();
-    aNewPos.X() -= nDelta;
-    aDeleteBtn.SetPosPixel( aNewPos );
+    m_pChangePassBtn->SetClickHdl( LINK( this, SfxDocumentPage, ChangePassHdl ) );
+    m_pSignatureBtn->SetClickHdl( LINK( this, SfxDocumentPage, SignatureHdl ) );
+    m_pDeleteBtn->SetClickHdl( LINK( this, SfxDocumentPage, DeleteHdl ) );
 
     // [i96288] Check if the document signature command is enabled
     // on the main list enable/disable the pushbutton accordingly
     SvtCommandOptions aCmdOptions;
     if ( aCmdOptions.Lookup( SvtCommandOptions::CMDOPTION_DISABLED,
                              rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( DOCUMENT_SIGNATURE_MENU_CMD ) ) ) )
-        aSignatureBtn.Disable();
+        m_pSignatureBtn->Disable();
 }
 
 //------------------------------------------------------------------------
@@ -876,20 +806,20 @@ SfxDocumentPage::SfxDocumentPage( Window* pParent, const SfxItemSet& rItemSet )
 IMPL_LINK_NOARG(SfxDocumentPage, DeleteHdl)
 {
     String aName;
-    if ( bEnableUseUserData && aUseUserDataCB.IsChecked() )
+    if ( bEnableUseUserData && m_pUseUserDataCB->IsChecked() )
         aName = SvtUserOptions().GetFullName();
     const LocaleDataWrapper& rLocaleWrapper( Application::GetSettings().GetLocaleDataWrapper() );
     DateTime now( DateTime::SYSTEM );
     util::DateTime uDT(
         now.Get100Sec(), now.GetSec(), now.GetMin(), now.GetHour(),
         now.GetDay(), now.GetMonth(), now.GetYear() );
-    aCreateValFt.SetText( ConvertDateTime_Impl( aName, uDT, rLocaleWrapper ) );
+    m_pCreateValFt->SetText( ConvertDateTime_Impl( aName, uDT, rLocaleWrapper ) );
     OUString aEmpty;
-    aChangeValFt.SetText( aEmpty );
-    aPrintValFt.SetText( aEmpty );
+    m_pChangeValFt->SetText( aEmpty );
+    m_pPrintValFt->SetText( aEmpty );
     const Time aTime( 0 );
-    aTimeLogValFt.SetText( rLocaleWrapper.getDuration( aTime ) );
-    aDocNoValFt.SetText(rtl::OUString('1'));
+    m_pTimeLogValFt->SetText( rLocaleWrapper.getDuration( aTime ) );
+    m_pDocNoValFt->SetText(rtl::OUString('1'));
     bHandleDelete = sal_True;
     return 0;
 }
@@ -945,7 +875,7 @@ void SfxDocumentPage::ImplUpdateSignatures()
             aInfos = xD->verifyDocumentContentSignatures( pMedium->GetZipStorageToSign_Impl(),
                                                             uno::Reference< io::XInputStream >() );
             if ( aInfos.getLength() > 1 )
-                s = aMultiSignedStr;
+                s = m_aMultiSignedStr;
             else if ( aInfos.getLength() == 1 )
             {
                 rtl::OUString aCN_Id("CN");
@@ -954,7 +884,7 @@ void SfxDocumentPage::ImplUpdateSignatures()
                 s.AppendAscii( ", " );
                 s += GetContentPart( rInfo.Signer->getSubjectName(), aCN_Id );
             }
-            aSignedValFt.SetText( s );
+            m_pSignedValFt->SetText( s );
         }
     }
 }
@@ -978,11 +908,11 @@ void SfxDocumentPage::ImplCheckPasswordState()
 
         if (!aEncryptionData.getLength())
              break;
-        aChangePassBtn.Enable();
+        m_pChangePassBtn->Enable();
         return;
     }
     while (false);
-    aChangePassBtn.Disable();
+    m_pChangePassBtn->Disable();
 }
 
 //------------------------------------------------------------------------
@@ -997,8 +927,8 @@ SfxTabPage* SfxDocumentPage::Create( Window* pParent, const SfxItemSet& rItemSet
 void SfxDocumentPage::EnableUseUserData()
 {
     bEnableUseUserData = sal_True;
-    aUseUserDataCB.Show();
-    aDeleteBtn.Show();
+    m_pUseUserDataCB->Show();
+    m_pDeleteBtn->Show();
 }
 
 //------------------------------------------------------------------------
@@ -1008,7 +938,7 @@ sal_Bool SfxDocumentPage::FillItemSet( SfxItemSet& rSet )
     sal_Bool bRet = sal_False;
 
     if ( !bHandleDelete && bEnableUseUserData &&
-         aUseUserDataCB.GetState() != aUseUserDataCB.GetSavedValue() &&
+         m_pUseUserDataCB->GetState() != m_pUseUserDataCB->GetSavedValue() &&
          GetTabDialog() && GetTabDialog()->GetExampleSet() )
     {
         const SfxItemSet* pExpSet = GetTabDialog()->GetExampleSet();
@@ -1017,7 +947,7 @@ sal_Bool SfxDocumentPage::FillItemSet( SfxItemSet& rSet )
         if ( pExpSet && SFX_ITEM_SET == pExpSet->GetItemState( SID_DOCINFO, sal_True, &pItem ) )
         {
             SfxDocumentInfoItem* pInfoItem = (SfxDocumentInfoItem*)pItem;
-            sal_Bool bUseData = ( STATE_CHECK == aUseUserDataCB.GetState() );
+            sal_Bool bUseData = ( STATE_CHECK == m_pUseUserDataCB->GetState() );
             pInfoItem->SetUseUserData( bUseData );
             rSet.Put( SfxDocumentInfoItem( *pInfoItem ) );
             bRet = sal_True;
@@ -1031,13 +961,13 @@ sal_Bool SfxDocumentPage::FillItemSet( SfxItemSet& rSet )
         if ( pExpSet && SFX_ITEM_SET == pExpSet->GetItemState( SID_DOCINFO, sal_True, &pItem ) )
         {
             SfxDocumentInfoItem* pInfoItem = (SfxDocumentInfoItem*)pItem;
-            sal_Bool bUseAuthor = bEnableUseUserData && aUseUserDataCB.IsChecked();
+            sal_Bool bUseAuthor = bEnableUseUserData && m_pUseUserDataCB->IsChecked();
             SfxDocumentInfoItem newItem( *pInfoItem );
             newItem.resetUserData( bUseAuthor
                 ? SvtUserOptions().GetFullName()
                 : ::rtl::OUString() );
-            pInfoItem->SetUseUserData( STATE_CHECK == aUseUserDataCB.GetState() );
-            newItem.SetUseUserData( STATE_CHECK == aUseUserDataCB.GetState() );
+            pInfoItem->SetUseUserData( STATE_CHECK == m_pUseUserDataCB->GetState() );
+            newItem.SetUseUserData( STATE_CHECK == m_pUseUserDataCB->GetState() );
 
             newItem.SetDeleteUserData( sal_True );
             rSet.Put( newItem );
@@ -1045,15 +975,15 @@ sal_Bool SfxDocumentPage::FillItemSet( SfxItemSet& rSet )
         }
     }
 
-    if ( aNameED.IsModified() && aNameED.GetText().Len() )
+    if ( m_pNameED->IsModified() && m_pNameED->GetText().Len() )
     {
-        rSet.Put( SfxStringItem( ID_FILETP_TITLE, aNameED.GetText() ) );
+        rSet.Put( SfxStringItem( ID_FILETP_TITLE, m_pNameED->GetText() ) );
         bRet = sal_True;
     }
 
-    if ( /* aReadOnlyCB.IsModified() */ sal_True )
+    if ( /* m_pReadOnlyCB->IsModified() */ sal_True )
     {
-        rSet.Put( SfxBoolItem( ID_FILETP_READONLY, aReadOnlyCB.IsChecked() ) );
+        rSet.Put( SfxBoolItem( ID_FILETP_READONLY, m_pReadOnlyCB->IsChecked() ) );
         bRet = sal_True;
     }
 
@@ -1070,11 +1000,11 @@ void SfxDocumentPage::Reset( const SfxItemSet& rSet )
 
     // template data
     if ( pInfoItem->HasTemplate() )
-        aTemplValFt.SetText( pInfoItem->getTemplateName() );
+        m_pTemplValFt->SetText( pInfoItem->getTemplateName() );
     else
     {
-        aTemplFt.Hide();
-        aTemplValFt.Hide();
+        m_pTemplFt->Hide();
+        m_pTemplValFt->Hide();
     }
 
     // determine file name
@@ -1096,40 +1026,40 @@ void SfxDocumentPage::Reset( const SfxItemSet& rSet )
         aName = aURL.GetName( INetURLObject::DECODE_WITH_CHARSET );
         if ( !aName.Len() || aURL.GetProtocol() == INET_PROT_PRIVATE )
             aName = SfxResId( STR_NONAME ).toString();
-        aNameED.SetReadOnly( sal_True );
+        m_pNameED->SetReadOnly( sal_True );
     }
     else
     {
         DBG_ASSERT( pItem->IsA( TYPE( SfxStringItem ) ), "SfxDocumentPage:<SfxStringItem> expected" );
         aName = ( ( SfxStringItem* ) pItem )->GetValue();
     }
-    aNameED.SetText( aName );
-    aNameED.ClearModifyFlag();
+    m_pNameED->SetText( aName );
+    m_pNameED->ClearModifyFlag();
 
     // determine RO-Flag
     if ( SFX_ITEM_UNKNOWN == rSet.GetItemState( ID_FILETP_READONLY, sal_False, &pItem )
          || !pItem )
-        aReadOnlyCB.Hide();
+        m_pReadOnlyCB->Hide();
     else
-        aReadOnlyCB.Check( ( (SfxBoolItem*)pItem )->GetValue() );
+        m_pReadOnlyCB->Check( ( (SfxBoolItem*)pItem )->GetValue() );
 
     // determine context symbol
     INetURLObject aURL;
     aURL.SetSmartProtocol( INET_PROT_FILE );
     aURL.SetSmartURL( aFactory);
     const String& rMainURL = aURL.GetMainURL( INetURLObject::NO_DECODE );
-    aBmp1.SetImage( SvFileInformationManager::GetImage( aURL, sal_True ) );
+    m_pBmp->SetImage( SvFileInformationManager::GetImage( aURL, sal_True ) );
 
     // determine size and type
-    String aSizeText( aUnknownSize );
+    String aSizeText( m_aUnknownSize );
     if ( aURL.GetProtocol() == INET_PROT_FILE )
         aSizeText = CreateSizeText( SfxContentHelper::GetSize( aURL.GetMainURL( INetURLObject::NO_DECODE ) ) );
-    aShowSizeFT.SetText( aSizeText );
+    m_pShowSizeFT->SetText( aSizeText );
 
     String aDescription = SvFileInformationManager::GetDescription( INetURLObject(rMainURL) );
     if ( aDescription.Len() == 0 )
         aDescription = SfxResId( STR_SFX_NEWOFFICEDOC ).toString();
-    aShowTypeFT.SetText( aDescription );
+    m_pShowTypeFT->SetText( aDescription );
 
     // determine location
     aURL.SetSmartURL( aFile);
@@ -1141,43 +1071,43 @@ void SfxDocumentPage::Reset( const SfxItemSet& rSet )
         // we know it's a folder -> don't need the final slash, but it's better for WB_PATHELLIPSIS
         aPath.removeFinalSlash();
         String aText( aPath.PathToFileName() ); //! (pb) MaxLen?
-        aFileValFt.SetText( aText );
+        m_pFileValFt->SetText( aText );
     }
     else if ( aURL.GetProtocol() != INET_PROT_PRIVATE )
-        aFileValFt.SetText( aURL.GetPartBeforeLastName() );
+        m_pFileValFt->SetText( aURL.GetPartBeforeLastName() );
 
     // handle access data
     sal_Bool m_bUseUserData = pInfoItem->IsUseUserData();
     const LocaleDataWrapper& rLocaleWrapper( Application::GetSettings().GetLocaleDataWrapper() );
-    aCreateValFt.SetText( ConvertDateTime_Impl( pInfoItem->getAuthor(),
+    m_pCreateValFt->SetText( ConvertDateTime_Impl( pInfoItem->getAuthor(),
         pInfoItem->getCreationDate(), rLocaleWrapper ) );
     util::DateTime aTime( pInfoItem->getModificationDate() );
     if ( aTime.Month > 0 )
-        aChangeValFt.SetText( ConvertDateTime_Impl(
+        m_pChangeValFt->SetText( ConvertDateTime_Impl(
             pInfoItem->getModifiedBy(), aTime, rLocaleWrapper ) );
     aTime = pInfoItem->getPrintDate();
     if ( aTime.Month > 0 )
-        aPrintValFt.SetText( ConvertDateTime_Impl( pInfoItem->getPrintedBy(),
+        m_pPrintValFt->SetText( ConvertDateTime_Impl( pInfoItem->getPrintedBy(),
             aTime, rLocaleWrapper ) );
     const long nTime = pInfoItem->getEditingDuration();
     if ( m_bUseUserData )
     {
         const Time aT( nTime/3600, (nTime%3600)/60, nTime%60 );
-        aTimeLogValFt.SetText( rLocaleWrapper.getDuration( aT ) );
-        aDocNoValFt.SetText( String::CreateFromInt32(
+        m_pTimeLogValFt->SetText( rLocaleWrapper.getDuration( aT ) );
+        m_pDocNoValFt->SetText( String::CreateFromInt32(
             pInfoItem->getEditingCycles() ) );
     }
 
     TriState eState = (TriState)m_bUseUserData;
 
     if ( STATE_DONTKNOW == eState )
-        aUseUserDataCB.EnableTriState( sal_True );
+        m_pUseUserDataCB->EnableTriState( sal_True );
 
-    aUseUserDataCB.SetState( eState );
-    aUseUserDataCB.SaveValue();
-    aUseUserDataCB.Enable( bEnableUseUserData );
+    m_pUseUserDataCB->SetState( eState );
+    m_pUseUserDataCB->SaveValue();
+    m_pUseUserDataCB->Enable( bEnableUseUserData );
     bHandleDelete = sal_False;
-    aDeleteBtn.Enable( bEnableUseUserData );
+    m_pDeleteBtn->Enable( bEnableUseUserData );
 }
 
 //------------------------------------------------------------------------
diff --git a/sfx2/source/dialog/dinfdlg.hrc b/sfx2/source/dialog/dinfdlg.hrc
index 0c7fa33..913f983 100644
--- a/sfx2/source/dialog/dinfdlg.hrc
+++ b/sfx2/source/dialog/dinfdlg.hrc
@@ -58,12 +58,6 @@
 
 // defines ---------------------------------------------------------------
 
-#define FT_FILE             1
-#define FT_FILE_VAL         2
-#define FT_CHANGE           3
-#define FT_CHANGE_VAL       4
-#define FT_CREATE           7
-#define FT_CREATE_VAL       8
 #define FT_TITLE            9
 #define ED_TITLE            10
 #define FT_THEMA            11
@@ -80,30 +74,9 @@
 #define ED_INFO4            22
 #define FT_COMMENT          23
 #define ED_COMMENT          24
-#define FT_TEMPL            32
-#define FT_TEMPL_VAL        33
 #define BTN_EDITLABEL       34
-#define FT_TIMELOG          35
-#define FT_TIMELOG_VAL      36
-#define FT_DOCNO            37
-#define FT_DOCNO_VAL        38
 #define FT_URL              43
 #define ED_URL              44
-#define CB_FILE_READONLY    48
-#define CB_USE_USERDATA     49
-#define BMP_FILE_1          50
-#define ED_FILE_NAME        51
-#define FL_FILE_1           52
-#define FT_FILE_TYP         53
-#define FT_FILE_SHOW_TYP    54
-#define FT_FILE_SIZE        55
-#define FT_FILE_SHOW_SIZE   56
-#define FL_FILE_2           57
-#define FT_PRINT            58
-#define FT_PRINT_VAL        59
-#define STR_UNKNOWNSIZE     60
-#define FL_FILE_3           61
-#define BTN_DELETE          62
 
 #define RB_NOAUTOUPDATE     63
 #define RB_RELOADUPDATE     64
@@ -119,12 +92,6 @@
 #define PB_BROWSEURL        74
 #define STR_FORWARD_ERRMSSG 75
 
-#define FT_SIGNED           76
-#define FT_SIGNED_VAL       77
-#define STR_MULTSIGNED      78
-#define BTN_SIGNATURE       79
-#define BTN_CHANGE_PASS     80
-
 #define WIN_PROPERTIES      90
 #define SB_VERTICAL         91
 #define FT_PROPERTIES       92
diff --git a/sfx2/source/dialog/dinfdlg.src b/sfx2/source/dialog/dinfdlg.src
index 8f358c1..2d8c80d 100644
--- a/sfx2/source/dialog/dinfdlg.src
+++ b/sfx2/source/dialog/dinfdlg.src
@@ -101,212 +101,6 @@ TabPage TP_DOCINFODESC
     };
 };
 
- // TP_DOCINFODOC ---------------------------------------------------------
-
-TabPage TP_DOCINFODOC
-{
-    HelpId = HID_DOCINFODOC ;
-    Hide = TRUE ;
-    Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
-    FixedImage BMP_FILE_1
-    {
-        Pos = MAP_APPFONT ( 6 , 7 ) ;
-        Size = MAP_APPFONT ( 20 , 20 ) ;
-    };
-    Edit ED_FILE_NAME
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:ED_FILE_NAME";
-        Pos = MAP_APPFONT ( 36 , 12 ) ;
-        Size = MAP_APPFONT ( 140 , RSC_CD_TEXTBOX_HEIGHT ) ;
-        Border = TRUE ;
-    };
-    PushButton BTN_CHANGE_PASS
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:BTN_CHANGE_PASS";
-        Pos = MAP_APPFONT ( 189 , 11 ) ;
-        Size = MAP_APPFONT ( 65 , RSC_CD_PUSHBUTTON_HEIGHT ) ;
-        Hide = FALSE;
-        Text [ en-US ] = "Change ~Password...";
-    };
-    FixedLine FL_FILE_1
-    {
-        Pos = MAP_APPFONT ( 6 , 31 ) ;
-        Size = MAP_APPFONT ( 248 , 1 ) ;
-    };
-    FixedText FT_FILE_TYP
-    {
-        Pos = MAP_APPFONT ( 6 , 37 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Type:" ;
-    };
-    Edit FT_FILE_SHOW_TYP
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_FILE_SHOW_TYP";
-        Pos = MAP_APPFONT ( 78 , 37 ) ;
-        Size = MAP_APPFONT ( 106 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    CheckBox CB_FILE_READONLY
-    {
-        HelpID = "sfx2:CheckBox:TP_DOCINFODOC:CB_FILE_READONLY";
-        Pos = MAP_APPFONT ( 163 , 37 ) ;
-        Size = MAP_APPFONT ( 91 , RSC_CD_CHECKBOX_HEIGHT ) ;
-        Text [ en-US ] = "~Read-only" ;
-    };
-    FixedText FT_FILE
-    {
-        Pos = MAP_APPFONT ( 6 , 49 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Location:" ;
-    };
-    Edit FT_FILE_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_FILE_VAL";
-        Pos = MAP_APPFONT ( 78 , 49 ) ;
-        Size = MAP_APPFONT ( 176 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    FixedText FT_FILE_SIZE
-    {
-        Pos = MAP_APPFONT ( 6 , 61 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Size:" ;
-    };
-    Edit FT_FILE_SHOW_SIZE
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_FILE_SHOW_SIZE";
-        Pos = MAP_APPFONT ( 78 , 61 ) ;
-        Size = MAP_APPFONT ( 176 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    FixedLine FL_FILE_2
-    {
-        Pos = MAP_APPFONT ( 6 , 74 ) ;
-        Size = MAP_APPFONT ( 248 , 1 ) ;
-    };
-    FixedText FT_CREATE
-    {
-        Pos = MAP_APPFONT ( 6 , 80 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Created:" ;
-    };
-    Edit FT_CREATE_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_CREATE_VAL";
-        Pos = MAP_APPFONT ( 78 , 80 ) ;
-        Size = MAP_APPFONT ( 176 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    FixedText FT_CHANGE
-    {
-        Pos = MAP_APPFONT ( 6 , 92 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Modified:" ;
-    };
-    Edit FT_CHANGE_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_CHANGE_VAL";
-        Pos = MAP_APPFONT ( 78 , 92 ) ;
-        Size = MAP_APPFONT ( 176 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    FixedText FT_SIGNED
-    {
-        Pos = MAP_APPFONT ( 6 , 104 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Digitally signed:" ;
-    };
-    Edit FT_SIGNED_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_SIGNED_VAL";
-        Pos = MAP_APPFONT ( 78 , 104 ) ;
-        Size = MAP_APPFONT ( 123 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    PushButton BTN_SIGNATURE
-    {
-        HelpID = "sfx2:PushButton:TP_DOCINFODOC:BTN_SIGNATURE";
-        Pos = MAP_APPFONT ( 204 , 101 ) ;
-        Size = MAP_APPFONT ( RSC_CD_PUSHBUTTON_WIDTH , RSC_CD_PUSHBUTTON_HEIGHT ) ;
-        Text [ en-US ] = "Digital Signature...";
-    };
-    String STR_MULTSIGNED
-    {
-        Text [ en-US ] = "Multiply signed document" ;
-    };
-    FixedText FT_PRINT
-    {
-        Pos = MAP_APPFONT ( 6 , 116 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Last printed:" ;
-    };
-    Edit FT_PRINT_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_PRINT_VAL";
-        Pos = MAP_APPFONT ( 78 , 116 ) ;
-        Size = MAP_APPFONT ( 176 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    FixedText FT_TIMELOG
-    {
-        Pos = MAP_APPFONT ( 6 , 128 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Total editing time:" ;
-    };
-    Edit FT_TIMELOG_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_TIMELOG_VAL";
-        Pos = MAP_APPFONT ( 78 , 128 ) ;
-        Size = MAP_APPFONT ( 30 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    FixedText FT_DOCNO
-    {
-        Pos = MAP_APPFONT ( 6 , 140 ) ;
-        Size = MAP_APPFONT ( 70 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Revision number:" ;
-    };
-    Edit FT_DOCNO_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_DOCNO_VAL";
-        Pos = MAP_APPFONT ( 78 , 140 ) ;
-        Size = MAP_APPFONT ( 30 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    PushButton BTN_DELETE
-    {
-        HelpID = "sfx2:PushButton:TP_DOCINFODOC:BTN_DELETE";
-        Pos = MAP_APPFONT ( 204 , 150 ) ;
-        Size = MAP_APPFONT ( RSC_CD_PUSHBUTTON_WIDTH , RSC_CD_PUSHBUTTON_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Reset";
-    };
-    CheckBox CB_USE_USERDATA
-    {
-        HelpID = "sfx2:CheckBox:TP_DOCINFODOC:CB_USE_USERDATA";
-        Pos = MAP_APPFONT ( 6 , 152 ) ;
-        Size = MAP_APPFONT ( 192 , RSC_CD_CHECKBOX_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "~Apply user data";
-    };
-    FixedLine FL_FILE_3
-    {
-        Pos = MAP_APPFONT ( 5 , 167 ) ;
-        Size = MAP_APPFONT ( 248 , 1 ) ;
-    };
-    FixedText FT_TEMPL
-    {
-        Pos = MAP_APPFONT ( 5 , 172 ) ;
-        Size = MAP_APPFONT ( 45 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Template:" ;
-    };
-    Edit FT_TEMPL_VAL
-    {
-        HelpID = "sfx2:Edit:TP_DOCINFODOC:FT_TEMPL_VAL";
-        Pos = MAP_APPFONT ( 78 , 172 ) ;
-        Size = MAP_APPFONT ( 180 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
-    };
-    String STR_UNKNOWNSIZE
-    {
-        Text [ en-US ] = "unknown" ;
-    };
-    String EDIT_FILE_NAME
-    {
-        Text [ en-US ] = "File Name" ;
-    };
-};
-
  // TP_DOCINFOUSER --------------------------------------------------------
 
 TabPage TP_DOCINFOUSER
diff --git a/sfx2/source/inc/helpid.hrc b/sfx2/source/inc/helpid.hrc
index 8173784..74e2753 100644
--- a/sfx2/source/inc/helpid.hrc
+++ b/sfx2/source/inc/helpid.hrc
@@ -27,7 +27,6 @@
 #define HID_MANAGE_STYLES                                     "SFX2_HID_MANAGE_STYLES"
 #define HID_CONFIG_EVENT                                      "SFX2_HID_CONFIG_EVENT"
 #define HID_DOCINFODESC                                       "SFX2_HID_DOCINFODESC"
-#define HID_DOCINFODOC                                        "SFX2_HID_DOCINFODOC"
 #define HID_DOCINFOUSER                                       "SFX2_HID_DOCINFOUSER"
 #define HID_DOCINFORELOAD                                     "SFX2_HID_DOCINFORELOAD"
 #define HID_BROWSERCONTROL                                    "SFX2_HID_BROWSERCONTROL"
diff --git a/sfx2/uiconfig/ui/documentinfopage.ui b/sfx2/uiconfig/ui/documentinfopage.ui
new file mode 100644
index 0000000..e9ce33c
--- /dev/null
+++ b/sfx2/uiconfig/ui/documentinfopage.ui
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkGrid" id="DocumentInfoPage">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="row_spacing">6</property>
+    <property name="column_spacing">6</property>
+    <child>
+      <object class="GtkLabel" id="label13">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">_Created:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">7</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label14">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">_Modified:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">8</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label15">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">_Digitally signed:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">9</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label16">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Last pri_nted:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">10</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label17">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Total _editing time:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">11</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label18">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Re_vision number:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">12</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showcreate">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">7</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showmodify">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">8</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showsigned">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Multiply signed document</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">9</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showprint">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">10</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showedittime">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">11</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showrevision">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">12</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label26">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">13</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkCheckButton" id="userdatacb">
+        <property name="label" translatable="yes">_Apply user data</property>
+        <property name="use_action_appearance">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">False</property>
+        <property name="no_show_all">True</property>
+        <property name="use_action_appearance">False</property>
+        <property name="use_underline">True</property>
+        <property name="xalign">0</property>
+        <property name="draw_indicator">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">13</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButton" id="reset">
+        <property name="label" translatable="yes">Reset</property>
+        <property name="use_action_appearance">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <property name="no_show_all">True</property>
+        <property name="use_action_appearance">False</property>
+      </object>
+      <packing>
+        <property name="left_attach">2</property>
+        <property name="top_attach">13</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButton" id="signature">
+        <property name="label" translatable="yes">Di_gital Signature...</property>
+        <property name="use_action_appearance">False</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <property name="use_action_appearance">False</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">2</property>
+        <property name="top_attach">9</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="templateft">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Template:</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">15</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showtemplate">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">15</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label11">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">_Size:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">5</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showsize">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">unknown</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">5</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label8">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">_Location:</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">4</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="showlocation">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">4</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label7">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="xpad">1</property>
+        <property name="label" translatable="yes">_Type:</property>
+        <property name="use_underline">True</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="GtkLabel" id="showtype">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="selectable">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">1</property>
+        <property name="top_attach">3</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButton" id="changepass">
+        <property name="label" translatable="yes">Change _Password</property>
+        <property name="use_action_appearance">False</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <property name="use_action_appearance">False</property>
+        <property name="use_underline">True</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>
+    <child>
+      <object class="GtkEntry" id="nameed">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="valign">center</property>
+        <property name="hexpand">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="GtkImage" id="icon">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="stock">gtk-missing-image</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="GtkLabel" id="label2">
+        <property name="height_request">18</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">2</property>
+        <property name="width">3</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label3">
+        <property name="height_request">18</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">6</property>
+        <property name="width">3</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label4">
+        <property name="height_request">18</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">14</property>
+        <property name="width">3</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkCheckButton" id="readonlycb">
+        <property name="label" translatable="yes">_Read-only</property>
+        <property name="use_action_appearance">False</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">False</property>
+        <property name="use_action_appearance">False</property>
+        <property name="use_underline">True</property>
+        <property name="xalign">0</property>
+        <property name="draw_indicator">True</property>
+      </object>
+      <packing>
+        <property name="left_attach">2</property>
+        <property name="top_attach">3</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkLabel" id="label1">
+        <property name="height_request">18</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+        <property name="width">3</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+  </object>
+</interface>
diff --git a/sfx2/uiconfig/ui/documentproperties.ui b/sfx2/uiconfig/ui/documentproperties.ui
index fcd0d98..e4fb9da 100644
--- a/sfx2/uiconfig/ui/documentproperties.ui
+++ b/sfx2/uiconfig/ui/documentproperties.ui
@@ -13,433 +13,7 @@
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <child>
-              <object class="GtkGrid" id="grid1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="row_spacing">5</property>
-                <child>
-                  <object class="GtkGrid" id="grid2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkEntry" id="entry1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="invisible_char">•</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="GtkButton" id="button1">
-                        <property name="label" translatable="yes">Change Password</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_action_appearance">False</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="GtkImage" id="image1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="stock">gtk-missing-image</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>
-                  </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="grid3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="row_spacing">8</property>
-                    <property name="column_spacing">65</property>
-                    <child>
-                      <object class="GtkLabel" id="label7">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">1</property>
-                        <property name="label" translatable="yes">Type :</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="label8">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Location: </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="GtkLabel" id="label9">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="yalign">0.47999998927116394</property>
-                        <property name="label" translatable="yes">Text Document</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="GtkLabel" id="label10">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</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="label11">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Size: </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="GtkLabel" id="label12">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </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="GtkGrid" id="grid4">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="row_spacing">8</property>
-                    <property name="column_spacing">60</property>
-                    <child>
-                      <object class="GtkLabel" id="label13">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Created: </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="label14">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Modified :</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="GtkLabel" id="label15">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Digitally signed : </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="GtkLabel" id="label16">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Last printed: </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="GtkLabel" id="label17">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Total editing time :</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">4</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label18">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Revision number :</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">5</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label20">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</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="GtkLabel" id="label21">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</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="label22">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label23">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">3</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label24">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">4</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label25">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">5</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label26">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">6</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="checkbutton1">
-                        <property name="label" translatable="yes">Apply user data </property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">6</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkButton" id="button2">
-                        <property name="label" translatable="yes">Reset</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_action_appearance">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">6</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkButton" id="button3">
-                        <property name="label" translatable="yes">Digital Signature....</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_action_appearance">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </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="GtkGrid" id="grid5">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkLabel" id="label19">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Template:</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>
-                  </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>
+              <placeholder/>
             </child>
             <child type="tab">
               <object class="GtkLabel" id="label1">
diff --git a/svtools/inc/svtools/stdctrl.hxx b/svtools/inc/svtools/stdctrl.hxx
index 6aa869d..77ca119 100644
--- a/svtools/inc/svtools/stdctrl.hxx
+++ b/svtools/inc/svtools/stdctrl.hxx
@@ -36,26 +36,6 @@ public:
     FixedInfo( Window* pParent, const ResId& rResId );
 };
 
-namespace svt
-{
-    // ----------------------------
-    // - svt::SelectableFixedText -
-    // ----------------------------
-
-    class SVT_DLLPUBLIC SelectableFixedText : public Edit
-    {
-    private:
-        void    Init();
-
-    public:
-                SelectableFixedText( Window* pParent, const ResId& rResId );
-        virtual ~SelectableFixedText();
-
-        virtual void    LoseFocus();
-    };
-
-} // namespace svt
-
 #endif  // _STDCTRL_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/source/control/stdctrl.cxx b/svtools/source/control/stdctrl.cxx
index f6c205b..c966beb 100644
--- a/svtools/source/control/stdctrl.cxx
+++ b/svtools/source/control/stdctrl.cxx
@@ -35,45 +35,4 @@ FixedInfo::FixedInfo( Window* pParent, const ResId& rResId ) :
     SetStyle( GetStyle() | WB_INFO );
 }
 
-namespace svt
-{
-    // class svt::SelectableFixedText ----------------------------------------
-
-    SelectableFixedText::SelectableFixedText( Window* pParent, const ResId& rResId ) :
-        Edit( pParent, rResId )
-    {
-        Init();
-    }
-
-    // -----------------------------------------------------------------------
-
-    SelectableFixedText::~SelectableFixedText()
-    {
-    }
-
-    // -----------------------------------------------------------------------
-
-    void SelectableFixedText::Init()
-    {
-        // no border
-        SetBorderStyle( WINDOW_BORDER_NOBORDER );
-        // read-only
-        SetReadOnly();
-        // make it transparent
-        SetControlBackground();
-        SetBackground();
-        SetPaintTransparent( sal_True );
-    }
-
-    // -----------------------------------------------------------------------
-
-    void SelectableFixedText::LoseFocus()
-    {
-        Edit::LoseFocus();
-        // clear cursor
-        Invalidate();
-    }
-
-} // namespace svt
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/translations b/translations
index c6cfd71..85f724f 160000
--- a/translations
+++ b/translations
@@ -1 +1 @@
-Subproject commit c6cfd71c3d302bdb0999888f9c867d70acb40708
+Subproject commit 85f724f5aa1d6a59662a7d1c7ea406a641814bd2
diff --git a/vcl/inc/vcl/fixed.hxx b/vcl/inc/vcl/fixed.hxx
index c36b63d..3c2e45c 100644
--- a/vcl/inc/vcl/fixed.hxx
+++ b/vcl/inc/vcl/fixed.hxx
@@ -23,8 +23,9 @@
 #include <tools/solar.h>
 #include <vcl/dllapi.h>
 #include <vcl/bitmap.hxx>
-#include <vcl/image.hxx>
 #include <vcl/ctrl.hxx>
+#include <vcl/edit.hxx>
+#include <vcl/image.hxx>
 
 class UserDrawEvent;
 
@@ -76,6 +77,18 @@ public:
     virtual bool set_property(const rtl::OString &rKey, const rtl::OString &rValue);
 };
 
+class VCL_DLLPUBLIC SelectableFixedText : public Edit
+{
+private:
+    void    Init();
+
+public:
+    SelectableFixedText( Window* pParent, WinBits nStyle = 0 );
+    SelectableFixedText( Window* pParent, const ResId& rResId );
+
+    virtual void    LoseFocus();
+};
+
 // -------------
 // - FixedLine -
 // -------------
diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx
index f8e8b3d..2f85644 100644
--- a/vcl/source/control/fixed.cxx
+++ b/vcl/source/control/fixed.cxx
@@ -484,6 +484,41 @@ bool FixedText::set_property(const rtl::OString &rKey, const rtl::OString &rValu
     return true;
 }
 
+SelectableFixedText::SelectableFixedText(Window* pParent, const ResId& rResId)
+    : Edit(pParent, rResId)
+{
+    Init();
+}
+
+SelectableFixedText::SelectableFixedText(Window* pParent, WinBits nStyle)
+    : Edit(pParent, nStyle)
+{
+    Init();
+}
+
+// -----------------------------------------------------------------------
+
+void SelectableFixedText::Init()
+{
+    // no border
+    SetBorderStyle( WINDOW_BORDER_NOBORDER );
+    // read-only
+    SetReadOnly();
+    // make it transparent
+    SetControlBackground();
+    SetBackground();
+    SetPaintTransparent( sal_True );
+}
+
+// -----------------------------------------------------------------------
+
+void SelectableFixedText::LoseFocus()
+{
+    Edit::LoseFocus();
+    // clear cursor
+    Invalidate();
+}
+
 // =======================================================================
 
 void FixedLine::ImplInit( Window* pParent, WinBits nStyle )
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 9a6b911..61036a7 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -627,6 +627,19 @@ namespace
         }
         return nActiveId;
     }
+
+    bool extractSelectable(VclBuilder::stringmap &rMap)
+    {
+        bool bSelectable = false;
+        VclBuilder::stringmap::iterator aFind = rMap.find(OString("selectable"));
+        if (aFind != rMap.end())
+        {
+            bSelectable = toBool(aFind->second);
+            rMap.erase(aFind);
+        }
+        return bSelectable;
+    }
+
 }
 
 bool VclBuilder::extractModel(const OString &id, stringmap &rMap)
@@ -881,7 +894,12 @@ Window *VclBuilder::makeObject(Window *pParent, const OString &name, const OStri
         pWindow = new ListBox(pParent, WB_LEFT|WB_VCENTER|WB_3DLOOK);
     }
     else if (name == "GtkLabel")
-        pWindow = new FixedText(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK);
+    {
+        if (extractSelectable(rMap))
+            pWindow = new SelectableFixedText(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK);
+        else
+            pWindow = new FixedText(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK);
+    }
     else if (name == "GtkImage")
     {
         extractStock(id, rMap);


More information about the Libreoffice-commits mailing list