[Libreoffice-commits] core.git: 3 commits - cui/AllLangResTarget_cui.mk cui/source cui/uiconfig cui/UI_cui.mk sfx2/uiconfig sw/uiconfig vcl/source

Caolán McNamara caolanm at redhat.com
Thu Apr 4 13:00:01 PDT 2013


 cui/AllLangResTarget_cui.mk              |    1 
 cui/UI_cui.mk                            |    1 
 cui/source/dialogs/about.cxx             |  280 ++++++-----------------------
 cui/source/dialogs/about.hrc             |   41 ----
 cui/source/dialogs/about.src             |  112 -----------
 cui/source/factory/dlgfact.cxx           |    2 
 cui/source/inc/about.hxx                 |   57 ++---
 cui/uiconfig/ui/aboutdialog.ui           |  296 +++++++++++++++++++++++++++++++
 cui/uiconfig/ui/comment.ui               |    2 
 cui/uiconfig/ui/insertplugin.ui          |    2 
 cui/uiconfig/ui/macroselectordialog.ui   |    2 
 cui/uiconfig/ui/objecttitledescdialog.ui |    2 
 sfx2/uiconfig/ui/checkin.ui              |    2 
 sfx2/uiconfig/ui/descriptioninfopage.ui  |    2 
 sfx2/uiconfig/ui/managestylepage.ui      |    2 
 sw/uiconfig/swriter/ui/insertscript.ui   |    2 
 vcl/source/window/builder.cxx            |    5 
 vcl/source/window/window2.cxx            |   14 +
 18 files changed, 416 insertions(+), 409 deletions(-)

New commits:
commit 79af094f8a31d4f47fe3b2675035055523cb54ab
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 4 11:55:47 2013 +0100

    convert about dialog to .ui format
    
    Change-Id: I7a4636c212e19702b94f5c42491c9785f1eccc00

diff --git a/cui/AllLangResTarget_cui.mk b/cui/AllLangResTarget_cui.mk
index 6a806b1..f387d8c 100644
--- a/cui/AllLangResTarget_cui.mk
+++ b/cui/AllLangResTarget_cui.mk
@@ -53,7 +53,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\
     cui/source/customize/cfg.src \
     cui/source/customize/eventdlg.src \
     cui/source/customize/macropg.src \
-    cui/source/dialogs/about.src \
     cui/source/dialogs/colorpicker.src \
     cui/source/dialogs/commonlingui.src \
     cui/source/dialogs/cuiimapdlg.src \
diff --git a/cui/UI_cui.mk b/cui/UI_cui.mk
index 3220a15..c5cf568 100644
--- a/cui/UI_cui.mk
+++ b/cui/UI_cui.mk
@@ -10,6 +10,7 @@
 $(eval $(call gb_UI_UI,cui))
 
 $(eval $(call gb_UI_add_uifiles,cui,\
+	cui/uiconfig/ui/aboutdialog \
 	cui/uiconfig/ui/asiantypography \
 	cui/uiconfig/ui/backgroundpage \
 	cui/uiconfig/ui/borderpage \
diff --git a/cui/source/dialogs/about.cxx b/cui/source/dialogs/about.cxx
index d40e452..0fcb96b 100644
--- a/cui/source/dialogs/about.cxx
+++ b/cui/source/dialogs/about.cxx
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <vcl/layout.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/msgbox.hxx>
 
@@ -41,7 +42,6 @@
 #include <sfx2/sfxuno.hxx>
 #include <sfx2/sfxcommands.h>
 #include "about.hxx"
-#include "about.hrc"
 #include <sfx2/sfxdefs.hxx>
 #include <sfx2/app.hxx>
 #include <rtl/ustrbuf.hxx>
@@ -58,52 +58,42 @@ enum AboutDialogButton
     WEBSITE_BUTTON
 };
 
-AboutDialog::AboutDialog( Window* pParent, const ResId& rId) :
-    SfxModalDialog       ( pParent,  rId ),
-    aVersionText         ( this,     ResId( ABOUT_VERSION_TEXT, *rId.GetResMgr() ) ),
-    aDescriptionText     ( this,     ResId( ABOUT_DESCRIPTION_TEXT, *rId.GetResMgr() ) ),
-    aCopyrightText       ( this,     ResId( ABOUT_COPYRIGHT_TEXT, *rId.GetResMgr() ) ),
-    aLogoImage           ( this ),
-    aLogoReplacement     ( this,     ResId( ABOUT_LOGO_REPLACEMENT, *rId.GetResMgr() ) ),
-    aCreditsButton       ( this,     ResId( ABOUT_BTN_CREDITS, *rId.GetResMgr() ) ),
-    aWebsiteButton       ( this,     ResId( ABOUT_BTN_WEBSITE, *rId.GetResMgr() ) ),
-    aCancelButton        ( this,     ResId( ABOUT_BTN_CANCEL, *rId.GetResMgr() ) ),
-    m_aVersionTextStr(ResId(ABOUT_STR_VERSION, *rId.GetResMgr()).toString().trim()),
-    m_aVendorTextStr(ResId(ABOUT_STR_VENDOR, *rId.GetResMgr())),
-    m_aCopyrightTextStr(ResId(ABOUT_STR_COPYRIGHT, *rId.GetResMgr())),
-    m_aBasedTextStr(ResId(ABOUT_STR_BASED, *rId.GetResMgr())),
-    m_aBasedDerivedTextStr(ResId(ABOUT_STR_BASED_DERIVED, *rId.GetResMgr())),
-    m_aCreditsLinkStr(ResId( ABOUT_STR_LINK_CREDITS, *rId.GetResMgr())),
-    m_sBuildStr(ResId(ABOUT_STR_BUILD, *rId.GetResMgr())),
-    m_aDescriptionTextStr(ResId(ABOUT_STR_DESCRIPTION, *rId.GetResMgr()))
+AboutDialog::AboutDialog(Window* pParent)
+    : SfxModalDialog(pParent, "AboutDialog", "cui/ui/aboutdialog.ui")
 {
-    // Populate text items
-    aLogoReplacement.SetText ( utl::ConfigManager::getProductName() );
-
-    aVersionText.SetText( GetVersionString() );
-
-    aDescriptionText.SetText( m_aDescriptionTextStr );
-
-    rtl::OUString aCopyrightString = GetCopyrightString();
-    aCopyrightText.SetText( aCopyrightString );
+    get(m_pLogoReplacement, "logoreplacement");
+    get(m_pLogoImage, "logo");
+    get(m_pVersion, "version");
+    get(m_pDescriptionText, "description");
+    get(m_pCopyrightText, "copyright");
+    m_aCopyrightTextStr = m_pCopyrightText->GetText();
+    get(m_pWebsiteButton, "website");
+    get(m_pCreditsButton, "credits");
+    m_aCreditsLinkStr = get<FixedText>("link")->GetText();
+    m_sBuildStr = get<FixedText>("buildid")->GetText();
+    m_aVendorTextStr = get<FixedText>("vendor")->GetText();
+    m_aVersionTextStr = m_pVersion->GetText();
+    m_aBasedTextStr = get<FixedText>("libreoffice")->GetText();
+    m_aBasedDerivedTextStr = get<FixedText>("derived")->GetText();
+
+    m_pVersion->SetText(GetVersionString());
+
+    OUString aCopyrightString = GetCopyrightString();
+    m_pCopyrightText->SetText( aCopyrightString );
 
     StyleControls();
-    LayoutControls();
+
+    SetLogo();
 
     // Allow the button to be identifiable once they are clicked
-    aCreditsButton.SetData( (void*)CREDITS_BUTTON );
-    aWebsiteButton.SetData( (void*)WEBSITE_BUTTON );
+    m_pCreditsButton->SetData( (void*)CREDITS_BUTTON );
+    m_pWebsiteButton->SetData( (void*)WEBSITE_BUTTON );
 
     // Connect all handlers
-    aCreditsButton.SetClickHdl( LINK( this, AboutDialog, HandleClick ) );
-    aWebsiteButton.SetClickHdl( LINK( this, AboutDialog, HandleClick ) );
+    m_pCreditsButton->SetClickHdl( LINK( this, AboutDialog, HandleClick ) );
+    m_pWebsiteButton->SetClickHdl( LINK( this, AboutDialog, HandleClick ) );
 
-    aCancelButton.SetClickHdl( LINK( this, AboutDialog, CancelHdl ) );
-
-    FreeResource();
-
-    // explicit Help-Id
-    SetHelpId( CMD_SID_ABOUT );
+    get<PushButton>("close")->GrabFocus();
 }
 
 IMPL_LINK( AboutDialog, HandleClick, PushButton*, pButton )
@@ -145,212 +135,80 @@ IMPL_LINK( AboutDialog, HandleClick, PushButton*, pButton )
 void AboutDialog::StyleControls()
 {
     // Make all the controls have a transparent background
-    aLogoImage.SetBackground();
-    aLogoReplacement.SetPaintTransparent( sal_True );
-    aVersionText.SetPaintTransparent( sal_True );
-    aDescriptionText.SetPaintTransparent( sal_True );
-    aCopyrightText.SetPaintTransparent( sal_True );
+    m_pLogoImage->SetBackground();
+    m_pLogoReplacement->SetPaintTransparent(true);
+    m_pVersion->SetPaintTransparent(true);
+    m_pDescriptionText->SetPaintTransparent(true);
+    m_pCopyrightText->SetPaintTransparent(true);
 
     Font aLabelFont = GetSettings().GetStyleSettings().GetLabelFont();
     Font aLargeFont = aLabelFont;
     aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 3 ) );
 
     // Logo Replacement Text
-    aLogoReplacement.SetControlFont( aLargeFont );
-    aLogoReplacement.SetTextSelectable( sal_False );
+    m_pLogoReplacement->SetControlFont( aLargeFont );
 
     // Description Text
     aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 1.3 ) );
-    aDescriptionText.SetControlFont( aLargeFont );
-    aDescriptionText.SetTextSelectable( sal_False );
+    m_pDescriptionText->SetControlFont(aLargeFont);
 
     // Version Text
     aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 1.2 ) );
-    aVersionText.SetControlFont( aLargeFont );
-    aVersionText.EnableCursor( sal_False );
-
-    // Copyright Text
-    aCopyrightText.SetTextSelectable( sal_False );
+    m_pVersion->SetControlFont(aLargeFont);
 
     // If not in high-contrast mode, hard-code colors
     if ( !(Application::GetSettings().GetStyleSettings().GetHighContrastMode()) )
     {
-    aLogoReplacement.SetControlForeground( Color( 51, 51, 51 ) );
-    aVersionText.SetControlForeground( Color( 102, 102, 102 ) );
-    aDescriptionText.SetControlForeground( Color( 51, 51, 51 ) );
-    aCopyrightText.SetControlForeground( Color( 102, 102, 102 ) );
+        m_pLogoReplacement->SetControlForeground(Color(51, 51, 51));
+        m_pVersion->SetControlForeground(Color(102, 102, 102));
+        m_pDescriptionText->SetControlForeground(Color(51, 51, 51));
+        m_pCopyrightText->SetControlForeground(Color(102, 102, 102));
     }
-
-
-    aCancelButton.GrabFocus();
 }
 
-void AboutDialog::LayoutControls()
+void AboutDialog::SetLogo()
 {
-    // Get the size of the screen
-    Rectangle aScreenRect = Application::GetScreenPosSizePixel( (unsigned int)0 );
-    // Obtain an appropriate text width from the size of the screen
-    sal_Int32 aIdealTextWidth = aScreenRect.GetWidth() / 2.4;
-
-    sal_Int32 aDialogBorder = 12;
-    Size aDialogSize ( aIdealTextWidth + aDialogBorder * 2, 0 );
-
-    // Preliminarily layout buttons, so we see if we need a wider window
-    Size aButtonSize;
-    Point aButtonPos;
-    sal_Int32 aButtonsWidth = 0;
-    LayoutButtons( aDialogSize.Width(), aDialogBorder, aButtonPos, aButtonSize,
-                    aButtonsWidth );
-
-    if (aButtonsWidth > 0)
-        aDialogSize.Width() += aButtonsWidth;
-
-    // Render and Position Logo
-    Size aLogoSize( aIdealTextWidth, aIdealTextWidth / 20 );
-    Point aLogoPos( 0, 0 );
+    long nWidth = get_content_area()->get_preferred_size().Width();
 
     // load svg logo, specify desired width, scale height isotrophically
-    if( SfxApplication::loadBrandSvg("flat_logo",
-                     aLogoBitmap,
-                     aDialogSize.Width()) &&
+    if( SfxApplication::loadBrandSvg("flat_logo", aLogoBitmap, nWidth) &&
         !aLogoBitmap.IsEmpty() )
     {
-        aLogoSize = aLogoBitmap.GetSizePixel();
-
-        aLogoImage.SetImage( Image( aLogoBitmap ) );
-        aLogoImage.SetPosSizePixel( aLogoPos, aLogoSize );
-        aLogoImage.Show();
+        m_pLogoImage->SetImage(Image(aLogoBitmap));
+        m_pLogoReplacement->Hide();
+        m_pLogoImage->Show();
     }
     else
     {
-        aLogoPos.X() = aDialogBorder;
-        aLogoPos.Y() = aDialogBorder;
-        aLogoSize = aLogoReplacement.CalcMinimumSize();
-        aLogoSize.Width() = aIdealTextWidth;
-        aLogoReplacement.SetPosSizePixel( aLogoPos, aLogoSize );
+        m_pLogoImage->Hide();
+        m_pLogoReplacement->Show();
     }
-
-    // Position version text
-    sal_Int32 aLogoVersionSpacing = aLogoSize.Height() * 0.15;
-    Point aVersionPos( aDialogBorder,
-                       aLogoPos.Y() + aLogoSize.Height() + aLogoVersionSpacing );
-    Size aVersionSize = aVersionText.GetSizePixel();
-    aVersionSize.Width() = aIdealTextWidth;
-    aVersionText.SetPosSizePixel( aVersionPos, aVersionSize );
-    aVersionSize = aVersionText.CalcMinimumSize();
-    aVersionText.SetSizePixel( aVersionSize );
-
-    // Position description text
-    sal_Int32 aVersionDescriptionSpacing = aLogoSize.Height() * 0.45;
-    Point aDescriptionPos( aDialogBorder, aVersionPos.Y() + aVersionSize.Height() + aVersionDescriptionSpacing );
-    Size aDescriptionSize = aDescriptionText.GetSizePixel();
-    aDescriptionSize.Width() = aIdealTextWidth;
-    aDescriptionText.SetPosSizePixel( aDescriptionPos, aDescriptionSize );
-    aDescriptionSize = aDescriptionText.CalcMinimumSize();
-    aDescriptionText.SetSizePixel( aDescriptionSize );
-
-    // Layout copyright text
-    Point aCopyrightPos( aDialogBorder, aDescriptionPos.Y() + aDescriptionText.GetSizePixel().Height() + aVersionDescriptionSpacing );
-    Size aCopyrightSize = aCopyrightText.GetSizePixel();
-    aCopyrightSize.Width() = aIdealTextWidth;
-    aCopyrightText.SetPosSizePixel( aCopyrightPos, aCopyrightSize );
-    aCopyrightSize = aCopyrightText.CalcMinimumSize();
-    aCopyrightSize.Width() = aIdealTextWidth;
-    aCopyrightText.SetSizePixel( aCopyrightSize );
-
-    // Move buttons into final place
-    sal_Int32 aButtonPosY = aDialogBorder + aCopyrightPos.Y() +
-            aCopyrightText.GetSizePixel().Height() + aVersionDescriptionSpacing;
-
-    MoveControl(aCreditsButton, 0, aButtonPosY);
-    MoveControl(aWebsiteButton, 0, aButtonPosY);
-    MoveControl(aCancelButton, 0, aButtonPosY);
-
-    // The centers everything again, if aDialogSize.Width() has become wider
-    // before; the -20 "fixes" a weird text centering bug
-    MoveControl(aVersionText, (aDialogSize.Width() - aVersionText.GetSizePixel().Width() - 20)/2, 0);
-    MoveControl(aDescriptionText, (aDialogSize.Width() - aDescriptionText.GetSizePixel().Width() - 20)/2, 0);
-    MoveControl(aCopyrightText, (aDialogSize.Width() - aCopyrightText.GetSizePixel().Width() - 20)/2, 0);
-
-    aDialogSize.Height() = aButtonPosY + aButtonSize.Height() + aDialogBorder;
-
-
-    // Layout background image
-    if ( !(Application::GetSettings().GetStyleSettings().GetHighContrastMode()) )
-        SfxApplication::loadBrandSvg("shell/about",
-                     aBackgroundBitmap,
-                     aDialogSize.Width());
-    SetOutputSizePixel( aDialogSize );
-
 }
 
-void AboutDialog::LayoutButtons(sal_Int32 aDialogWidth, sal_Int32 aDialogBorder,
-                                Point& aButtonPos, Size& aButtonSize,
-                                sal_Int32& aButtonsWidth )
+void AboutDialog::Resize()
 {
-    // Position credits button
-    sal_Int32 aButtonVPadding = 5;
-    sal_Int32 aButtonHPadding = 4;
-    sal_Int32 aAdjacentButtonSpacing = 15;
-    sal_Int32 aCreditsButtonWidth = aCreditsButton.CalcMinimumSize().Width();
-    sal_Int32 aWebsiteButtonWidth = aWebsiteButton.CalcMinimumSize().Width();
-    sal_Int32 aCancelButtonWidth = aCancelButton.CalcMinimumSize().Width();
-    sal_Int32 aLargestButtonWidth = 70;
-
-    if ( aLargestButtonWidth < aCreditsButtonWidth )
-        aLargestButtonWidth = aCreditsButtonWidth;
-    if ( aLargestButtonWidth < aWebsiteButtonWidth )
-        aLargestButtonWidth = aWebsiteButtonWidth;
-    if ( aLargestButtonWidth < aCancelButtonWidth )
-        aLargestButtonWidth = aCancelButtonWidth;
-
-    aButtonSize.Width() = aLargestButtonWidth + ( 2 * aButtonHPadding );
-    aButtonSize.Height() = aWebsiteButton.CalcMinimumSize().Height() + ( 2 * aButtonVPadding );
-
-    aCreditsButton.SetSizePixel( aButtonSize );
-    aWebsiteButton.SetSizePixel( aButtonSize );
-    aCancelButton.SetSizePixel( aButtonSize );
-
-    sal_Int32 aButtonSpacing = aDialogWidth  - ( aDialogBorder * 2 ) - ( aButtonSize.Width() * 3 ) - aAdjacentButtonSpacing ;
-    if (aButtonSpacing < aAdjacentButtonSpacing)
+    SfxModalDialog::Resize();
+    // Load background image
+    if (isInitialLayout(this) && !(Application::GetSettings().GetStyleSettings().GetHighContrastMode()))
     {
-        aButtonsWidth = aAdjacentButtonSpacing - aButtonSpacing;
-        aButtonSpacing = aAdjacentButtonSpacing;
+        SfxApplication::loadBrandSvg("shell/about", aBackgroundBitmap, GetOutputSizePixel().Width());
     }
-
-    aButtonPos.X() = aDialogBorder;
-    aButtonPos.Y() = 0;
-
-    aCreditsButton.SetPosPixel( aButtonPos );
-
-    aButtonPos.X() += aButtonSize.Width() + aAdjacentButtonSpacing;
-    aWebsiteButton.SetPosPixel( aButtonPos );
-
-    aButtonPos.X() += aButtonSize.Width() + aButtonSpacing;
-    aCancelButton.SetPosPixel( aButtonPos );
-
-
-}
-
-void AboutDialog::MoveControl(Control& rControl, sal_Int32 X, sal_Int32 Y)
-{
-    Point aControlPos = rControl.GetPosPixel();
-    aControlPos.X() += X;
-    aControlPos.Y() += Y;
-    rControl.SetPosPixel(aControlPos);
 }
 
 void AboutDialog::Paint( const Rectangle& rRect )
 {
     SetClipRegion(Region(rRect));
-    Point aPos ( rRect.GetWidth() - aBackgroundBitmap.GetSizePixel().Width(), rRect.GetHeight() - aBackgroundBitmap.GetSizePixel().Height() );
-    DrawBitmapEx( aPos, aBackgroundBitmap );
+
+    Size aSize(GetOutputSizePixel());
+    Point aPos(aSize.Width() - aBackgroundBitmap.GetSizePixel().Width(),
+                aSize.Height() - aBackgroundBitmap.GetSizePixel().Height());
+    DrawBitmapEx(aPos, aBackgroundBitmap);
 }
 
-rtl::OUString AboutDialog::GetBuildId()
+OUString AboutDialog::GetBuildId()
 {
-    rtl::OUString sDefault;
-    rtl::OUString sBuildId(utl::Bootstrap::getBuildVersion(sDefault));
+    OUString sDefault;
+    OUString sBuildId(utl::Bootstrap::getBuildVersion(sDefault));
     if (!sBuildId.isEmpty())
         return sBuildId;
 
@@ -366,15 +224,15 @@ rtl::OUString AboutDialog::GetBuildId()
     return sBuildId;
 }
 
-rtl::OUString AboutDialog::GetVersionString()
+OUString AboutDialog::GetVersionString()
 {
-    rtl::OUString sVersion = m_aVersionTextStr;
+    OUString sVersion = m_aVersionTextStr;
 
-    rtl::OUString sBuildId = GetBuildId();
+    OUString sBuildId = GetBuildId();
 
     if (!sBuildId.trim().isEmpty())
     {
-        sVersion += " ";
+        sVersion += "\n";
         if (m_sBuildStr.indexOf("$BUILDID") == -1)
         {
             SAL_WARN( "cui.dialogs", "translated Build Id string in translations doesn't contain $BUILDID placeholder" );
@@ -407,12 +265,6 @@ rtl::OUString AboutDialog::GetCopyrightString()
     return aCopyrightString;
 }
 
-IMPL_LINK_NOARG(AboutDialog, CancelHdl)
-{
-    Close();
-    return 0;
-}
-
 sal_Bool AboutDialog::Close()
 {
     EndDialog( RET_OK );
diff --git a/cui/source/dialogs/about.hrc b/cui/source/dialogs/about.hrc
deleted file mode 100644
index f4e772f..0000000
--- a/cui/source/dialogs/about.hrc
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <sfx2/sfx.hrc>
-
-#define ABOUT_STR_BUILD             1
-#define ABOUT_STR_VERSION           2
-#define ABOUT_STR_VENDOR            3
-#define ABOUT_STR_COPYRIGHT         4
-#define ABOUT_STR_BASED             5
-#define ABOUT_STR_BASED_DERIVED     6
-#define ABOUT_STR_LINK_CREDITS      8
-#define ABOUT_LOGO_REPLACEMENT      9
-#define ABOUT_BTN_CREDITS           10
-#define ABOUT_DESCRIPTION_TEXT      11
-#define ABOUT_COPYRIGHT_TEXT        12
-#define ABOUT_COPYRIGHT_TEXT_SHADOW 13
-#define ABOUT_IMAGE_LOGO            14
-#define ABOUT_BTN_WEBSITE           15
-#define ABOUT_BTN_LICENSE           16
-#define ABOUT_VERSION_TEXT          17
-#define ABOUT_STR_DESCRIPTION       18
-#define ABOUT_BTN_CANCEL            19
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/about.src b/cui/source/dialogs/about.src
deleted file mode 100644
index 2cedec1..0000000
--- a/cui/source/dialogs/about.src
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "about.hrc"
-
-ModalDialog RID_DEFAULTABOUT
-{
-    OutputSize = TRUE ;
-    Moveable = TRUE ;
-    SVLook = TRUE ;
-    MultiLineEdit ABOUT_LOGO_REPLACEMENT
-    {
-        Border = FALSE ;
-        IgnoreTab = TRUE ;
-        ReadOnly = TRUE ;
-        AutoVScroll = TRUE ;
-        LEFT = FALSE ;
-        CENTER = TRUE ;
-        RIGHT = FALSE ;
-    };
-    MultiLineEdit ABOUT_DESCRIPTION_TEXT
-    {
-        Border = FALSE ;
-        IgnoreTab = TRUE ;
-        ReadOnly = TRUE ;
-        AutoVScroll = TRUE ;
-        LEFT = FALSE ;
-        CENTER = TRUE ;
-        RIGHT = FALSE ;
-    };
-    MultiLineEdit ABOUT_COPYRIGHT_TEXT
-    {
-        Border = FALSE ;
-        IgnoreTab = TRUE ;
-        ReadOnly = TRUE ;
-        LEFT = FALSE ;
-        CENTER = TRUE ;
-        RIGHT = FALSE ;
-    };
-    MultiLineEdit ABOUT_VERSION_TEXT
-    {
-        Border = FALSE ;
-        IgnoreTab = TRUE ;
-        ReadOnly = TRUE ;
-        LEFT = FALSE ;
-        CENTER = TRUE ;
-        RIGHT = FALSE ;
-    };
-    String ABOUT_STR_VERSION
-    {
-        Text [ en-US ] = "Version %ABOUTBOXPRODUCTVERSION%ABOUTBOXPRODUCTVERSIONSUFFIX";
-    };
-    String ABOUT_STR_DESCRIPTION
-    {
-        Text [ en-US ] = "%PRODUCTNAME is a modern, easy-to-use, open source productivity suite for word processing, spreadsheets, presentations and more.";
-    };
-    String ABOUT_STR_VENDOR
-    {
-        Text[ en-US ] = "This release was supplied by %OOOVENDOR";
-    };
-    String ABOUT_STR_COPYRIGHT
-    {
-        Text[ en-US ] = "Copyright © 2000 - 2013 LibreOffice contributors and/or their affiliates";
-    };
-    String ABOUT_STR_BASED
-    {
-        Text[ en-US ] = "LibreOffice was based on OpenOffice.org";
-    };
-    String ABOUT_STR_BASED_DERIVED
-    {
-        Text[ en-US ] = "%PRODUCTNAME is derived from LibreOffice which was based on OpenOffice.org";
-    };
-    String ABOUT_STR_BUILD
-    {
-        Text[ en-US ] = "(Build ID: $BUILDID)";
-    };
-    String ABOUT_STR_LINK_CREDITS
-    {
-        Text[ en-US ] = "http://www.libreoffice.org/about-us/credits/";
-    };
-    PushButton ABOUT_BTN_CREDITS
-    {
-        Text [ en-US ] = "Credits";
-    };
-    PushButton ABOUT_BTN_WEBSITE
-    {
-        Text [ en-US ] = "Website";
-    };
-    CancelButton ABOUT_BTN_CANCEL
-    {
-        DefButton = TRUE ;
-        Text [ en-US ] = "~Close";
-    };
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index a8c280d..52bb6df 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -1010,7 +1010,7 @@ VclAbstractDialog* AbstractDialogFactory_Impl::CreateVclDialog( Window* pParent,
     {
         case RID_DEFAULTABOUT:
         {
-            pDlg = new AboutDialog( pParent, CUI_RES( (sal_uInt16) nResId ) );
+            pDlg = new AboutDialog(pParent);
             break;
         }
         case SID_OPTIONS_TREEDIALOG :
diff --git a/cui/source/inc/about.hxx b/cui/source/inc/about.hxx
index 4f824e3..2263eb2 100644
--- a/cui/source/inc/about.hxx
+++ b/cui/source/inc/about.hxx
@@ -19,10 +19,10 @@
 #ifndef _ABOUT_HXX
 #define _ABOUT_HXX
 
-#include <vcl/button.hxx>
 #include <vcl/accel.hxx>
-#include <svtools/svmedit.hxx>
-#include <svtools/stdctrl.hxx>
+#include <vcl/button.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/vclmedit.hxx>
 #include <sfx2/basedlgs.hxx>        ///< for SfxModalDialog
 #include <vector>
 
@@ -34,43 +34,38 @@ private:
     BitmapEx           aBackgroundBitmap;
     BitmapEx           aLogoBitmap;
 
+    VclMultiLineEdit*    m_pVersion;
+    FixedText*           m_pDescriptionText;
+    FixedText*           m_pCopyrightText;
+    FixedImage*          m_pLogoImage;
+    FixedText*           m_pLogoReplacement;
+    PushButton*          m_pCreditsButton;
+    PushButton*          m_pWebsiteButton;
 
-    MultiLineEdit       aVersionText;
-    MultiLineEdit       aDescriptionText;
-    MultiLineEdit       aCopyrightText;
-    FixedImage          aLogoImage;
-    MultiLineEdit       aLogoReplacement;
-    PushButton          aCreditsButton;
-    PushButton          aWebsiteButton;
-    CancelButton        aCancelButton;
-
-    String aVersionData;
-    rtl::OUString m_aVersionTextStr;
-    String m_aVendorTextStr;
-    String m_aCopyrightTextStr;
-    String m_aBasedTextStr;
-    String m_aBasedDerivedTextStr;
-    String m_aCreditsLinkStr;
-    rtl::OUString m_sBuildStr;
-    String m_aDescriptionTextStr;
+    OUString aVersionData;
+    OUString m_aVersionTextStr;
+    OUString m_aVendorTextStr;
+    OUString m_aCopyrightTextStr;
+    OUString m_aBasedTextStr;
+    OUString m_aBasedDerivedTextStr;
+    OUString m_aCreditsLinkStr;
+    OUString m_sBuildStr;
 
     void StyleControls();
-    void LayoutControls();
-    void LayoutButtons(sal_Int32 aContentWidth, sal_Int32 aDialogBorder,
-                       Point& aButtonPos, Size& aButtonSize, sal_Int32& aButtonsWidth );
-    void MoveControl(Control& rControl, sal_Int32 X, sal_Int32 Y);
-    rtl::OUString GetBuildId();
-    rtl::OUString GetVersionString();
-    rtl::OUString GetCopyrightString();
+    void SetLogo();
+
+    OUString GetBuildId();
+    OUString GetVersionString();
+    OUString GetCopyrightString();
 
 protected:
     virtual sal_Bool Close();
-    virtual void     Paint( const Rectangle& rRect );
+    virtual void Paint( const Rectangle& rRect );
+    virtual void Resize();
 
 public:
-    AboutDialog( Window* pParent, const ResId& rId);
+    AboutDialog(Window* pParent);
 
-    DECL_LINK( CancelHdl, void * );
     DECL_LINK( HandleClick, PushButton* );
 };
 
diff --git a/cui/uiconfig/ui/aboutdialog.ui b/cui/uiconfig/ui/aboutdialog.ui
new file mode 100644
index 0000000..cb74cb3
--- /dev/null
+++ b/cui/uiconfig/ui/aboutdialog.ui
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkDialog" id="AboutDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="resizable">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="credits">
+                <property name="label" translatable="yes">Cre_dits</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="website">
+                <property name="label" translatable="yes">_Website</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="close">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="box1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="orientation">vertical</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkImage" id="logo">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="stock">gtk-missing-image</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="box2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">24</property>
+                <child>
+                  <object class="GtkLabel" id="logoreplacement">
+                    <property name="can_focus">False</property>
+                    <property name="no_show_all">True</property>
+                    <property name="label" translatable="yes">%PRODUCTNAME</property>
+                    <property name="justify">center</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkGrid" id="grid1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <child>
+                      <object class="GtkLabel" id="buildid">
+                        <property name="can_focus">False</property>
+                        <property name="no_show_all">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="label" translatable="yes">Build ID: $BUILDID</property>
+                        <property name="justify">center</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="GtkTextView" id="version">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="editable">False</property>
+                        <property name="wrap_mode">word</property>
+                        <property name="justification">center</property>
+                        <property name="cursor_visible">False</property>
+                        <property name="buffer">textbuffer1</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="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="description">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="label" translatable="yes">%PRODUCTNAME is a modern, easy-to-use, open source productivity suite for word processing, spreadsheets, presentations and more.</property>
+                    <property name="justify">center</property>
+                    <property name="wrap">True</property>
+                    <property name="max_width_chars">62</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkGrid" id="grid2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <child>
+                      <object class="GtkLabel" id="copyright">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="hexpand">True</property>
+                        <property name="label" translatable="yes">Copyright © 2000 - 2013 LibreOffice contributors and/or their affiliates.</property>
+                        <property name="justify">center</property>
+                        <property name="wrap">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>
+                    <child>
+                      <object class="GtkLabel" id="libreoffice">
+                        <property name="can_focus">False</property>
+                        <property name="no_show_all">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="label" translatable="yes">LibreOffice was based on OpenOffice.org.</property>
+                        <property name="justify">center</property>
+                        <property name="wrap">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="GtkLabel" id="derived">
+                        <property name="can_focus">False</property>
+                        <property name="no_show_all">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="label" translatable="yes">%PRODUCTNAME is derived from LibreOffice which was based on OpenOffice.org.</property>
+                        <property name="justify">center</property>
+                        <property name="wrap">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="vendor">
+                        <property name="can_focus">False</property>
+                        <property name="no_show_all">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="label" translatable="yes">This release was supplied by %OOOVENDOR.</property>
+                        <property name="justify">center</property>
+                        <property name="wrap">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>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="link">
+                    <property name="can_focus">False</property>
+                    <property name="no_show_all">True</property>
+                    <property name="label" translatable="yes">http://www.libreoffice.org/about-us/credits/</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">4</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">credits</action-widget>
+      <action-widget response="0">website</action-widget>
+      <action-widget response="0">close</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkTextBuffer" id="textbuffer1">
+    <property name="text" translatable="yes">Version: %ABOUTBOXPRODUCTVERSION%ABOUTBOXPRODUCTVERSIONSUFFIX</property>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup1">
+    <widgets>
+      <widget name="copyright"/>
+      <widget name="libreoffice"/>
+      <widget name="vendor"/>
+    </widgets>
+  </object>
+</interface>
commit e910123eced2f303dcf4c58b5e79f1da3f02d29b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 4 20:58:10 2013 +0100

    make border property of multiline edit optional
    
    Change-Id: Ideeda46baf3d96dd52a77b5d225df3c00153183e

diff --git a/cui/uiconfig/ui/comment.ui b/cui/uiconfig/ui/comment.ui
index 12137d2..5959b4a 100644
--- a/cui/uiconfig/ui/comment.ui
+++ b/cui/uiconfig/ui/comment.ui
@@ -202,7 +202,7 @@
                         <property name="vscrollbar_policy">always</property>
                         <property name="shadow_type">in</property>
                         <child>
-                          <object class="GtkTextView" id="edit">
+                          <object class="GtkTextView" id="edit:border">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="hexpand">True</property>
diff --git a/cui/uiconfig/ui/insertplugin.ui b/cui/uiconfig/ui/insertplugin.ui
index 194e71d..481c5d1 100644
--- a/cui/uiconfig/ui/insertplugin.ui
+++ b/cui/uiconfig/ui/insertplugin.ui
@@ -109,7 +109,7 @@
                         <property name="vscrollbar_policy">always</property>
                         <property name="shadow_type">in</property>
                         <child>
-                          <object class="GtkTextView" id="pluginoptions">
+                          <object class="GtkTextView" id="pluginoptions:border">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="wrap_mode">char</property>
diff --git a/cui/uiconfig/ui/macroselectordialog.ui b/cui/uiconfig/ui/macroselectordialog.ui
index 40131be..1734426 100644
--- a/cui/uiconfig/ui/macroselectordialog.ui
+++ b/cui/uiconfig/ui/macroselectordialog.ui
@@ -299,7 +299,7 @@
                         <property name="vexpand">True</property>
                         <property name="shadow_type">in</property>
                         <child>
-                          <object class="GtkTextView" id="description">
+                          <object class="GtkTextView" id="description:border">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="editable">False</property>
diff --git a/cui/uiconfig/ui/objecttitledescdialog.ui b/cui/uiconfig/ui/objecttitledescdialog.ui
index ff22684..2e639b9 100644
--- a/cui/uiconfig/ui/objecttitledescdialog.ui
+++ b/cui/uiconfig/ui/objecttitledescdialog.ui
@@ -125,7 +125,7 @@
                 <property name="vscrollbar_policy">always</property>
                 <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkTextView" id="desc_entry">
+                  <object class="GtkTextView" id="desc_entry:border">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="wrap_mode">word</property>
diff --git a/sfx2/uiconfig/ui/checkin.ui b/sfx2/uiconfig/ui/checkin.ui
index 7128519..e50809c 100644
--- a/sfx2/uiconfig/ui/checkin.ui
+++ b/sfx2/uiconfig/ui/checkin.ui
@@ -91,7 +91,7 @@
                     <property name="top_padding">6</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkTextView" id="VersionComment">
+                      <object class="GtkTextView" id="VersionComment:border">
                         <property name="width_request">300</property>
                         <property name="height_request">150</property>
                         <property name="visible">True</property>
diff --git a/sfx2/uiconfig/ui/descriptioninfopage.ui b/sfx2/uiconfig/ui/descriptioninfopage.ui
index c257d31..113e60c 100644
--- a/sfx2/uiconfig/ui/descriptioninfopage.ui
+++ b/sfx2/uiconfig/ui/descriptioninfopage.ui
@@ -128,7 +128,7 @@
         <property name="vscrollbar_policy">always</property>
         <property name="shadow_type">in</property>
         <child>
-          <object class="GtkTextView" id="comments">
+          <object class="GtkTextView" id="comments:border">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="hexpand">True</property>
diff --git a/sfx2/uiconfig/ui/managestylepage.ui b/sfx2/uiconfig/ui/managestylepage.ui
index beeeed7..551f2d3 100644
--- a/sfx2/uiconfig/ui/managestylepage.ui
+++ b/sfx2/uiconfig/ui/managestylepage.ui
@@ -165,7 +165,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkTextView" id="namero">
+                      <object class="GtkTextView" id="namero:border">
                         <property name="can_focus">True</property>
                         <property name="no_show_all">True</property>
                         <property name="valign">center</property>
diff --git a/sw/uiconfig/swriter/ui/insertscript.ui b/sw/uiconfig/swriter/ui/insertscript.ui
index fe53893..74b24b7 100644
--- a/sw/uiconfig/swriter/ui/insertscript.ui
+++ b/sw/uiconfig/swriter/ui/insertscript.ui
@@ -119,7 +119,7 @@
                 <property name="can_focus">True</property>
                 <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkTextView" id="textentry">
+                  <object class="GtkTextView" id="textentry:border">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                   </object>
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 01a7185..6b7c2cb 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -1185,7 +1185,10 @@ Window *VclBuilder::makeObject(Window *pParent, const OString &name, const OStri
     {
         extractBuffer(id, rMap);
 
-        WinBits nWinStyle = WB_LEFT | WB_BORDER;
+        WinBits nWinStyle = WB_LEFT;
+        OString sBorder = extractCustomProperty(rMap);
+        if (!sBorder.isEmpty())
+            nWinStyle |= WB_BORDER;
         //VclMultiLineEdit manages its own scrolling,
         Window *pRealParent = prepareWidgetOwnScrolling(pParent, nWinStyle);
         pWindow = new VclMultiLineEdit(pRealParent, nWinStyle);
commit a60233918c2e4ca7534091c73965e7f2155a15b5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 4 20:57:40 2013 +0100

    map justification property to alignment bits
    
    Change-Id: I7d1494430cbc75cfb831dfe5500a0c3e6c9147fa

diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index ba8cc38..1cac7b3 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1906,6 +1906,20 @@ bool Window::set_property(const OString &rKey, const OString &rValue)
 
         SetStyle(nBits);
     }
+    else if (rKey == "justification")
+    {
+        WinBits nBits = GetStyle();
+        nBits &= ~(WB_LEFT | WB_CENTER | WB_RIGHT);
+
+        if (rValue == "left")
+            nBits |= WB_LEFT;
+        else if (rValue == "right")
+            nBits |= WB_RIGHT;
+        else if (rValue == "center")
+            nBits |= WB_CENTER;
+
+        SetStyle(nBits);
+    }
     else if (rKey == "yalign")
     {
         WinBits nBits = GetStyle();


More information about the Libreoffice-commits mailing list