From d32b3a714fe55892bdead03502c5a9b0e77fa61d Mon Sep 17 00:00:00 2001 From: Mathias Bauer Date: Sat, 31 Oct 2009 00:36:06 +0100 Subject: #i106421#: move svx/source/cui to cui --- cui/source/dialogs/dlgname.cxx | 239 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 cui/source/dialogs/dlgname.cxx (limited to 'cui/source/dialogs/dlgname.cxx') diff --git a/cui/source/dialogs/dlgname.cxx b/cui/source/dialogs/dlgname.cxx new file mode 100644 index 000000000000..12b58542f605 --- /dev/null +++ b/cui/source/dialogs/dlgname.cxx @@ -0,0 +1,239 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: dlgname.cxx,v $ + * $Revision: 1.13 $ + * + * 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 + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_cui.hxx" + +#include +#include +#include +#include +#include + +#include + +#include "dlgname.hxx" +#include "defdlgname.hxx" //CHINA001 +#include "dlgname.hrc" +#include + +#define MAX_DESCRIPTION_LINES ((long)5) + +/************************************************************************* +|* +|* Dialog zum Editieren eines Namens +|* +\************************************************************************/ + +SvxNameDialog::SvxNameDialog( Window* pWindow, const String& rName, const String& rDesc ) : + ModalDialog ( pWindow, SVX_RES( RID_SVXDLG_NAME ) ), + aFtDescription ( this, SVX_RES( FT_DESCRIPTION ) ), + aEdtName ( this, SVX_RES( EDT_STRING ) ), + aBtnOK ( this, SVX_RES( BTN_OK ) ), + aBtnCancel ( this, SVX_RES( BTN_CANCEL ) ), + aBtnHelp ( this, SVX_RES( BTN_HELP ) ) +{ + FreeResource(); + + aFtDescription.SetText( rDesc ); + aEdtName.SetText( rName ); + aEdtName.SetSelection(Selection(SELECTION_MIN, SELECTION_MAX)); + ModifyHdl(&aEdtName); + aEdtName.SetModifyHdl(LINK(this, SvxNameDialog, ModifyHdl)); + + // dynamic height of the description field + Size aSize = aFtDescription.GetSizePixel(); + long nTxtWidth = aFtDescription.GetCtrlTextWidth( rDesc ); + if ( nTxtWidth > aSize.Width() ) + { + long nLines = Min( ( nTxtWidth / aSize.Width() + 1 ), MAX_DESCRIPTION_LINES ); + long nHeight = aSize.Height(); + aSize.Height() = nHeight * nLines; + aFtDescription.SetSizePixel( aSize ); + Point aPnt = aEdtName.GetPosPixel(); + aPnt.Y() += ( aSize.Height() - nHeight ); + aEdtName.SetPosPixel( aPnt ); + } +} + +/* -----------------------------27.02.2002 15:22------------------------------ + + ---------------------------------------------------------------------------*/ +IMPL_LINK(SvxNameDialog, ModifyHdl, Edit*, EMPTYARG) +{ + if(aCheckNameHdl.IsSet()) + aBtnOK.Enable(aCheckNameHdl.Call(this) > 0); + return 0; +} + +/////////////////////////////////////////////////////////////////////////////////////////////// +// #i68101# +// Dialog for editing Object Name +// plus uniqueness-callback-linkHandler + +SvxObjectNameDialog::SvxObjectNameDialog( + Window* pWindow, + const String& rName) +: ModalDialog(pWindow, SVX_RES(RID_SVXDLG_OBJECT_NAME)), + aFtName(this, SVX_RES(NTD_FT_NAME)), + aEdtName(this, SVX_RES(NTD_EDT_NAME)), + aFlSeparator(this, SVX_RES(FL_SEPARATOR_A)), + aBtnHelp(this, SVX_RES(BTN_HELP)), + aBtnOK(this, SVX_RES(BTN_OK)), + aBtnCancel(this, SVX_RES(BTN_CANCEL)) +{ + FreeResource(); + + // set name + aEdtName.SetText(rName); + + // activate name + aEdtName.SetSelection(Selection(SELECTION_MIN, SELECTION_MAX)); + ModifyHdl(&aEdtName); + aEdtName.SetModifyHdl(LINK(this, SvxObjectNameDialog, ModifyHdl)); +} + +IMPL_LINK(SvxObjectNameDialog, ModifyHdl, Edit*, EMPTYARG) +{ + if(aCheckNameHdl.IsSet()) + { + aBtnOK.Enable(aCheckNameHdl.Call(this) > 0); + } + + return 0; +} + +/////////////////////////////////////////////////////////////////////////////////////////////// +// #i68101# +// Dialog for editing Object Title and Description + +SvxObjectTitleDescDialog::SvxObjectTitleDescDialog( + Window* pWindow, + const String& rTitle, + const String& rDescription) +: ModalDialog(pWindow, SVX_RES(RID_SVXDLG_OBJECT_TITLE_DESC)), + aFtTitle(this, SVX_RES(NTD_FT_TITLE)), + aEdtTitle(this, SVX_RES(NTD_EDT_TITLE)), + aFtDescription(this, SVX_RES(NTD_FT_DESC)), + aEdtDescription(this, SVX_RES(NTD_EDT_DESC)), + aFlSeparator(this, SVX_RES(FL_SEPARATOR_B)), + aBtnHelp(this, SVX_RES(BTN_HELP)), + aBtnOK(this, SVX_RES(BTN_OK)), + aBtnCancel(this, SVX_RES(BTN_CANCEL)) +{ + FreeResource(); + + // set title & desc + aEdtTitle.SetText(rTitle); + aEdtDescription.SetText(rDescription); + + // activate title + aEdtTitle.SetSelection(Selection(SELECTION_MIN, SELECTION_MAX)); +} + +/////////////////////////////////////////////////////////////////////////////////////////////// + +/************************************************************************* +|* +|* Dialog zum Abbrechen, Speichern oder Hinzufuegen +|* +\************************************************************************/ + +SvxMessDialog::SvxMessDialog( Window* pWindow, const String& rText, const String& rDesc, Image* pImg ) : + ModalDialog ( pWindow, SVX_RES( RID_SVXDLG_MESSBOX ) ), + aFtDescription ( this, SVX_RES( FT_DESCRIPTION ) ), + aBtn1 ( this, SVX_RES( BTN_1 ) ), + aBtn2 ( this, SVX_RES( BTN_2 ) ), + aBtnCancel ( this, SVX_RES( BTN_CANCEL ) ), + aFtImage ( this ) +{ + FreeResource(); + + if( pImg ) + { + pImage = new Image( *pImg ); + aFtImage.SetImage( *pImage ); + aFtImage.SetStyle( ( aFtImage.GetStyle()/* | WB_NOTABSTOP */) & ~WB_3DLOOK ); + aFtImage.SetPosSizePixel( LogicToPixel( Point( 3, 6 ), MAP_APPFONT ), + aFtImage.GetImage().GetSizePixel() ); + aFtImage.Show(); + } + + SetText( rText ); + aFtDescription.SetText( rDesc ); + + aBtn1.SetClickHdl( LINK( this, SvxMessDialog, Button1Hdl ) ); + aBtn2.SetClickHdl( LINK( this, SvxMessDialog, Button2Hdl ) ); +} + +SvxMessDialog::~SvxMessDialog() +{ + if( pImage ) + delete pImage; +} + +/*************************************************************************/ + +IMPL_LINK_INLINE_START( SvxMessDialog, Button1Hdl, Button *, EMPTYARG ) +{ + EndDialog( RET_BTN_1 ); + return 0; +} +IMPL_LINK_INLINE_END( SvxMessDialog, Button1Hdl, Button *, EMPTYARG ) + +/*************************************************************************/ + +IMPL_LINK_INLINE_START( SvxMessDialog, Button2Hdl, Button *, EMPTYARG ) +{ + EndDialog( RET_BTN_2 ); + return 0; +} +IMPL_LINK_INLINE_END( SvxMessDialog, Button2Hdl, Button *, EMPTYARG ) + +/*************************************************************************/ + +void SvxMessDialog::SetButtonText( USHORT nBtnId, const String& rNewTxt ) +{ + switch ( nBtnId ) + { + case MESS_BTN_1: + aBtn1.SetText( rNewTxt ); + break; + + case MESS_BTN_2: + aBtn2.SetText( rNewTxt ); + break; + + default: + DBG_ERROR( "Falsche Button-Nummer!!!" ); + } +} + + -- cgit