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