xref: /trunk/main/cui/source/inc/dlgname.hxx (revision c4eee24d)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _SVX_DLG_NAME_HXX
24 #define _SVX_DLG_NAME_HXX
25 
26 
27 #ifndef _EDIT_HXX //autogen
28 #include <vcl/edit.hxx>
29 #endif
30 #ifndef _BUTTON_HXX //autogen
31 #include <vcl/button.hxx>
32 #endif
33 #ifndef _FIXED_HXX //autogen
34 #include <vcl/fixed.hxx>
35 #endif
36 #ifndef _DIALOG_HXX //autogen
37 #include <vcl/dialog.hxx>
38 #endif
39 #include <vcl/fixed.hxx>
40 
41 // #i68101#
42 #include <svtools/svmedit.hxx>
43 
44 /*************************************************************************
45 |*
46 |* Dialog zum Editieren eines Namens
47 |*
48 \************************************************************************/
49 class SvxNameDialog : public ModalDialog
50 {
51 private:
52 	FixedText		aFtDescription;
53 	Edit			aEdtName;
54 	OKButton		aBtnOK;
55 	CancelButton	aBtnCancel;
56 	HelpButton		aBtnHelp;
57 
58     Link            aCheckNameHdl;
59 #if _SOLAR__PRIVATE
60     DECL_LINK(ModifyHdl, Edit*);
61 #endif
62 
63 public:
64 	SvxNameDialog( Window* pWindow, const String& rName, const String& rDesc );
65 
66     void    GetName( String& rName ){rName = aEdtName.GetText();}
67 
68     /** add a callback Link that is called whenever the content of the edit
69         field is changed.  The Link result determines wether the OK
70         Button is enabled (> 0) or disabled (== 0).
71 
72         @param rLink a Callback declared with DECL_LINK and implemented with
73                IMPL_LINK, that is executed on modification.
74 
75         @param bCheckImmediately If true, the Link is called directly after
76                setting it. It is recommended to set this flag to true to avoid
77                an inconsistent state if the initial String (given in the CTOR)
78                does not satisfy the check condition.
79 
80         @todo Remove the parameter bCheckImmediately and incorporate the 'true'
81               behaviour as default.
82      */
83     void    SetCheckNameHdl( const Link& rLink, bool bCheckImmediately = false )
84     {
85         aCheckNameHdl = rLink;
86         if ( bCheckImmediately )
87             aBtnOK.Enable( rLink.Call( this ) > 0 );
88     }
89 
90     void    SetEditHelpId( const rtl::OString& aHelpId) {aEdtName.SetHelpId(aHelpId);}
91 };
92 
93 ///////////////////////////////////////////////////////////////////////////////////////////////
94 // #i68101#
95 // Dialog for editing Object Title and Description
96 // plus uniqueness-callback-linkHandler
97 
98 class SvxObjectNameDialog : public ModalDialog
99 {
100 private:
101 	// name
102 	FixedText		aFtName;
103 	Edit			aEdtName;
104 
105 	// separator
106 	FixedLine		aFlSeparator;
107 
108 	// buttons
109 	HelpButton		aBtnHelp;
110 	OKButton		aBtnOK;
111 	CancelButton	aBtnCancel;
112 
113 	// callback link for name uniqueness
114     Link            aCheckNameHdl;
115 #if _SOLAR__PRIVATE
116     DECL_LINK(ModifyHdl, Edit*);
117 #endif
118 
119 public:
120 	// constructor
121 	SvxObjectNameDialog(Window* pWindow, const String& rName);
122 
123 	// data access
124     void GetName(String& rName) {rName = aEdtName.GetText(); }
125 
126 	// set handler
127     void SetCheckNameHdl(const Link& rLink, bool bCheckImmediately = false)
128     {
129         aCheckNameHdl = rLink;
130 
131 		if(bCheckImmediately)
132 		{
133             aBtnOK.Enable(rLink.Call(this) > 0);
134 		}
135     }
136 };
137 
138 ///////////////////////////////////////////////////////////////////////////////////////////////
139 // #i68101#
140 // Dialog for editing Object Title and Description
141 
142 class SvxObjectTitleDescDialog : public ModalDialog
143 {
144 private:
145 	// title
146 	FixedText		aFtTitle;
147 	Edit			aEdtTitle;
148 
149 	// description
150 	FixedText		aFtDescription;
151 	MultiLineEdit	aEdtDescription;
152 
153 	// separator
154 	FixedLine		aFlSeparator;
155 
156 	// buttons
157 	HelpButton		aBtnHelp;
158 	OKButton		aBtnOK;
159 	CancelButton	aBtnCancel;
160 
161 public:
162 	// constructor
163 	SvxObjectTitleDescDialog(Window* pWindow, const String& rTitle, const String& rDesc);
164 
165 	// data access
166     void GetTitle(String& rTitle) {rTitle = aEdtTitle.GetText(); }
167     void GetDescription(String& rDescription) {rDescription = aEdtDescription.GetText(); }
168 };
169 
170 ///////////////////////////////////////////////////////////////////////////////////////////////
171 
172 /*************************************************************************
173 |*
174 |* Dialog zum Abbrechen, Speichern oder Hinzufuegen
175 |*
176 \************************************************************************/
177 class SvxMessDialog : public ModalDialog
178 {
179 private:
180 	FixedText		aFtDescription;
181 	PushButton		aBtn1;
182 	PushButton		aBtn2;
183 	CancelButton	aBtnCancel;
184 	FixedImage		aFtImage;
185 	Image*			pImage;
186 #if _SOLAR__PRIVATE
187 	DECL_LINK( Button1Hdl, Button * );
188 	DECL_LINK( Button2Hdl, Button * );
189 #endif
190 public:
191 	SvxMessDialog( Window* pWindow, const String& rText, const String& rDesc, Image* pImg = NULL );
192 	~SvxMessDialog();
193 
194 	void	SetButtonText( sal_uInt16 nBtnId, const String& rNewTxt );
195 };
196 
197 
198 
199 #endif // _SVX_DLG_NAME_HXX
200 
201