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
24#ifndef __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
25#define __com_sun_star_form_binding_BindableDatabaseRadioButton_idl__
26
27#ifndef __com_sun_star_form_component_DatabaseRadioButton_idl__
28#include <com/sun/star/form/component/DatabaseRadioButton.idl>
29#endif
30
31#ifndef __com_sun_star_form_binding_BindableDataAwareControlModel_idl__
32#include <com/sun/star/form/binding/BindableDataAwareControlModel.idl>
33#endif
34
35//=============================================================================
36
37module com {  module sun {  module star {  module form {  module binding {
38
39//=============================================================================
40
41/** This service specifies a radio button which is data-aware and thus can be bound to a
42    database field, and additionally supports binding to arbitrary external values.
43
44    <p>The <type scope="com::sun::star::form::binding">XValueBinding</type> instance which
45    can be associated with a <type>BindableDatabaseRadioButton</type> must support exchanging
46    boolean values. The following mapping between external values and control states apply:
47    <ul><li><TRUE/> will be mapped to the button being checked, and vice versa</li>
48        <li><FALSE/> will be mapped to it being unchecked, and vice versa</li>
49        <li><NULL/> will be mapped to it being in indetermined state</li>
50    </ul></p>
51
52    <p>If the value binding associated with a <type>BindableDatabaseRadioButton</type>
53    supports exchanging string values, <em>and</em> the <member scope="com::sun::star::form::component">RadioButton::RefValue</member>
54    is <em>not</em> empty, then the radio button will exchange it's value as string:
55    <ul><li>A string equal to the reference value will be mapped to the button being checked, and vice versa</li>
56        <li>A string not equal to the reference value will be mapped to the button being unchecked, and vice versa</li>
57        <li><NULL/> will be mapped to it being in indetermined state</li>
58    </ul></p>
59
60    @see com::sun::star::form::binding::XValueBinding::supportsType
61    @see com::sun::star::awt::UnoControlRadioButtonModel::State
62    @see com::sun::star::form::component::RadioButton::RefValue
63 */
64service BindableDatabaseRadioButton
65{
66	service com::sun::star::form::component::DatabaseRadioButton;
67
68    /** specifies the interaction between an internal binding to a database column,
69        and an external value binding.</p>
70    */
71    service com::sun::star::form::binding::BindableDataAwareControlModel;
72
73    /** specifies a value which is to be associated with the control when it's <em>not</em>
74        selected.
75
76        <p><member scope="com::sun::star::form::component">RadioButton::RefValue</member> is transferred to
77        possible external value bindings as soon as the radio button is selected. With the member
78        <member>SecondaryRefValue</member>, clients of the radio button can also associate a value with
79        the <em>not selected</em> state of the control.</p>
80    */
81    [property] string SecondaryRefValue;
82};
83
84//=============================================================================
85
86}; }; }; }; };
87
88#endif
89