summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/AllLangResTarget_cui.mk1
-rw-r--r--cui/UI_cui.mk1
-rw-r--r--cui/source/dialogs/about.cxx280
-rw-r--r--cui/source/dialogs/about.hrc41
-rw-r--r--cui/source/dialogs/about.src112
-rw-r--r--cui/source/factory/dlgfact.cxx2
-rw-r--r--cui/source/inc/about.hxx57
-rw-r--r--cui/uiconfig/ui/aboutdialog.ui296
8 files changed, 390 insertions, 400 deletions
diff --git a/cui/AllLangResTarget_cui.mk b/cui/AllLangResTarget_cui.mk
index 6a806b133804..f387d8c859b5 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 3220a15757e3..c5cf568ede56 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 d40e4525b2d1..0fcb96b31a5b 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 f4e772fbbb9d..000000000000
--- 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 2cedec171eac..000000000000
--- 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 a8c280d07c86..52bb6df63317 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 4f824e314f84..2263eb2539d7 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 000000000000..cb74cb32a123
--- /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>