1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 #ifndef _SVX_DLG_NAME_HXX 28 #define _SVX_DLG_NAME_HXX 29 30 31 #ifndef _EDIT_HXX //autogen 32 #include <vcl/edit.hxx> 33 #endif 34 #ifndef _BUTTON_HXX //autogen 35 #include <vcl/button.hxx> 36 #endif 37 #ifndef _FIXED_HXX //autogen 38 #include <vcl/fixed.hxx> 39 #endif 40 #ifndef _DIALOG_HXX //autogen 41 #include <vcl/dialog.hxx> 42 #endif 43 #include <vcl/fixed.hxx> 44 45 // #i68101# 46 #include <svtools/svmedit.hxx> 47 48 /************************************************************************* 49 |* 50 |* Dialog zum Editieren eines Namens 51 |* 52 \************************************************************************/ 53 class SvxNameDialog : public ModalDialog 54 { 55 private: 56 FixedText aFtDescription; 57 Edit aEdtName; 58 OKButton aBtnOK; 59 CancelButton aBtnCancel; 60 HelpButton aBtnHelp; 61 62 Link aCheckNameHdl; 63 #if _SOLAR__PRIVATE 64 DECL_LINK(ModifyHdl, Edit*); 65 #endif 66 67 public: 68 SvxNameDialog( Window* pWindow, const String& rName, const String& rDesc ); 69 70 void GetName( String& rName ){rName = aEdtName.GetText();} 71 72 /** add a callback Link that is called whenever the content of the edit 73 field is changed. The Link result determines wether the OK 74 Button is enabled (> 0) or disabled (== 0). 75 76 @param rLink a Callback declared with DECL_LINK and implemented with 77 IMPL_LINK, that is executed on modification. 78 79 @param bCheckImmediately If true, the Link is called directly after 80 setting it. It is recommended to set this flag to true to avoid 81 an inconsistent state if the initial String (given in the CTOR) 82 does not satisfy the check condition. 83 84 @todo Remove the parameter bCheckImmediately and incorporate the 'true' 85 behaviour as default. 86 */ 87 void SetCheckNameHdl( const Link& rLink, bool bCheckImmediately = false ) 88 { 89 aCheckNameHdl = rLink; 90 if ( bCheckImmediately ) 91 aBtnOK.Enable( rLink.Call( this ) > 0 ); 92 } 93 94 void SetEditHelpId( const rtl::OString& aHelpId) {aEdtName.SetHelpId(aHelpId);} 95 }; 96 97 /////////////////////////////////////////////////////////////////////////////////////////////// 98 // #i68101# 99 // Dialog for editing Object Title and Description 100 // plus uniqueness-callback-linkHandler 101 102 class SvxObjectNameDialog : public ModalDialog 103 { 104 private: 105 // name 106 FixedText aFtName; 107 Edit aEdtName; 108 109 // separator 110 FixedLine aFlSeparator; 111 112 // buttons 113 HelpButton aBtnHelp; 114 OKButton aBtnOK; 115 CancelButton aBtnCancel; 116 117 // callback link for name uniqueness 118 Link aCheckNameHdl; 119 #if _SOLAR__PRIVATE 120 DECL_LINK(ModifyHdl, Edit*); 121 #endif 122 123 public: 124 // constructor 125 SvxObjectNameDialog(Window* pWindow, const String& rName); 126 127 // data access 128 void GetName(String& rName) {rName = aEdtName.GetText(); } 129 130 // set handler 131 void SetCheckNameHdl(const Link& rLink, bool bCheckImmediately = false) 132 { 133 aCheckNameHdl = rLink; 134 135 if(bCheckImmediately) 136 { 137 aBtnOK.Enable(rLink.Call(this) > 0); 138 } 139 } 140 }; 141 142 /////////////////////////////////////////////////////////////////////////////////////////////// 143 // #i68101# 144 // Dialog for editing Object Title and Description 145 146 class SvxObjectTitleDescDialog : public ModalDialog 147 { 148 private: 149 // title 150 FixedText aFtTitle; 151 Edit aEdtTitle; 152 153 // description 154 FixedText aFtDescription; 155 MultiLineEdit aEdtDescription; 156 157 // separator 158 FixedLine aFlSeparator; 159 160 // buttons 161 HelpButton aBtnHelp; 162 OKButton aBtnOK; 163 CancelButton aBtnCancel; 164 165 public: 166 // constructor 167 SvxObjectTitleDescDialog(Window* pWindow, const String& rTitle, const String& rDesc); 168 169 // data access 170 void GetTitle(String& rTitle) {rTitle = aEdtTitle.GetText(); } 171 void GetDescription(String& rDescription) {rDescription = aEdtDescription.GetText(); } 172 }; 173 174 /////////////////////////////////////////////////////////////////////////////////////////////// 175 176 /************************************************************************* 177 |* 178 |* Dialog zum Abbrechen, Speichern oder Hinzufuegen 179 |* 180 \************************************************************************/ 181 class SvxMessDialog : public ModalDialog 182 { 183 private: 184 FixedText aFtDescription; 185 PushButton aBtn1; 186 PushButton aBtn2; 187 CancelButton aBtnCancel; 188 FixedImage aFtImage; 189 Image* pImage; 190 #if _SOLAR__PRIVATE 191 DECL_LINK( Button1Hdl, Button * ); 192 DECL_LINK( Button2Hdl, Button * ); 193 #endif 194 public: 195 SvxMessDialog( Window* pWindow, const String& rText, const String& rDesc, Image* pImg = NULL ); 196 ~SvxMessDialog(); 197 198 void SetButtonText( sal_uInt16 nBtnId, const String& rNewTxt ); 199 }; 200 201 202 203 #endif // _SVX_DLG_NAME_HXX 204 205