Kaydet (Commit) 79af094f authored tarafından Caolán McNamara's avatar Caolán McNamara

convert about dialog to .ui format

Change-Id: I7a4636c212e19702b94f5c42491c9785f1eccc00
üst e910123e
...@@ -53,7 +53,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\ ...@@ -53,7 +53,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\
cui/source/customize/cfg.src \ cui/source/customize/cfg.src \
cui/source/customize/eventdlg.src \ cui/source/customize/eventdlg.src \
cui/source/customize/macropg.src \ cui/source/customize/macropg.src \
cui/source/dialogs/about.src \
cui/source/dialogs/colorpicker.src \ cui/source/dialogs/colorpicker.src \
cui/source/dialogs/commonlingui.src \ cui/source/dialogs/commonlingui.src \
cui/source/dialogs/cuiimapdlg.src \ cui/source/dialogs/cuiimapdlg.src \
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
$(eval $(call gb_UI_UI,cui)) $(eval $(call gb_UI_UI,cui))
$(eval $(call gb_UI_add_uifiles,cui,\ $(eval $(call gb_UI_add_uifiles,cui,\
cui/uiconfig/ui/aboutdialog \
cui/uiconfig/ui/asiantypography \ cui/uiconfig/ui/asiantypography \
cui/uiconfig/ui/backgroundpage \ cui/uiconfig/ui/backgroundpage \
cui/uiconfig/ui/borderpage \ cui/uiconfig/ui/borderpage \
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/ */
#include <vcl/layout.hxx>
#include <vcl/svapp.hxx> #include <vcl/svapp.hxx>
#include <vcl/msgbox.hxx> #include <vcl/msgbox.hxx>
...@@ -41,7 +42,6 @@ ...@@ -41,7 +42,6 @@
#include <sfx2/sfxuno.hxx> #include <sfx2/sfxuno.hxx>
#include <sfx2/sfxcommands.h> #include <sfx2/sfxcommands.h>
#include "about.hxx" #include "about.hxx"
#include "about.hrc"
#include <sfx2/sfxdefs.hxx> #include <sfx2/sfxdefs.hxx>
#include <sfx2/app.hxx> #include <sfx2/app.hxx>
#include <rtl/ustrbuf.hxx> #include <rtl/ustrbuf.hxx>
...@@ -58,52 +58,42 @@ enum AboutDialogButton ...@@ -58,52 +58,42 @@ enum AboutDialogButton
WEBSITE_BUTTON WEBSITE_BUTTON
}; };
AboutDialog::AboutDialog( Window* pParent, const ResId& rId) : AboutDialog::AboutDialog(Window* pParent)
SfxModalDialog ( pParent, rId ), : SfxModalDialog(pParent, "AboutDialog", "cui/ui/aboutdialog.ui")
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()))
{ {
// Populate text items get(m_pLogoReplacement, "logoreplacement");
aLogoReplacement.SetText ( utl::ConfigManager::getProductName() ); get(m_pLogoImage, "logo");
get(m_pVersion, "version");
aVersionText.SetText( GetVersionString() ); get(m_pDescriptionText, "description");
get(m_pCopyrightText, "copyright");
aDescriptionText.SetText( m_aDescriptionTextStr ); m_aCopyrightTextStr = m_pCopyrightText->GetText();
get(m_pWebsiteButton, "website");
rtl::OUString aCopyrightString = GetCopyrightString(); get(m_pCreditsButton, "credits");
aCopyrightText.SetText( aCopyrightString ); 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(); StyleControls();
LayoutControls();
SetLogo();
// Allow the button to be identifiable once they are clicked // Allow the button to be identifiable once they are clicked
aCreditsButton.SetData( (void*)CREDITS_BUTTON ); m_pCreditsButton->SetData( (void*)CREDITS_BUTTON );
aWebsiteButton.SetData( (void*)WEBSITE_BUTTON ); m_pWebsiteButton->SetData( (void*)WEBSITE_BUTTON );
// Connect all handlers // Connect all handlers
aCreditsButton.SetClickHdl( LINK( this, AboutDialog, HandleClick ) ); m_pCreditsButton->SetClickHdl( LINK( this, AboutDialog, HandleClick ) );
aWebsiteButton.SetClickHdl( LINK( this, AboutDialog, HandleClick ) ); m_pWebsiteButton->SetClickHdl( LINK( this, AboutDialog, HandleClick ) );
aCancelButton.SetClickHdl( LINK( this, AboutDialog, CancelHdl ) ); get<PushButton>("close")->GrabFocus();
FreeResource();
// explicit Help-Id
SetHelpId( CMD_SID_ABOUT );
} }
IMPL_LINK( AboutDialog, HandleClick, PushButton*, pButton ) IMPL_LINK( AboutDialog, HandleClick, PushButton*, pButton )
...@@ -145,212 +135,80 @@ IMPL_LINK( AboutDialog, HandleClick, PushButton*, pButton ) ...@@ -145,212 +135,80 @@ IMPL_LINK( AboutDialog, HandleClick, PushButton*, pButton )
void AboutDialog::StyleControls() void AboutDialog::StyleControls()
{ {
// Make all the controls have a transparent background // Make all the controls have a transparent background
aLogoImage.SetBackground(); m_pLogoImage->SetBackground();
aLogoReplacement.SetPaintTransparent( sal_True ); m_pLogoReplacement->SetPaintTransparent(true);
aVersionText.SetPaintTransparent( sal_True ); m_pVersion->SetPaintTransparent(true);
aDescriptionText.SetPaintTransparent( sal_True ); m_pDescriptionText->SetPaintTransparent(true);
aCopyrightText.SetPaintTransparent( sal_True ); m_pCopyrightText->SetPaintTransparent(true);
Font aLabelFont = GetSettings().GetStyleSettings().GetLabelFont(); Font aLabelFont = GetSettings().GetStyleSettings().GetLabelFont();
Font aLargeFont = aLabelFont; Font aLargeFont = aLabelFont;
aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 3 ) ); aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 3 ) );
// Logo Replacement Text // Logo Replacement Text
aLogoReplacement.SetControlFont( aLargeFont ); m_pLogoReplacement->SetControlFont( aLargeFont );
aLogoReplacement.SetTextSelectable( sal_False );
// Description Text // Description Text
aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 1.3 ) ); aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 1.3 ) );
aDescriptionText.SetControlFont( aLargeFont ); m_pDescriptionText->SetControlFont(aLargeFont);
aDescriptionText.SetTextSelectable( sal_False );
// Version Text // Version Text
aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 1.2 ) ); aLargeFont.SetSize( Size( 0, aLabelFont.GetSize().Height() * 1.2 ) );
aVersionText.SetControlFont( aLargeFont ); m_pVersion->SetControlFont(aLargeFont);
aVersionText.EnableCursor( sal_False );
// Copyright Text
aCopyrightText.SetTextSelectable( sal_False );
// If not in high-contrast mode, hard-code colors // If not in high-contrast mode, hard-code colors
if ( !(Application::GetSettings().GetStyleSettings().GetHighContrastMode()) ) if ( !(Application::GetSettings().GetStyleSettings().GetHighContrastMode()) )
{ {
aLogoReplacement.SetControlForeground( Color( 51, 51, 51 ) ); m_pLogoReplacement->SetControlForeground(Color(51, 51, 51));
aVersionText.SetControlForeground( Color( 102, 102, 102 ) ); m_pVersion->SetControlForeground(Color(102, 102, 102));
aDescriptionText.SetControlForeground( Color( 51, 51, 51 ) ); m_pDescriptionText->SetControlForeground(Color(51, 51, 51));
aCopyrightText.SetControlForeground( Color( 102, 102, 102 ) ); m_pCopyrightText->SetControlForeground(Color(102, 102, 102));
} }
aCancelButton.GrabFocus();
} }
void AboutDialog::LayoutControls() void AboutDialog::SetLogo()
{ {
// Get the size of the screen long nWidth = get_content_area()->get_preferred_size().Width();
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 );
// load svg logo, specify desired width, scale height isotrophically // load svg logo, specify desired width, scale height isotrophically
if( SfxApplication::loadBrandSvg("flat_logo", if( SfxApplication::loadBrandSvg("flat_logo", aLogoBitmap, nWidth) &&
aLogoBitmap,
aDialogSize.Width()) &&
!aLogoBitmap.IsEmpty() ) !aLogoBitmap.IsEmpty() )
{ {
aLogoSize = aLogoBitmap.GetSizePixel(); m_pLogoImage->SetImage(Image(aLogoBitmap));
m_pLogoReplacement->Hide();
aLogoImage.SetImage( Image( aLogoBitmap ) ); m_pLogoImage->Show();
aLogoImage.SetPosSizePixel( aLogoPos, aLogoSize );
aLogoImage.Show();
} }
else else
{ {
aLogoPos.X() = aDialogBorder; m_pLogoImage->Hide();
aLogoPos.Y() = aDialogBorder; m_pLogoReplacement->Show();
aLogoSize = aLogoReplacement.CalcMinimumSize();
aLogoSize.Width() = aIdealTextWidth;
aLogoReplacement.SetPosSizePixel( aLogoPos, aLogoSize );
} }
// 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, void AboutDialog::Resize()
Point& aButtonPos, Size& aButtonSize,
sal_Int32& aButtonsWidth )
{ {
// Position credits button SfxModalDialog::Resize();
sal_Int32 aButtonVPadding = 5; // Load background image
sal_Int32 aButtonHPadding = 4; if (isInitialLayout(this) && !(Application::GetSettings().GetStyleSettings().GetHighContrastMode()))
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)
{ {
aButtonsWidth = aAdjacentButtonSpacing - aButtonSpacing; SfxApplication::loadBrandSvg("shell/about", aBackgroundBitmap, GetOutputSizePixel().Width());
aButtonSpacing = aAdjacentButtonSpacing;
} }
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 ) void AboutDialog::Paint( const Rectangle& rRect )
{ {
SetClipRegion(Region(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; OUString sDefault;
rtl::OUString sBuildId(utl::Bootstrap::getBuildVersion(sDefault)); OUString sBuildId(utl::Bootstrap::getBuildVersion(sDefault));
if (!sBuildId.isEmpty()) if (!sBuildId.isEmpty())
return sBuildId; return sBuildId;
...@@ -366,15 +224,15 @@ rtl::OUString AboutDialog::GetBuildId() ...@@ -366,15 +224,15 @@ rtl::OUString AboutDialog::GetBuildId()
return sBuildId; 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()) if (!sBuildId.trim().isEmpty())
{ {
sVersion += " "; sVersion += "\n";
if (m_sBuildStr.indexOf("$BUILDID") == -1) if (m_sBuildStr.indexOf("$BUILDID") == -1)
{ {
SAL_WARN( "cui.dialogs", "translated Build Id string in translations doesn't contain $BUILDID placeholder" ); SAL_WARN( "cui.dialogs", "translated Build Id string in translations doesn't contain $BUILDID placeholder" );
...@@ -407,12 +265,6 @@ rtl::OUString AboutDialog::GetCopyrightString() ...@@ -407,12 +265,6 @@ rtl::OUString AboutDialog::GetCopyrightString()
return aCopyrightString; return aCopyrightString;
} }
IMPL_LINK_NOARG(AboutDialog, CancelHdl)
{
Close();
return 0;
}
sal_Bool AboutDialog::Close() sal_Bool AboutDialog::Close()
{ {
EndDialog( RET_OK ); EndDialog( RET_OK );
......
/* -*- 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: */
/* -*- 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: */
...@@ -1010,7 +1010,7 @@ VclAbstractDialog* AbstractDialogFactory_Impl::CreateVclDialog( Window* pParent, ...@@ -1010,7 +1010,7 @@ VclAbstractDialog* AbstractDialogFactory_Impl::CreateVclDialog( Window* pParent,
{ {
case RID_DEFAULTABOUT: case RID_DEFAULTABOUT:
{ {
pDlg = new AboutDialog( pParent, CUI_RES( (sal_uInt16) nResId ) ); pDlg = new AboutDialog(pParent);
break; break;
} }
case SID_OPTIONS_TREEDIALOG : case SID_OPTIONS_TREEDIALOG :
......
...@@ -19,10 +19,10 @@ ...@@ -19,10 +19,10 @@
#ifndef _ABOUT_HXX #ifndef _ABOUT_HXX
#define _ABOUT_HXX #define _ABOUT_HXX
#include <vcl/button.hxx>
#include <vcl/accel.hxx> #include <vcl/accel.hxx>
#include <svtools/svmedit.hxx> #include <vcl/button.hxx>
#include <svtools/stdctrl.hxx> #include <vcl/fixed.hxx>
#include <vcl/vclmedit.hxx>
#include <sfx2/basedlgs.hxx> ///< for SfxModalDialog #include <sfx2/basedlgs.hxx> ///< for SfxModalDialog
#include <vector> #include <vector>
...@@ -34,43 +34,38 @@ private: ...@@ -34,43 +34,38 @@ private:
BitmapEx aBackgroundBitmap; BitmapEx aBackgroundBitmap;
BitmapEx aLogoBitmap; 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; OUString aVersionData;
MultiLineEdit aDescriptionText; OUString m_aVersionTextStr;
MultiLineEdit aCopyrightText; OUString m_aVendorTextStr;
FixedImage aLogoImage; OUString m_aCopyrightTextStr;
MultiLineEdit aLogoReplacement; OUString m_aBasedTextStr;
PushButton aCreditsButton; OUString m_aBasedDerivedTextStr;
PushButton aWebsiteButton; OUString m_aCreditsLinkStr;
CancelButton aCancelButton; OUString m_sBuildStr;
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;
void StyleControls(); void StyleControls();
void LayoutControls(); void SetLogo();
void LayoutButtons(sal_Int32 aContentWidth, sal_Int32 aDialogBorder,
Point& aButtonPos, Size& aButtonSize, sal_Int32& aButtonsWidth ); OUString GetBuildId();
void MoveControl(Control& rControl, sal_Int32 X, sal_Int32 Y); OUString GetVersionString();
rtl::OUString GetBuildId(); OUString GetCopyrightString();
rtl::OUString GetVersionString();
rtl::OUString GetCopyrightString();
protected: protected:
virtual sal_Bool Close(); virtual sal_Bool Close();
virtual void Paint( const Rectangle& rRect ); virtual void Paint( const Rectangle& rRect );
virtual void Resize();
public: public:
AboutDialog( Window* pParent, const ResId& rId); AboutDialog(Window* pParent);
DECL_LINK( CancelHdl, void * );
DECL_LINK( HandleClick, PushButton* ); DECL_LINK( HandleClick, PushButton* );
}; };
......
<?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>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment