1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: vbaradiobutton.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #include "vbaradiobutton.hxx"
33 using namespace com::sun::star
;
34 using namespace ooo::vba
;
37 const static rtl::OUString
LABEL( RTL_CONSTASCII_USTRINGPARAM("Label") );
38 const static rtl::OUString
STATE( RTL_CONSTASCII_USTRINGPARAM("State") );
39 ScVbaRadioButton::ScVbaRadioButton( const uno::Reference
< XHelperInterface
>& xParent
, const uno::Reference
< uno::XComponentContext
>& xContext
, const uno::Reference
< uno::XInterface
>& xControl
, const uno::Reference
< frame::XModel
>& xModel
, AbstractGeometryAttributes
* pGeomHelper
) : RadioButtonImpl_BASE( xParent
, xContext
, xControl
, xModel
, pGeomHelper
)
44 rtl::OUString SAL_CALL
45 ScVbaRadioButton::getCaption() throw (css::uno::RuntimeException
)
48 m_xProps
->getPropertyValue( LABEL
) >>= Label
;
53 ScVbaRadioButton::setCaption( const rtl::OUString
& _caption
) throw (::com::sun::star::uno::RuntimeException
)
55 m_xProps
->setPropertyValue( LABEL
, uno::makeAny( _caption
) );
59 ScVbaRadioButton::getValue() throw (css::uno::RuntimeException
)
61 sal_Int16 nValue
= -1;
62 m_xProps
->getPropertyValue( STATE
) >>= nValue
;
65 // return uno::makeAny( nValue );
66 // I must be missing something MSO says value should be -1 if selected, 0 if not
68 return uno::makeAny( ( nValue
== -1 ) ? sal_True
: sal_False
);
73 ScVbaRadioButton::setValue( const uno::Any
& _value
) throw (uno::RuntimeException
)
76 sal_Bool bValue
= sal_False
;
77 if( _value
>>= nValue
)
82 else if ( _value
>>= bValue
)
87 m_xProps
->setPropertyValue( STATE
, uno::makeAny( nValue
) );
91 ScVbaRadioButton::getServiceImplName()
93 static rtl::OUString
sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaRadioButton") );
97 uno::Sequence
< rtl::OUString
>
98 ScVbaRadioButton::getServiceNames()
100 static uno::Sequence
< rtl::OUString
> aServiceNames
;
101 if ( aServiceNames
.getLength() == 0 )
103 aServiceNames
.realloc( 1 );
104 aServiceNames
[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.msforms.RadioButton" ) );
106 return aServiceNames
;