blob: cdf87d2c94677c3130ffd996db70adde67e3c141 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
#define __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
#ifndef __com_sun_star_form_component_DatabaseRadioButton_idl__
#include <com/sun/star/form/component/DatabaseRadioButton.idl>
#endif
#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
#endif
//=============================================================================
module com { module sun { module star { module form { module binding {
//=============================================================================
/** This service specifies a radio button which is data-aware and thus can be bound to a
database field, and additionally supports binding to arbitrary external values.
<p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
can be associated with a <type>BindableDatabaseRadioButton</type> must support exchanging
boolean values. The following mapping between external values and control states apply:
<ul><li><TRUE/> will be mapped to the button being checked, and vice versa</li>
<li><FALSE/> will be mapped to it being unchecked, and vice versa</li>
<li><NULL/> will be mapped to it being in indetermined state</li>
</ul></p>
<p>If the value binding associated with a <type>BindableDatabaseRadioButton</type>
supports exchanging string values, <em>and</em> the <member scope="com::sun::star::form::component">RadioButton::RefValue</member>
is <em>not</em> empty, then the radio button will exchange it's value as string:
<ul><li>A string equal to the reference value will be mapped to the button being checked, and vice versa</li>
<li>A string not equal to the reference value will be mapped to the button being unchecked, and vice versa</li>
<li><NULL/> will be mapped to it being in indetermined state</li>
</ul></p>
@see com::sun::star::form::binding::XValueBinding::supportsType
@see com::sun::star::awt::UnoControlRadioButtonModel::State
@see com::sun::star::form::component::RadioButton::RefValue
*/
service BindableDatabaseRadioButton
{
service com::sun::star::form::component::DatabaseRadioButton;
/** specifies the interaction between an internal binding to a database column,
and an external value binding.</p>
*/
service com::sun::star::form::binding::BindableDataAwareControlModel;
/** specifies a value which is to be associated with the control when it's <em>not</em>
selected.
<p><member scope="com::sun::star::form::component">RadioButton::RefValue</member> is transferred to
possible external value bindings as soon as the radio button is selected. With the member
<member>SecondaryRefValue</member>, clients of the radio button can also associate a value with
the <em>not selected</em> state of the control.</p>
*/
[property] string SecondaryRefValue;
};
//=============================================================================
}; }; }; }; };
#endif