blob: 81dffbc262d07c2f10d74d5e5d6d3fa932210c53 [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_BindableDatabaseCheckBox_idl__
#define __com_sun_star_form_binding_BindableDatabaseCheckBox_idl__
#ifndef __com_sun_star_form_component_DatabaseCheckBox_idl__
#include <com/sun/star/form/component/DatabaseCheckBox.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 check box 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>BindableDatabaseCheckBox</type> must support exchanging
boolean values. The following mapping between external values and control states apply:
<ul><li><TRUE/> will be mapped to the box 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, if the box currently supports
this, or being unchecked else. The indetermined of the check box will always be
mapped to <NULL/> when writing the external value.</li>
</ul></p>
<p>If the value binding associated with a <type>BindableDatabaseCheckBox</type>
supports exchanging string values, <em>and</em> the <member scope="com::sun::star::form::component">CheckBox::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::UnoControlCheckBoxModel::State
@see com::sun::star::awt::UnoControlCheckBoxModel::TriState
@see com::sun::star::form::component::CheckBox::RefValue
*/
service BindableDatabaseCheckBox
{
service com::sun::star::form::component::DatabaseCheckBox;
/** 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>
checked.
<p><member scope="com::sun::star::form::component">CheckBox::RefValue</member> is transferred to
possible external value bindings as soon as the check box is checked. With the member
<member>SecondaryRefValue</member>, clients of the check box can also associate a value with
the <em>not checked</em> state of the control.</p>
*/
[property] string SecondaryRefValue;
};
//=============================================================================
}; }; }; }; };
#endif