xref: /aoo4110/main/sw/inc/flddropdown.hxx (revision b1cdbd2c)
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 SW_FLDDROPDOWN_HXX
24 #define SW_FLDDROPDOWN_HXX
25 
26 #include "com/sun/star/uno/Sequence.hxx"
27 #include "swdllapi.h"
28 #include "fldbas.hxx"
29 
30 #include <vector>
31 
32 /**
33     Field type for dropdown boxes.
34 */
35 class SwDropDownFieldType : public SwFieldType
36 {
37 public:
38     /**
39        Constructor
40     */
41     SwDropDownFieldType();
42 
43     /**
44        Destructor
45     */
46     virtual ~SwDropDownFieldType();
47 
48     /**
49        Create a copy of this field type.
50 
51        @return a copy of this type
52     */
53     virtual SwFieldType * Copy () const;
54 };
55 
56 /**
57    Dropdown field.
58 
59    The dropdown field contains a list of strings. At most one of them
60    can be selected.
61 */
62 class SW_DLLPUBLIC SwDropDownField : public SwField
63 {
64     /**
65        the possible values (aka items) of the dropdown box
66     */
67     std::vector<String> aValues;
68 
69     /**
70       the selected item
71     */
72     String aSelectedItem;
73 
74     /**
75       the name of the field
76     */
77     String aName;
78 
79     /**
80        help text
81      */
82     String aHelp;
83 
84     /**
85        tool tip string
86      */
87     String aToolTip;
88 
89     /**
90        Expands the field.
91 
92        The expanded value of the field is the value of the selected
93        item. If no item is selected, an empty string is returned.
94 
95        @return the expanded value of the field
96     */
97     virtual String Expand() const;
98 
99     /**
100        Creates a copy of this field.
101 
102        @return the copy of this field
103     */
104     virtual SwField * Copy() const;
105 
106 public:
107     /**
108        Constructor
109 
110        @param pTyp field type for this field
111     */
112     SwDropDownField(SwFieldType * pTyp);
113 
114     /**
115        Copy constructor
116 
117        @param rSrc dropdown field to copy
118     */
119     SwDropDownField(const SwDropDownField & rSrc);
120 
121     /**
122        Destructor
123     */
124     virtual ~SwDropDownField();
125 
126     /**
127        Returns the selected value.
128 
129        @see Expand
130 
131        @return the selected value
132     */
133     virtual const String & GetPar1() const;
134 
135     /**
136        Returns the name of the field.
137 
138        @return the name of the field
139     */
140     virtual String GetPar2() const;
141 
142     /**
143        Sets the selected value.
144 
145        If rStr is an item of the field that item will be
146        selected. Otherwise no item will be selected, i.e. the
147        resulting selection will be empty.
148     */
149     virtual void SetPar1(const String & rStr);
150 
151     /**
152        Sets the name of the field.
153 
154        @param rStr the new name of the field
155     */
156     virtual void SetPar2(const String & rStr);
157 
158     /**
159        Sets the items of the dropdown box.
160 
161        After setting the items the selection will be empty.
162 
163        @param rItems the new items
164     */
165     void SetItems(const std::vector<String> & rItems);
166 
167     /**
168        Sets the items of the dropdown box.
169 
170        After setting the items the selection will be empty.
171 
172        @param rItems the new items
173     */
174     void SetItems(const com::sun::star::uno::Sequence<rtl::OUString> & rItems);
175 
176     /**
177         Returns the items of the dropdown box.
178 
179         @return the items of the dropdown box
180     */
181     com::sun::star::uno::Sequence<rtl::OUString> GetItemSequence() const;
182 
183     /**
184        Returns the selected item.
185 
186        @return the selected item
187     */
188     const String & GetSelectedItem() const;
189 
190     /**
191        Returns the name of the field.
192 
193        @return the name of the field
194     */
195     const String & GetName() const;
196 
197     /**
198        Returns the help text of the field.
199 
200        @return the help text of the field
201     */
202     const String & GetHelp() const;
203 
204     /**
205        Returns the tool tip of the field.
206 
207        @return the tool tip of the field
208      */
209     const String & GetToolTip() const;
210 
211     /**
212        Sets the selected item.
213 
214        If rItem is found in this dropdown field it is selected. If
215        rItem is not found the selection will be empty.
216 
217        @param rItem the item to be set
218 
219        @retval sal_True the selected item was successfully set
220        @retval sal_True failure (empty selection)
221     */
222     sal_Bool SetSelectedItem(const String & rItem);
223 
224     /**
225        Sets the name of the field.
226 
227        @param rName the new name of the field
228     */
229     void SetName(const String & rName);
230 
231     /**
232        Sets the help text of the field.
233 
234        @param rHelp    the help text
235     */
236     void SetHelp(const String & rHelp);
237 
238     /**
239        Sets the tool tip of the field.
240 
241        @param rToolTip  the tool tip
242     */
243     void SetToolTip(const String & rToolTip);
244 
245     /**
246        API: Gets a property value from the dropdown field.
247 
248        @param rVal return value
249        @param nMId
250           - FIELD_PROP_PAR1 Get selected item (String)
251           - FIELD_PROP_STRINGS Get all items (Sequence)
252           - FIELD_PROP_PAR3 Get the help text of the field.
253           - FIELD_PROP_PAR4 Get the tool tip of the field.
254     */
255     virtual sal_Bool QueryValue(com::sun::star::uno::Any &rVal, sal_uInt16 nWhichId) const;
256 
257     /**
258        API: Sets a property value on the dropdown field.
259 
260        @param rVal value to set
261        @param nMId
262           - FIELD_PROP_PAR1 Set selected item (String)
263           - FIELD_PROP_STRINGS Set all items (Sequence)
264           - FIELD_PROP_PAR3  Set the help text of the field.
265           - FIELD_PROP_PAR4  Set the tool tip of the field.
266     */
267         virtual sal_Bool PutValue(const com::sun::star::uno::Any &rVal, sal_uInt16 nWhichId);
268 };
269 
270 #endif
271