Kaydet (Commit) 5eaf1951 authored tarafından Thorsten Behrens's avatar Thorsten Behrens Kaydeden (comit) Jan Holesovsky

linkwarn-svx-warning-dlg.diff: Link warning dialog.

n#348149
üst 84b8a41f
......@@ -35,7 +35,7 @@
// Resource-Id's ------------------------------------------------------------
// Bitte FIRSTFREE pflegen!!! (gilt nicht f"ur Strings)
#define RID_SVX_FIRSTFREE 305
#define RID_SVX_FIRSTFREE 314
// some strings also used in CUI
#define RID_SVXERRCTX (RID_SVX_START + 351)
......@@ -379,6 +379,7 @@
#define RID_SVXDLG_TEXTCONTROL_CHARATTR (RID_SVX_START + 286)
#define RID_SVXDLG_TEXTCONTROL_PARAATTR (RID_SVX_START + 287)
#define RID_SVXDLG_LINK_WARNING (RID_SVX_START + 313)
// !!! please update RID_SVX_FIRSTFREE !!! see line 46
// Strings ------------------------------------------------------------------
......
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
* Copyright 2010 Novell, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SFX_LINKWARN_HXX
#define _SFX_LINKWARN_HXX
#include <vcl/button.hxx>
#include <vcl/fixed.hxx>
#include <sfx2/basedlgs.hxx>
#include "svx/svxdllapi.h"
class SVX_DLLPUBLIC SvxLinkWarningDialog : public SfxModalDialog
{
private:
FixedImage m_aQueryImage;
FixedText m_aInfoText;
OKButton m_aLinkGraphicBtn;
CancelButton m_aEmbedGraphicBtn;
FixedLine m_aOptionLine;
CheckBox m_aWarningOnBox;
void InitSize();
public:
SvxLinkWarningDialog( Window* pParent, const String& _rFileName );
virtual ~SvxLinkWarningDialog();
};
#endif // #ifndef _SFX_LINKWARN_HXX
......@@ -146,6 +146,11 @@ mkdir: %_DEST%\inc%_EXT%\svx
..\inc\svx\simptabl.hxx %_DEST%\inc%_EXT%\svx\simptabl.hxx
..\inc\svx\ctredlin.hxx %_DEST%\inc%_EXT%\svx\ctredlin.hxx
..\inc\svx\bmpmask.hxx %_DEST%\inc%_EXT%\svx\bmpmask.hxx
..\inc\svx\linkwarn.hxx %_DEST%\inc%_EXT%\svx\linkwarn.hxx
..\inc\svx\borderline.hxx %_DEST%\inc%_EXT%\svx\borderline.hxx
..\inc\svx\boxitem.hxx %_DEST%\inc%_EXT%\svx\boxitem.hxx
..\inc\svx\brkitem.hxx %_DEST%\inc%_EXT%\svx\brkitem.hxx
..\inc\svx\brshitem.hxx %_DEST%\inc%_EXT%\svx\brshitem.hxx
..\inc\svx\camera3d.hxx %_DEST%\inc%_EXT%\svx\camera3d.hxx
..\inc\svx\charmap.hxx %_DEST%\inc%_EXT%\svx\charmap.hxx
..\inc\svx\checklbx.hxx %_DEST%\inc%_EXT%\svx\checklbx.hxx
......
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
* Copyright 2010 Novell, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include "linkwarn.hrc"
#include "svx/linkwarn.hxx"
#include "svx/dialogs.hrc"
#include "svx/dialmgr.hxx"
#include <vcl/msgbox.hxx>
#include <sfx2/basedlgs.hxx>
#include <svtools/miscopt.hxx>
SvxLinkWarningDialog::SvxLinkWarningDialog( Window* pParent, const String& _rFileName ) :
SfxModalDialog( pParent, SVX_RES( RID_SVXDLG_LINK_WARNING ) ),
m_aQueryImage ( this, SVX_RES( FI_QUERY ) ),
m_aInfoText ( this, SVX_RES( FT_INFOTEXT ) ),
m_aLinkGraphicBtn ( this, SVX_RES( PB_OK ) ),
m_aEmbedGraphicBtn ( this, SVX_RES( PB_NO ) ),
m_aOptionLine ( this, SVX_RES( FL_OPTION ) ),
m_aWarningOnBox ( this, SVX_RES( CB_WARNING_OFF ) )
{
FreeResource();
// set questionmark image
m_aQueryImage.SetImage( QueryBox::GetStandardImage() );
// replace filename
String sInfoText = m_aInfoText.GetText();
sInfoText.SearchAndReplaceAll(
UniString::CreateFromAscii(
RTL_CONSTASCII_STRINGPARAM( "%FILENAME" ) ), _rFileName );
m_aInfoText.SetText( sInfoText );
// load state of "warning on" checkbox from misc options
SvtMiscOptions aMiscOpt;
m_aWarningOnBox.Check( aMiscOpt.ShowLinkWarningDialog() == sal_True );
if( aMiscOpt.IsShowLinkWarningDialogReadOnly() )
m_aWarningOnBox.Disable();
// set focus to Cancel button
m_aEmbedGraphicBtn.GrabFocus();
// calculate and set the size of the dialog and its controls
InitSize();
}
// -----------------------------------------------------------------------
SvxLinkWarningDialog::~SvxLinkWarningDialog()
{
// save value of "warning off" checkbox, if necessary
SvtMiscOptions aMiscOpt;
sal_Bool bChecked = m_aWarningOnBox.IsChecked();
if ( aMiscOpt.ShowLinkWarningDialog() != bChecked )
aMiscOpt.SetShowLinkWarningDialog( bChecked );
}
// -----------------------------------------------------------------------
void SvxLinkWarningDialog::InitSize()
{
// text of checkbox to wide -> add new line
long nTxtW = m_aWarningOnBox.GetCtrlTextWidth( m_aWarningOnBox.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH;
long nCtrlW = m_aWarningOnBox.GetSizePixel().Width();
if ( nTxtW >= nCtrlW )
{
long nTextHeight = m_aWarningOnBox.GetTextHeight();
Size aNewSize = m_aWarningOnBox.GetSizePixel();
aNewSize.Height() += nTextHeight;
m_aWarningOnBox.SetSizePixel( aNewSize );
aNewSize = GetSizePixel();
aNewSize.Height() += nTextHeight;
SetSizePixel( aNewSize );
}
// align the size of the information text control (FixedText) to its content
Size aMinSize = m_aInfoText.CalcMinimumSize( m_aInfoText.GetSizePixel().Width() );
long nTxtH = aMinSize.Height();
long nCtrlH = m_aInfoText.GetSizePixel().Height();
long nDelta = ( nCtrlH - nTxtH );
Size aNewSize = m_aInfoText.GetSizePixel();
aNewSize.Height() -= nDelta;
m_aInfoText.SetSizePixel( aNewSize );
// new position for the succeeding windows
Window* pWins[] =
{
&m_aLinkGraphicBtn, &m_aEmbedGraphicBtn, &m_aOptionLine, &m_aWarningOnBox
};
Window** pCurrent = pWins;
for ( sal_uInt32 i = 0; i < sizeof(pWins) / sizeof(*pWins); ++i, ++pCurrent )
{
Point aNewPos = (*pCurrent)->GetPosPixel();
aNewPos.Y() -= nDelta;
(*pCurrent)->SetPosPixel( aNewPos );
}
// new size of the dialog
aNewSize = GetSizePixel();
aNewSize.Height() -= nDelta;
SetSizePixel( aNewSize );
// recalculate the size and position of the buttons
nTxtW = m_aLinkGraphicBtn.GetCtrlTextWidth( m_aLinkGraphicBtn.GetText() );
long nTemp = m_aEmbedGraphicBtn.GetCtrlTextWidth( m_aEmbedGraphicBtn.GetText() );
if ( nTemp > nTxtW )
nTxtW = nTemp;
nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
Size a3Size = LogicToPixel( Size( 3, 3 ), MAP_APPFONT );
Point aPos = m_aLinkGraphicBtn.GetPosPixel();
aPos.X() = ( aNewSize.Width() - (2*nTxtW) - a3Size.Width() ) / 2;
long nDefX = m_aWarningOnBox.GetPosPixel().X();
if ( nDefX < aPos.X() )
aPos.X() = nDefX;
aNewSize = m_aLinkGraphicBtn.GetSizePixel();
aNewSize.Width() = nTxtW;
m_aLinkGraphicBtn.SetPosSizePixel( aPos, aNewSize );
aPos.X() += nTxtW + a3Size.Width();
m_aEmbedGraphicBtn.SetPosSizePixel( aPos, aNewSize );
}
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
* Copyright 2010 Novell, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVX_LINKWARN_HRC
#define _SVX_LINKWARN_HRC
#include <svtools/controldims.hrc>
// dialog ids
#define FI_QUERY 10
#define FT_INFOTEXT 11
#define PB_OK 12
#define PB_NO 13
#define FL_OPTION 15
#define CB_WARNING_OFF 16
// --------- general metrics ---------
#define SYMBOL_EDGE 20
#define DIALOG_WIDTH 220
#define INFO_TEXT_LINES 11
#define AW_COL_1 (RSC_SP_DLG_INNERBORDER_LEFT)
#define AW_COL_2 (AW_COL_1+SYMBOL_EDGE+RSC_SP_CTRL_DESC_X)
#define AW_COL_3 (AW_COL_2+RSC_CD_PUSHBUTTON_WIDTH+RSC_SP_CTRL_DESC_X)
#define AW_COL_4 (DIALOG_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT-RSC_CD_PUSHBUTTON_WIDTH)
#define AW_ROW_1 (RSC_SP_DLG_INNERBORDER_TOP)
#define AW_ROW_2 (AW_ROW_1+INFO_TEXT_LINES*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_Y)
#define AW_ROW_3 (AW_ROW_2+RSC_CD_PUSHBUTTON_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define AW_ROW_4 (AW_ROW_3+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define DIALOG_HEIGHT (AW_ROW_4+RSC_CD_CHECKBOX_HEIGHT+RSC_SP_DLG_INNERBORDER_BOTTOM)
#endif
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
* Copyright 2010 Novell, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#include "linkwarn.hrc"
#include "svx/dialogs.hrc"
#include "helpid.hrc"
ModalDialog RID_SVXDLG_LINK_WARNING
{
Size = MAP_APPFONT( DIALOG_WIDTH, DIALOG_HEIGHT );
OutputSize = TRUE;
Closeable = FALSE;
Moveable = TRUE;
SVLook = TRUE;
Text = "%PRODUCTNAME %PRODUCTVERSION %PRODUCTEXTENSION";
FixedImage FI_QUERY
{
Pos = MAP_APPFONT( AW_COL_1, AW_ROW_1 );
Size = MAP_APPFONT( SYMBOL_EDGE, SYMBOL_EDGE );
};
FixedText FT_INFOTEXT
{
Pos = MAP_APPFONT( AW_COL_2, AW_ROW_1 );
Size = MAP_APPFONT( DIALOG_WIDTH-AW_COL_2-RSC_SP_DLG_INNERBORDER_RIGHT, INFO_TEXT_LINES*RSC_CD_FIXEDTEXT_HEIGHT );
NoLabel = TRUE;
Wordbreak = TRUE;
Text [ en-US ] = "The file %FILENAME will not be stored along with your document, but only referenced as a link. This is dangerous if you move and/or rename the files. Do you want to embed the graphic instead?";
Text [ de-DE ] = "Die Datei %FILENAME wird nicht zusammen mit dem Dokument gespeichert, sondern nur als Verweis referenziert. Dies kann zu Problemen führen, wenn die Dateien verschoben und/oder umbenannt werden. Möchten Sie stattdessen die Grafik als eingebettetes Objekt einfügen?";
};
OKButton PB_OK
{
Pos = MAP_APPFONT( AW_COL_2, AW_ROW_2 );
Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
DefButton = TRUE ;
Text [ en-US ] = "~Keep Link";
Text [ de-DE ] = "~Als Verweis einfügen";
};
CancelButton PB_NO
{
Pos = MAP_APPFONT( AW_COL_3, AW_ROW_2 );
Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
Text [ en-US ] = "~Embed Graphic";
Text [ de-DE ] = "~Eingebettet einfügen";
};
FixedLine FL_OPTION
{
Pos = MAP_APPFONT( 0, AW_ROW_3 );
Size = MAP_APPFONT( DIALOG_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
};
CheckBox CB_WARNING_OFF
{
Pos = MAP_APPFONT( AW_COL_2, AW_ROW_4 );
Size = MAP_APPFONT( DIALOG_WIDTH-AW_COL_2-RSC_SP_DLG_INNERBORDER_RIGHT, RSC_CD_CHECKBOX_HEIGHT );
WordBreak = TRUE ;
Text [ en-US ] = "~Ask when linking a graphic";
Text [ de-DE ] = "~Nachfragen falls Grafik als Verweis eingefügt wird";
};
};
......@@ -56,6 +56,7 @@ SRC1FILES = \
imapdlg.src \
langbox.src \
language.src \
linkwarn.src \
passwd.src \
prtqry.src \
rubydialog.src\
......@@ -108,6 +109,7 @@ LIB2OBJFILES= \
$(SLO)$/hyprlink.obj \
$(SLO)$/imapdlg.obj \
$(SLO)$/imapwnd.obj \
$(SLO)$/linkwarn.obj \
$(SLO)$/measctrl.obj \
$(SLO)$/orienthelper.obj \
$(SLO)$/pagectrl.obj \
......
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