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