xref: /trunk/main/cui/source/inc/dlgname.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
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