summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/form/component
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /offapi/com/sun/star/form/component
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/form/component')
-rw-r--r--offapi/com/sun/star/form/component/CheckBox.idl73
-rw-r--r--offapi/com/sun/star/form/component/ComboBox.idl63
-rw-r--r--offapi/com/sun/star/form/component/CommandButton.idl106
-rw-r--r--offapi/com/sun/star/form/component/CurrencyField.idl62
-rw-r--r--offapi/com/sun/star/form/component/DataForm.idl196
-rw-r--r--offapi/com/sun/star/form/component/DatabaseCheckBox.idl51
-rw-r--r--offapi/com/sun/star/form/component/DatabaseComboBox.idl79
-rw-r--r--offapi/com/sun/star/form/component/DatabaseCurrencyField.idl46
-rw-r--r--offapi/com/sun/star/form/component/DatabaseDateField.idl46
-rw-r--r--offapi/com/sun/star/form/component/DatabaseFormattedField.idl59
-rw-r--r--offapi/com/sun/star/form/component/DatabaseImageControl.idl106
-rw-r--r--offapi/com/sun/star/form/component/DatabaseListBox.idl157
-rw-r--r--offapi/com/sun/star/form/component/DatabaseNumericField.idl46
-rw-r--r--offapi/com/sun/star/form/component/DatabasePatternField.idl60
-rw-r--r--offapi/com/sun/star/form/component/DatabaseRadioButton.idl46
-rw-r--r--offapi/com/sun/star/form/component/DatabaseTextField.idl59
-rw-r--r--offapi/com/sun/star/form/component/DatabaseTimeField.idl46
-rw-r--r--offapi/com/sun/star/form/component/DateField.idl65
-rw-r--r--offapi/com/sun/star/form/component/FileControl.idl63
-rw-r--r--offapi/com/sun/star/form/component/FixedText.idl51
-rw-r--r--offapi/com/sun/star/form/component/Form.idl70
-rw-r--r--offapi/com/sun/star/form/component/FormattedField.idl57
-rw-r--r--offapi/com/sun/star/form/component/GridControl.idl168
-rw-r--r--offapi/com/sun/star/form/component/GroupBox.idl47
-rw-r--r--offapi/com/sun/star/form/component/HTMLForm.idl84
-rw-r--r--offapi/com/sun/star/form/component/HiddenControl.idl54
-rw-r--r--offapi/com/sun/star/form/component/ImageButton.idl94
-rw-r--r--offapi/com/sun/star/form/component/ListBox.idl70
-rw-r--r--offapi/com/sun/star/form/component/NavigationToolBar.idl124
-rw-r--r--offapi/com/sun/star/form/component/NumericField.idl64
-rw-r--r--offapi/com/sun/star/form/component/PatternField.idl63
-rw-r--r--offapi/com/sun/star/form/component/RadioButton.idl95
-rw-r--r--offapi/com/sun/star/form/component/RichTextControl.idl74
-rw-r--r--offapi/com/sun/star/form/component/ScrollBar.idl60
-rw-r--r--offapi/com/sun/star/form/component/SpinButton.idl60
-rw-r--r--offapi/com/sun/star/form/component/SubmitButton.idl55
-rw-r--r--offapi/com/sun/star/form/component/TextField.idl70
-rw-r--r--offapi/com/sun/star/form/component/TimeField.idl65
38 files changed, 2854 insertions, 0 deletions
diff --git a/offapi/com/sun/star/form/component/CheckBox.idl b/offapi/com/sun/star/form/component/CheckBox.idl
new file mode 100644
index 000000000..b793bc4f0
--- /dev/null
+++ b/offapi/com/sun/star/form/component/CheckBox.idl
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_CheckBox_idl__
+#define __com_sun_star_form_component_CheckBox_idl__
+
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/awt/UnoControlCheckBoxModel.idl>
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies the model of a check box control
+
+ <p>The model supports the properties required for HTML, thus you can build up
+ HTMLForms with it</p>
+ */
+published service CheckBox
+{
+ service com::sun::star::awt::UnoControlCheckBoxModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default state.
+
+ @see CheckBox::DefaultState
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlCheckBoxModel::State
+ @see com::sun::star::form::XReset
+ */
+ [property] short DefaultState;
+
+
+ /** contains a reference value which is used for submission in a HTML
+ form
+
+ <p>When submitting a HTMLForm which contains a check box,
+ which is checked, the RefValue is used for submission.
+ */
+ [property] string RefValue;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/ComboBox.idl b/offapi/com/sun/star/form/component/ComboBox.idl
new file mode 100644
index 000000000..33c4e5e9d
--- /dev/null
+++ b/offapi/com/sun/star/form/component/ComboBox.idl
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_ComboBox_idl__
+#define __com_sun_star_form_component_ComboBox_idl__
+
+#include <com/sun/star/awt/UnoControlComboBoxModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a component which allows the input of text or selection
+ of text from a list of text values.
+ */
+published service ComboBox
+{
+ service com::sun::star::awt::UnoControlComboBoxModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default text.
+
+ @see ComboBox::DefaultText
+ */
+ interface com::sun::star::form::XReset;
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlComboBoxModel::Text
+ @see com::sun::star::form::XReset
+ */
+ [property] string DefaultText;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/CommandButton.idl b/offapi/com/sun/star/form/component/CommandButton.idl
new file mode 100644
index 000000000..451326ce6
--- /dev/null
+++ b/offapi/com/sun/star/form/component/CommandButton.idl
@@ -0,0 +1,106 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_CommandButton_idl__
+#define __com_sun_star_form_component_CommandButton_idl__
+
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/awt/UnoControlButtonModel.idl>
+#include <com/sun/star/form/XImageProducerSupplier.idl>
+#include <com/sun/star/form/XApproveActionBroadcaster.idl>
+#include <com/sun/star/form/FormButtonType.idl>
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies the control model for a clickable button which is part of a form
+ component hierarchy.
+
+ @see ImageButton
+ */
+published service CommandButton
+{
+ service com::sun::star::awt::UnoControlButtonModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** supplies the image producer when the button is to display an image.
+
+ <p>If the com::sun::star::awt::UnoControlButtonModel::ImageURL points to the location of an
+ image to be displayed on the button, this interface can be used to retrieve an image
+ producer, which itself will supply the image.</p>
+
+ <p>Usually, a control belonging to the model will use this interface to obtain the
+ image to be painted</p>
+ */
+ interface com::sun::star::form::XImageProducerSupplier;
+
+
+ /** describes the action to be executed by the button when pressed.
+ */
+ [property] com::sun::star::form::FormButtonType ButtonType;
+
+ /** describes the frame, where to open the document specified by the TargetURL.
+
+ <p>This property is evaluated if the button is of type URL.</p>
+
+ <p>As always, there is a number of target names which have a special meaning, and force
+ a special com::sun::star::frame::Frame to be used.</p>
+ */
+ [property] string TargetFrame;
+
+ /** specifies the URL, which should be opened if the button was clicked.
+
+ <p>This property is evaluated if the button is of type URL.</p>
+
+ @see com::sun::star::form::FormButtonType
+ */
+ [property] string TargetURL;
+
+ /** specifies the default toggle state for the button, used when it is reset.
+
+ <p>This property is meaningful only when com::sun::star::awt::UnoControlButtonModel::Toggle
+ is `TRUE`. In this case, the <code>DefaultState</code> controls to which <code>State</code> the button will
+ be reset.</p>
+
+ <p>For a given implementation of the interface, if this (optional) property is present, then also the optional
+ interface com::sun::star::form::XReset must be present.</p>
+ */
+ [optional, property] boolean DefaultState;
+
+ /** allows resetting the button
+
+ <p>This property is meaningful only when com::sun::star::awt::UnoControlButtonModel::Toggle
+ is `TRUE`. In this case, the <code>DefaultState</code> controls to which <code>State</code> the button will
+ be reset, when com::sun::star::form::XReset::reset() is invoked.</p>
+
+ <p>For a given implementation of the interface, if this (optional) interface is present, then also the optional
+ property #DefaultState must be present.</p>
+ */
+ [optional] interface ::com::sun::star::form::XReset;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/CurrencyField.idl b/offapi/com/sun/star/form/component/CurrencyField.idl
new file mode 100644
index 000000000..a5c35ae09
--- /dev/null
+++ b/offapi/com/sun/star/form/component/CurrencyField.idl
@@ -0,0 +1,62 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_CurrencyField_idl__
+#define __com_sun_star_form_component_CurrencyField_idl__
+
+#include <com/sun/star/awt/UnoControlCurrencyFieldModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the ControlModel for an edit field which
+ contains a currency value.
+ */
+published service CurrencyField
+{
+ service com::sun::star::awt::UnoControlCurrencyFieldModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default state.
+
+ @see CurrencyField::DefaultValue
+ */
+ interface com::sun::star::form::XReset;
+
+ /** contains a default value for the control.
+
+ @see com::sun::star::awt::UnoControlCurrencyFieldModel::Value
+ @see com::sun::star::form::XReset
+ */
+ [property] double DefaultValue;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DataForm.idl b/offapi/com/sun/star/form/component/DataForm.idl
new file mode 100644
index 000000000..23ad3f15b
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DataForm.idl
@@ -0,0 +1,196 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DataForm_idl__
+#define __com_sun_star_form_component_DataForm_idl__
+
+#include <com/sun/star/form/component/Form.idl>
+#include <com/sun/star/sdb/RowSet.idl>
+#include <com/sun/star/form/TabulatorCycle.idl>
+#include <com/sun/star/form/NavigationBarMode.idl>
+#include <com/sun/star/form/XLoadable.idl>
+#include <com/sun/star/sdb/XCompletedExecution.idl>
+#include <com/sun/star/awt/TabControllerModel.idl>
+
+
+module com { module sun { module star { module form {
+
+ published interface XReset;
+ published interface XDatabaseParameterBroadcaster;
+
+module component {
+/** This service specifies a form which is connected to a database and
+ displays the results of SQL queries. It provides the possibility of
+ adding new data records, modifying existing ones, or deleting them.
+
+ <p>A database form is a special kind of enhanced database row set
+ which provides all information for displaying the data and has more
+ possibilities for configuring the data manipulation.</p>
+
+*/
+published service DataForm
+{
+ service com::sun::star::sdb::RowSet;
+ service com::sun::star::form::component::Form;
+
+ /** is used to reset controls belonging to the form, and to reset database fields to which the
+ controls are bound
+
+ <p>A DataForm is reset either on explicit request, or after it is moved
+ to the insertion row.</p>
+
+ <p>The insertion row is a virtual row which is used to insert new records. It is reached
+ by calling com::sun::star::sdbc::XResultSetUpdate::moveToInsertRow().
+ The com::sun::star::sdb::RowSet service specifies exactly which notifications
+ happen in which order when calling com::sun::star::sdbc::XResultSetUpdate::moveToInsertRow(),
+ and a DataForm implementation extends this with the following contract:
+ <ul><li>After all notifications as defined in the com::sun::star::sdb::RowSet
+ service have been sent, the DataForm resets itself, if all
+ com::sun::star::form::XResetListeners approve this.</li>
+ <li>After the reset happened, the com::sun::star::sdb::RowSet::IsModified
+ property is reset to `FALSE`. This property might have been switched to `TRUE` during listener
+ notifications, since listeners are allowed to change field values. Also, the
+ com::sun::star::form::XReset::reset() implementations of bound control
+ models might have modified the fields they're bound to (by filling them with default values).</li>
+ <li>The reset listeners are notified of the completed reset operation.</li>
+ </ul></p>
+ */
+ interface com::sun::star::form::XReset;
+
+ /** used to load/unload the form
+ <p>Loading a form is basically the same as executing the underlying row set. In fact, all the
+ functionality of this interface could be simulated by using setting some properties manually,
+ com::sun::star::sdbc::XRowSet::execute(), moving the row set cursor and so on.</p>
+
+ <p>One main difference between XLoadable::load() and com::sun::star::sdbc::XRowSet::execute()
+ is that if you use the former, the row set is positioned on the first record, while in the latter case
+ it is position <em>before</em> the it.</p>
+ */
+ interface com::sun::star::form::XLoadable;
+
+ /** can be used to allow an interaction handler to supply missing data during a load process.
+
+ <p>If data is needed during loading a form, then this is usually obtained via broadcaster-listener
+ mechanisms. An example for this (and currently the only one) are parameter values.</p>
+ <p>However, if you use this method, you can pass an interaction handler which should supply these
+ additional data.</p>
+
+ @see com::sun::star::sdb::InteractionHandler
+ */
+ interface com::sun::star::sdb::XCompletedExecution;
+
+ /** can be used for filling parameters.
+
+ <p>You can add your component as
+ com::sun::star::form::XDatabaseParameterListener
+ to a form to get notified whenever the form needs parameter values to be filled in<br/>
+ In a first approach, the form tries to fill any parameters from its master-detail relation
+ (if any). All values which can't be filled are then passed to all listeners, which can
+ fill them by their own choice.</p>
+
+ <p>This is slightly changed if the form is loaded using the
+ com::sun::star::sdb::XCompletedExecution::connectWithCompletion() method. In this case, the parameters
+ are obtained from the interaction handler, not from the listeners</p>
+
+ @see XCompletedExecution
+ @see MasterFields
+ @see DetailFields
+ */
+ interface com::sun::star::form::XDatabaseParameterBroadcaster;
+
+ /** is used for subforms and contains the names of columns of the parent form.
+
+ <p> These columns are typically the foreign key fields of the parent form.
+ The values of these columns are used to identify the data for the subform.
+ Each time the parent form changes its current row, the subform requeries
+ it's data based on the values of the master fields.</p>
+
+ <p>If the form is no sub form (e.g. its parent is not a form itself), this
+ property is not evaluated.</p>
+ */
+ [property] sequence<string> MasterFields;
+
+ /** is used for subforms and contains the names of the columns of the subform
+ which are related to the master fields of the parent form.
+
+ <p>Entries in this sequence can either denote column names in the sub form,
+ or parameter names.<br/>
+ For instance, you could base the form on the SQL statement
+ <code>SELECT * FROM invoices WHERE cust_ref = :cid</code>, and add <code>cid</code>
+ to the DetailFields property. In this case, the parameter will be filled from
+ the corresponding master field.<br/>
+ Alternatively, you could simply base your form on the table <code>invoices</code>,
+ and add the column name <code>cust_ref</code> to the DetailFields. In this case,
+ and implicit filter clause <code>WHERE cust_ref = :&lt;new_param_name&gt;</code> will
+ be created, and the artificial parameter will be filled from the corresponding
+ master field.<br/>
+ If a string in this property denotes both a column name and a parameter name, it
+ is undefined which way it is interpreted, but implementations of the service are required
+ to either decide for the parameter or the column, and proceed as usual.
+ </p>
+
+ <p>The columns specified herein typically represent a part of the primary key
+ fields or their aliases of the detail form.</p>
+
+ <p>If the form is no sub form (e.g. its parent is not a form itself), this
+ property is not evaluated.</p>
+ */
+ [property] sequence<string> DetailFields;
+
+ /** returns the kind of tabulator controlling.
+ */
+ [property] com::sun::star::form::TabulatorCycle Cycle;
+
+ /** determines how a navigation bar for this form should act.
+ */
+ [property] com::sun::star::form::NavigationBarMode NavigationBarMode;
+
+ /** determines if insertions into the form's row set are allowed.
+
+ <p>Note that this is a recommendation for user interface components displaying the
+ form. Form implementations may decide to allow for insertions done via the API, even
+ if the property is set to `FALSE`, but the user interface should respect the property
+ value.</p>
+ */
+ [property] boolean AllowInserts;
+
+ /** determines if modifications of the current record of the form are allowed.
+
+ <p>Note that this is a recommendation for user interface components displaying the
+ form. Form implementations may decide to allow for updates done via the API, even
+ if the property is set to `FALSE`, but the user interface should respect the property
+ value.</p>
+ */
+ [property] boolean AllowUpdates;
+
+ /** determines if deletions of records of the form are allowed.
+
+ <p>Note that this is a recommendation for user interface components displaying the
+ form. Form implementations may decide to allow for deletions done via the API, even
+ if the property is set to `FALSE`, but the user interface should respect the property
+ value.</p>
+ */
+ [property] boolean AllowDeletes;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseCheckBox.idl b/offapi/com/sun/star/form/component/DatabaseCheckBox.idl
new file mode 100644
index 000000000..cdf1e2347
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseCheckBox.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseCheckBox_idl__
+#define __com_sun_star_form_component_DatabaseCheckBox_idl__
+
+#include <com/sun/star/form/component/CheckBox.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a check box which is data-aware, and can be bound to a database field.
+
+ <p>Mostly, you will create data-aware checkboxes as tristate checkboxes, because this
+ is a requirement to correctly handle `NULL` values in databases.</p>
+
+ @see ::com::sun::star::awt::UnoControlCheckBoxModel::TriState
+ */
+published service DatabaseCheckBox
+{
+ service com::sun::star::form::component::CheckBox;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseComboBox.idl b/offapi/com/sun/star/form/component/DatabaseComboBox.idl
new file mode 100644
index 000000000..64711a452
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseComboBox.idl
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseComboBox_idl__
+#define __com_sun_star_form_component_DatabaseComboBox_idl__
+
+#include <com/sun/star/form/component/ComboBox.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+#include <com/sun/star/form/ListSourceType.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a combo box which is data-aware, and can be bound to a database field.
+
+ <p>Like most other data aware controls, such a combo box will display the actual content
+ of the field it is bound to. In addition, as a combo box contains a list where the user
+ can choose items to fill into the control, this list can be filled with different data from
+ a database, too.</p>
+ */
+published service DatabaseComboBox
+{
+ service com::sun::star::form::component::ComboBox;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+
+ /** determines if an empty text should be treated as a `NULL` value.
+
+ <p>When the user enters text into a combo box, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.<br/>
+ This is controlled by #ConvertEmptyToNull.</p>
+
+ <p>If the property is set to `TRUE`, and an empty text is to be committed, this is
+ converted into `NULL`, else it is written as empty string.</p>
+ */
+ [property] boolean ConvertEmptyToNull;
+
+ /** describes the source of items in the combo box's list.
+
+ <p>The concrete meaning of this property depends on the value of #ListSourceType</p>
+ */
+ [property] string ListSource;
+
+ /** specifies the kind of list source.
+
+ <p>Note: A value of com::sun::star::form::ListSourceType::VALUELIST
+ is not valid for a combo box. It won't be rejected when setting it, but controls will usually ignore it
+ and leave the list empty.</p>
+ */
+ [property] com::sun::star::form::ListSourceType ListSourceType;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseCurrencyField.idl b/offapi/com/sun/star/form/component/DatabaseCurrencyField.idl
new file mode 100644
index 000000000..c6afae618
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseCurrencyField.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseCurrencyField_idl__
+#define __com_sun_star_form_component_DatabaseCurrencyField_idl__
+
+#include <com/sun/star/form/component/CurrencyField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a currency field which is data-aware, and can be bound to a database field.
+ */
+published service DatabaseCurrencyField
+{
+ service com::sun::star::form::component::CurrencyField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseDateField.idl b/offapi/com/sun/star/form/component/DatabaseDateField.idl
new file mode 100644
index 000000000..c09e8a9fd
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseDateField.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseDateField_idl__
+#define __com_sun_star_form_component_DatabaseDateField_idl__
+
+#include <com/sun/star/form/component/DateField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a date field which is data-aware, and can be bound to a database field.
+ */
+published service DatabaseDateField
+{
+ service com::sun::star::form::component::DateField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseFormattedField.idl b/offapi/com/sun/star/form/component/DatabaseFormattedField.idl
new file mode 100644
index 000000000..42b6d5be7
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseFormattedField.idl
@@ -0,0 +1,59 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseFormattedField_idl__
+#define __com_sun_star_form_component_DatabaseFormattedField_idl__
+
+#include <com/sun/star/form/component/FormattedField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a formatted field model which is data-aware, and can be bound to a database field.
+ */
+published service DatabaseFormattedField
+{
+ service com::sun::star::form::component::FormattedField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+
+ /** determines if an empty text should be treated as a `NULL` value.
+
+ <p>When the user enters text into a formatted field control, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.<br/>
+ This is controlled by #ConvertEmptyToNull.</p>
+
+ <p>If the property is set to `TRUE`, and an empty text is to be committed, this is
+ converted into `NULL`, else it is written as empty string.</p>
+ */
+ [property] boolean ConvertEmptyToNull;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseImageControl.idl b/offapi/com/sun/star/form/component/DatabaseImageControl.idl
new file mode 100644
index 000000000..11c90358b
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseImageControl.idl
@@ -0,0 +1,106 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseImageControl_idl__
+#define __com_sun_star_form_component_DatabaseImageControl_idl__
+
+#include <com/sun/star/awt/UnoControlImageControlModel.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+#include <com/sun/star/form/XImageProducerSupplier.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies the model of a control used for displaying images stored in a database.
+
+ <p>As every com::sun::star::form::DataAwareControlModel, an image control
+ can be bound to a database field. This means that for instance with every record change, the content
+ of the database field is taken, interpreted as image, and displayed in the control.<br>
+ Unlike other more text-based controls, it does not interpret the content of the field as text or double,
+ but as binary stream (see com::sun::star::sdb::XColumn::getBinaryStream()).</p>
+
+ <p>Usually, an image control model can be bound to binary columns only, namely
+ com::sun::star::sdbc::DataType::BINARY,
+ com::sun::star::sdbc::DataType::VARBINARY,
+ com::sun::star::sdbc::DataType::LONGVARBINARY,
+ com::sun::star::sdbc::DataType::OTHER,
+ com::sun::star::sdbc::DataType::LONGVARCHAR</p>
+
+ </p>
+
+ <p>Note that besides taking the image to be displayed from the bound field, there is another option. The
+ com::sun::star::awt::UnoControlImageControlModel::ImageURL property specifies
+ the URL of an image to be displayed. If this property is changed from outside, the respective file
+ is loaded and set as image source.</p>
+
+ <p>In a usual data form, the scenario will be as follows:
+ <ul><li>There is a DatabaseImageControl as part of the document model, which acts as
+ control model for a com::sun::star::form::control::ImageControl.</li>
+
+ <li>The control is a com::sun::star::awt::XImageConsumer for the
+ com::sun::star::awt::XImageProducer supplied by the model.</li>
+
+ <li>Whenever the form's cursor is positioned on a new record, the column the control
+ model is bound to is examined for a binary data stream. This stream is set as source
+ at the image producer, which notifies it's consumers, which leads to the control
+ displaying the image.</li>
+
+ <li>When the user by some interaction tells the control to contain a new image, this is
+ exchanged by URL. For example, implementations of the control service may allow the user
+ to browse for image. After this, the URL of the image is set as
+ com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ property at the model.<br>
+ Now the control loads the image determined by the property value, and starts producing
+ a new data stream, which is displayed by the control (which is a consumer for this stream).<br>
+ From now on, the control and thus the database record counts as modified. If the cursor of the
+ form is moved further, the modified record is saved, means the content of the image pointed to
+ by com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ is saved into the column.</li>
+ </ul>
+ </p>
+ */
+published service DatabaseImageControl
+{
+ service com::sun::star::awt::UnoControlImageControlModel;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+ /** supplies the caller with a com::sun::star::awt::XImageProducer.
+
+ <p>Other components can register as com::sun::star::awt::XImageConsumer
+ at this producer. Then they will be notified of any change in the image to be displayed.</p>
+ */
+ interface com::sun::star::form::XImageProducerSupplier;
+
+
+ /** indicates if it is possible to change the image being displayed.
+ */
+ [property] boolean ReadOnly;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseListBox.idl b/offapi/com/sun/star/form/component/DatabaseListBox.idl
new file mode 100644
index 000000000..0b8f95210
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseListBox.idl
@@ -0,0 +1,157 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseListBox_idl__
+#define __com_sun_star_form_component_DatabaseListBox_idl__
+
+#include <com/sun/star/form/component/ListBox.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+#include <com/sun/star/form/ListSourceType.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a data-aware list box control model.
+
+ <p>The base service for list boxes (ListBox) offers only
+ one possibility to specify the list entries:
+ The display strings in the
+ com::sun::star::awt::UnoControlListBoxModel::StringItemList
+ property and the corresponding values in the ListBox::ListSource
+ property.</p>
+
+ <p>This service here extends this mimic. It allows to fill the list from a data source.
+ This means that a second result set is opened, which works on the same connection as the
+ form which the list box belongs to, but can be based on an arbitrary table or SQL statement.</p>
+
+ <p>For instance, you may have a form which is bound to a table <em>invoice</em>, and you use it
+ to enter invoices for your customers. Probably, you will have a second table (say <em>customer</em>),
+ which (among other data) contains a unique key for identifying customers. In your invoice table, you will
+ have a foreign key referring to these customers.<br/>
+ Now, besides the result set the form is based on (all your invoices), the list box can be instructed
+ to open a second result set, this time for the <em>customer</em> table, and fill its list with entries
+ from this result set.<br/>
+ Additionally, it allows to model the relation between the two tables: When the user selects a customer from
+ the list, this customer has the unique id we just talked about (which is not necessarily visible to the
+ user in any way). The list box then automatically transfers this id into the foreign key column of
+ <em>invoice</em>, thus allowing the user to transparently work with human-readable strings instead of
+ pure numbers.<br/>
+ Let's call this result set the list is filled from the <em>list result set</em> here ...</p>
+
+ <p>The display strings are always taken from the first column of that result set,
+ and the corresponding value as per the BoundColumn property.</p>
+ */
+published service DatabaseListBox
+{
+ service com::sun::star::form::component::ListBox;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+
+ /** specifies which column of the list result set should be used for data exchange.
+
+ <p>When you make a selection from a list box, the "BoundColumn"
+ property reflects which column value of a result set should
+ be used as the value of the component. If the control is bound
+ to a database field, the column value is stored in the
+ database field identified by the property
+ com::sun::star::form::DataAwareControlModel::DataField.
+
+ <dl>
+ <dt>-1</dt>
+ <dd>The index (starting at 0) of the selected list box entry
+ is stored in the current database field.</dd>
+
+ <dt>0 or greater</dt>
+ <dd>The column value of the result set at the position
+ (0-indexed) is stored in the current database field.
+ In particular, for value 0, the selected (displayed)
+ list box string is stored.</dd>
+ </dl></p>
+
+ <p>The bound column property is only used if a list source is defined
+ and the list source matches with the types
+ com::sun::star::form::ListSourceType::TABLE,
+ com::sun::star::form::ListSourceType::QUERY,
+ com::sun::star::form::ListSourceType::SQL or
+ com::sun::star::form::ListSourceType::SQLPASSTHROUGH.
+ Otherwise the property is ignored, as there is no result set from which to
+ get the column values.</p>
+ */
+ [property] short BoundColumn;
+
+
+ /** describes the kind of list source used.
+
+ <p>Depending on the value of this property, the way the value of ListBox::ListSource
+ is evaluated varies.
+ <dl>
+ <dt>com::sun::star::form::ListSourceType::VALUELIST</dt>
+ <dd>The elements in the string sequence in ListBox::ListSource
+ build up the entry list.</dd>
+
+ <dt>com::sun::star::form::ListSourceType::TABLE</dt>
+ <dd>The first element of the string sequence in ListBox::ListSource
+ determines the table which the list result set should be based on.</dd>
+
+ <dt>com::sun::star::form::ListSourceType::QUERY</dt>
+ <dd>The first element of the string sequence in ListBox::ListSource
+ determines the query which the list result set should be based on.<br/>
+ For retrieving the query, the connection which the data form is working with
+ (com::sun::star::sdb::RowSet::ActiveConnection) is queried for
+ the com::sun::star::sdb::XQueriesSupplier interface.</dd>
+
+ <dt>com::sun::star::form::ListSourceType::SQL</dt>
+ <dd>The first element of the string sequence in ListBox::ListSource
+ contains the SQL statement which the list result set should be based on.</p>
+
+ <dt>com::sun::star::form::ListSourceType::SQLPASSTHROUGH</dt>
+ <dd>The first element of the string sequence in ListBox::ListSource
+ contains the SQL statement which the list result set should be based on.<br/>
+ The statement is not analyzed by the parser. This means that you can use database specific
+ SQL features here, but, on the other hand, lose features like parameter value substitution.</dd>
+
+ <dt>com::sun::star::form::ListSourceType::TABLEFIELDS</dt>
+ <dd>The first element of the string sequence in ListBox::ListSource
+ determines the table whose column names should fill the list.</dd>
+ </dl>
+ </p>
+
+ */
+ [property] com::sun::star::form::ListSourceType ListSourceType;
+
+ /** The selected values.
+ */
+ [property, transient, optional] sequence< any > SelectedValues;
+
+ /** The selected value, if there is at most one.
+ */
+ [property, transient, optional] any SelectedValue;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseNumericField.idl b/offapi/com/sun/star/form/component/DatabaseNumericField.idl
new file mode 100644
index 000000000..244f31c1a
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseNumericField.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseNumericField_idl__
+#define __com_sun_star_form_component_DatabaseNumericField_idl__
+
+#include <com/sun/star/form/component/NumericField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a numeric field which is data-aware, and can be bound to a database field.
+ */
+published service DatabaseNumericField
+{
+ service com::sun::star::form::component::NumericField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabasePatternField.idl b/offapi/com/sun/star/form/component/DatabasePatternField.idl
new file mode 100644
index 000000000..d0ce8a475
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabasePatternField.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabasePatternField_idl__
+#define __com_sun_star_form_component_DatabasePatternField_idl__
+
+#include <com/sun/star/form/component/PatternField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a data-aware control model for entering text which matches a specific
+ pattern.
+ */
+published service DatabasePatternField
+{
+ service com::sun::star::form::component::PatternField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+
+ /** determines if an empty text should be treated as a `NULL` value.
+
+ <p>When the user enters text into a pattern field, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.<br/>
+ This is controlled by this property.</p>
+
+ <p>If the property is set to `TRUE`, and an empty text is to be committed, this is
+ converted into `NULL`, else it is written as empty string.</p>
+ */
+ [property] boolean ConvertEmptyToNull;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseRadioButton.idl b/offapi/com/sun/star/form/component/DatabaseRadioButton.idl
new file mode 100644
index 000000000..0455dc02e
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseRadioButton.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseRadioButton_idl__
+#define __com_sun_star_form_component_DatabaseRadioButton_idl__
+
+#include <com/sun/star/form/component/RadioButton.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a radio button which is data-aware, and can be bound to a database field.
+ */
+published service DatabaseRadioButton
+{
+ service com::sun::star::form::component::RadioButton;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseTextField.idl b/offapi/com/sun/star/form/component/DatabaseTextField.idl
new file mode 100644
index 000000000..573407fde
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseTextField.idl
@@ -0,0 +1,59 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseTextField_idl__
+#define __com_sun_star_form_component_DatabaseTextField_idl__
+
+#include <com/sun/star/form/component/TextField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a text field which is data-aware, and can be bound to a database field.
+ */
+published service DatabaseTextField
+{
+ service com::sun::star::form::component::TextField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+
+ /** determines if an empty text should be treated as a `NULL` value.
+
+ <p>When the user enters text into a text field, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.<br/>
+ This is controlled by this property.</p>
+
+ <p>If the property is set to `TRUE`, and an empty text is to be committed, this is
+ converted into `NULL`, else it is written as empty string.</p>
+ */
+ [property] boolean ConvertEmptyToNull;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DatabaseTimeField.idl b/offapi/com/sun/star/form/component/DatabaseTimeField.idl
new file mode 100644
index 000000000..08d305e12
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DatabaseTimeField.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DatabaseTimeField_idl__
+#define __com_sun_star_form_component_DatabaseTimeField_idl__
+
+#include <com/sun/star/form/component/TimeField.idl>
+
+#include <com/sun/star/form/DataAwareControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a data-aware field for inputting a time value.
+ */
+published service DatabaseTimeField
+{
+ service com::sun::star::form::component::TimeField;
+
+ service com::sun::star::form::DataAwareControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/DateField.idl b/offapi/com/sun/star/form/component/DateField.idl
new file mode 100644
index 000000000..099a7cb40
--- /dev/null
+++ b/offapi/com/sun/star/form/component/DateField.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_DateField_idl__
+#define __com_sun_star_form_component_DateField_idl__
+
+#include <com/sun/star/awt/UnoControlDateFieldModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies the model of a date field control, which is an edit field used to enter a date.
+*/
+published service DateField
+{
+ service com::sun::star::awt::UnoControlDateFieldModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** resets the control.
+
+ <p>If you do not set a value for the #DefaultDate, then resetting the control
+ will result in setting to the current system date. This is for HTML compatibility.</p>
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlDateFieldModel::Date
+ @see com::sun::star::form::XReset
+ */
+ [property] long DefaultDate;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/FileControl.idl b/offapi/com/sun/star/form/component/FileControl.idl
new file mode 100644
index 000000000..0e5c977f8
--- /dev/null
+++ b/offapi/com/sun/star/form/component/FileControl.idl
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_FileControl_idl__
+#define __com_sun_star_form_component_FileControl_idl__
+
+#include <com/sun/star/awt/UnoControlFileControlModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the control model of an edit field for a
+ file name.
+ */
+published service FileControl
+{
+ service com::sun::star::awt::UnoControlFileControlModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default text.
+
+ @see FileControl::DefaultText
+ */
+ interface com::sun::star::form::XReset;
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlFileControlModel::Text
+ @see com::sun::star::form::XReset
+ */
+ [property] string DefaultText;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/FixedText.idl b/offapi/com/sun/star/form/component/FixedText.idl
new file mode 100644
index 000000000..5cdc4e4a5
--- /dev/null
+++ b/offapi/com/sun/star/form/component/FixedText.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_FixedText_idl__
+#define __com_sun_star_form_component_FixedText_idl__
+
+#include <com/sun/star/awt/UnoControlFixedTextModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the control model for a text which can be
+ displayed, but not edited by the user.
+
+ <p>These kind of controls is usually used to label other controls.</p>
+
+ @see com::sun::star::form::DataAwareControlModel::LabelControl
+ */
+published service FixedText
+{
+ service com::sun::star::awt::UnoControlFixedTextModel;
+
+ service com::sun::star::form::FormControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/Form.idl b/offapi/com/sun/star/form/component/Form.idl
new file mode 100644
index 000000000..43ba74c36
--- /dev/null
+++ b/offapi/com/sun/star/form/component/Form.idl
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_Form_idl__
+#define __com_sun_star_form_component_Form_idl__
+
+#include <com/sun/star/form/FormComponent.idl>
+#include <com/sun/star/form/FormComponents.idl>
+#include <com/sun/star/form/XForm.idl>
+#include <com/sun/star/awt/XTabControllerModel.idl>
+#include <com/sun/star/script/XEventAttacherManager.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a form which is a group of FormComponents.
+
+ <p>A form fulfills several tasks, like storing the structure of its
+ form components, storing the information concerning tab ordering
+ and control grouping, and last but not least, it provides the
+ event environment for its contained elements.</p>
+
+ <p>A form acts on the one hand like a container of FormComponents
+ and on the other hand like a FormComponent. This generic
+ construction allows the definition of hierarchies of forms and their
+ dependent subforms.</p>
+
+ @see com::sun::star::form::FormControlModel
+ */
+published service Form
+{
+ service com::sun::star::form::FormComponent;
+
+ service com::sun::star::form::FormComponents;
+
+ /** identifies a component as form.
+ */
+ interface com::sun::star::form::XForm;
+
+
+ /** This interface has to be implemented to supply the information for tab ordering and component grouping.
+
+ @see com::sun::star::form::FormControlModel::TabIndex
+ */
+ interface com::sun::star::awt::XTabControllerModel;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/FormattedField.idl b/offapi/com/sun/star/form/component/FormattedField.idl
new file mode 100644
index 000000000..fd9817667
--- /dev/null
+++ b/offapi/com/sun/star/form/component/FormattedField.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_FormattedField_idl__
+#define __com_sun_star_form_component_FormattedField_idl__
+
+#include <com/sun/star/awt/UnoControlFormattedFieldModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the control model of an edit field for entering text which can be
+ (nearly) arbitrarily formatted.
+
+ @see com::sun::star::util::XNumberFormatsSupplier
+ */
+published service FormattedField
+{
+ service com::sun::star::awt::UnoControlFormattedFieldModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default state.
+
+ @see com::sun::star::awt::UnoControlFormattedFieldModel::EffectiveValue
+ @see com::sun::star::awt::UnoControlFormattedFieldModel::EffectiveDefault
+ */
+ interface com::sun::star::form::XReset;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/GridControl.idl b/offapi/com/sun/star/form/component/GridControl.idl
new file mode 100644
index 000000000..0a8db09f2
--- /dev/null
+++ b/offapi/com/sun/star/form/component/GridControl.idl
@@ -0,0 +1,168 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_GridControl_idl__
+#define __com_sun_star_form_component_GridControl_idl__
+
+#include <com/sun/star/util/Color.idl>
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XGridColumnFactory.idl>
+
+#include <com/sun/star/form/FormComponents.idl>
+#include <com/sun/star/container/XContainer.idl>
+
+#include <com/sun/star/view/XSelectionSupplier.idl>
+
+#include <com/sun/star/container/XNameContainer.idl>
+
+#include <com/sun/star/container/XIndexContainer.idl>
+
+#include <com/sun/star/container/XEnumerationAccess.idl>
+
+#include <com/sun/star/script/XEventAttacherManager.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+#include <com/sun/star/awt/FontDescriptor.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a model for a control which can display form data in a table-like way.
+
+ <p>In opposite to other form controls, grid controls do not only
+ display the single current value of a column they are bound to. Moreover, they do
+ display not only the current row of the form, but all rows (at least potentially, limited
+ by the control size, of course).</p>
+
+ <p>The table rows in a grid control correspond to the rows in the DataForm
+ the control belongs to, and the columns correspond to single columns of the form's row set.</p>
+
+ <p>Columns of a grid control are modeled by own objects, too. They are very similar to usual
+ com::sun::star::form::DataAwareControlModels modeling other "single-value" controls, but they are not described
+ as own services. Instead, they need to be created using the com::sun::star::form::XGridColumnFactory interface.</p>
+ */
+published service GridControl
+{
+ service com::sun::star::form::FormControlModel;
+
+ /** provides basic functionality of a container of com::sun::star::form::FormComponents.
+
+ <p>All the container-related methods of this service related to control models,
+ this is what are the container elements for a GridControl.</p>
+
+ <p>As the com::sun::star::form::FormComponents service also specifies
+ the com::sun::star::script::XEventAttacherManager service, grid control
+ models also provide a scripting environment for their columns.</p>
+ */
+ service com::sun::star::form::FormComponents;
+
+ /** allows to create column models to be inserted into the control model.
+
+ <p>Note that the object returned by the com::sun::star::form::XGridColumnFactory::createColumn()
+ method is not part of the grid control, yet. It needs to be inserted using any of the
+ container interfaces.</p>
+
+ <p>You always need to use this interface for creating columns for the grid control.
+ Column models not created this way will not be accepted when inserted later on.</p>
+ */
+ interface com::sun::star::form::XGridColumnFactory;
+
+ /** gives access to the currently selection.
+
+ <p>In a grid control, single columns can be selected (at most one at a time).<br/>
+ For various unfortunate reasons, this selection is an aspect of the model, not of the
+ control as you would expect.</p>
+
+ <p>This interface is deprecated, new implementations should not use it anymore, as it is to
+ be superseded by a solution which is bound to the control, not the model.</p>
+
+ @deprecated
+ */
+ interface com::sun::star::view::XSelectionSupplier;
+
+ /** resets the control.
+
+ <p>The reset of the control is forwarded to all its elements, means to all the column models.
+ As grid columns are very much like data-aware stand-alone controls, you can find a description
+ of the reset functionality in com::sun::star::form::DataAwareControlModel::XReset.
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** returns the border style of the control.
+
+ <pre>
+ 0: No border
+ 1: 3D border
+ 2: simple border
+ </pre>
+ */
+ [property] short Border;
+
+
+ /** specifies the color of the border, if present
+
+ <p>Not every border style (see #Border) may support coloring.
+ For instance, usually a border with 3D effect will ignore the BorderColor setting.</p>
+
+ @since OOo 2.0
+ */
+ [optional, property] long BorderColor;
+
+
+ /** determines whether the control is enabled or disabled.
+ */
+ [property] boolean Enabled;
+
+
+ /** contains the font attributes of the text in the control.
+ */
+ [property] com::sun::star::awt::FontDescriptor FontDescriptor;
+
+
+ /** specifies the height of a row of the grid.
+
+ <p>If the value is set to `NULL`, the height is determined automatically according
+ to the current font used.</p>
+
+ @see GridControl::FontDescriptor
+ */
+ [property] long RowHeight;
+
+
+ /** determines whether the control can be reached by the tabulator key.
+ */
+ [property] boolean Tabstop;
+
+
+ /** specifies the text color (RGB) of the control.
+ */
+ [property] com::sun::star::util::Color TextColor;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/GroupBox.idl b/offapi/com/sun/star/form/component/GroupBox.idl
new file mode 100644
index 000000000..ba23f276a
--- /dev/null
+++ b/offapi/com/sun/star/form/component/GroupBox.idl
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_GroupBox_idl__
+#define __com_sun_star_form_component_GroupBox_idl__
+
+#include <com/sun/star/awt/UnoControlGroupBoxModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies a model for a control which can be used to visually
+ group controls.
+ */
+published service GroupBox
+{
+ service com::sun::star::awt::UnoControlGroupBoxModel;
+
+ service com::sun::star::form::FormControlModel;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/HTMLForm.idl b/offapi/com/sun/star/form/component/HTMLForm.idl
new file mode 100644
index 000000000..acb40e5df
--- /dev/null
+++ b/offapi/com/sun/star/form/component/HTMLForm.idl
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_HTMLForm_idl__
+#define __com_sun_star_form_component_HTMLForm_idl__
+
+#include <com/sun/star/form/component/Form.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+#include <com/sun/star/form/XSubmit.idl>
+
+#include <com/sun/star/form/FormSubmitMethod.idl>
+
+#include <com/sun/star/form/FormSubmitEncoding.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the special kind of Forms for HTML documents.
+
+ <p>An HTMLForm fulfills the specification of forms in HTML. It supplies
+ the possibility of submitting or resetting the contents of a form.
+ For more information on HTML forms, please see the documentation of HTML.</p>
+ */
+published service HTMLForm
+{
+ service com::sun::star::form::component::Form;
+
+ /** resets the control.
+ */
+ interface com::sun::star::form::XReset;
+
+ /** allows to submit changes.
+
+ <p>When a form is submitted, the data contained in the form is sent
+ to the target URL as a series of name/value pairs. The name portion
+ of each pair is the name of a form component as specified by its NAME
+ attribute. In most cases the value portion is the value displayed
+ by the element, for example, the text displayed in a text field.</p>
+ */
+ interface com::sun::star::form::XSubmit;
+
+ /** describes the frame, where to open the document specified by the TargetURL.
+ */
+ [property] string TargetFrame;
+
+
+ /** specifies the URL, which should be used for submission.
+ */
+ [property] string TargetURL;
+
+ /** specifies the kind of submission.
+ */
+ [property] com::sun::star::form::FormSubmitMethod SubmitMethod;
+
+ /** specifies the kind of encoding for submission.
+ */
+ [property] com::sun::star::form::FormSubmitEncoding SubmitEncoding;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/HiddenControl.idl b/offapi/com/sun/star/form/component/HiddenControl.idl
new file mode 100644
index 000000000..3994b54e4
--- /dev/null
+++ b/offapi/com/sun/star/form/component/HiddenControl.idl
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_HiddenControl_idl__
+#define __com_sun_star_form_component_HiddenControl_idl__
+
+#include <com/sun/star/form/FormComponent.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the model of a hidden control.
+
+ <p>The only sense of a hidden control is to store data in the form which is
+ not visible to the user.</p>
+
+ <p>Usually, hidden controls are used in com::sun::star::form::component::HTMLForms,
+ where they contain data which is to be submitted.<br/>
+ Nevertheless, you can use them in your own forms for storing any data, for instance
+ to evaluate it in some scripting macro.</p>
+ */
+published service HiddenControl
+{
+ service com::sun::star::form::FormComponent;
+
+ /** specifies the value of the component.
+ */
+ [property] string HiddenValue;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/ImageButton.idl b/offapi/com/sun/star/form/component/ImageButton.idl
new file mode 100644
index 000000000..932efe1ef
--- /dev/null
+++ b/offapi/com/sun/star/form/component/ImageButton.idl
@@ -0,0 +1,94 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_ImageButton_idl__
+#define __com_sun_star_form_component_ImageButton_idl__
+
+#include <com/sun/star/awt/UnoControlImageControlModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XApproveActionBroadcaster.idl>
+
+#include <com/sun/star/form/XImageProducerSupplier.idl>
+
+#include <com/sun/star/form/FormButtonType.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the control model for a clickable button which
+ is represented by an image.
+
+ <p>The image to be displayed is determined by com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ property specifies the URL of an image to be displayed.</p>
+
+ @see CommandButton
+*/
+published service ImageButton
+{
+ service com::sun::star::awt::UnoControlImageControlModel;
+
+ service com::sun::star::form::FormControlModel;
+
+
+ /** supplies the caller with a com::sun::star::awt::XImageProducer.
+
+ <p>Other components can register as com::sun::star::awt::XImageConsumer
+ at this producer. Then they will be notified of any change in the image to be displayed.</p>
+
+ <p>Whenever the com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ property is changed, the model loads the specified image, and sets it as image source
+ at its com::sun::star::awt::XImageProducer. Then, all
+ com::sun::star::awt::XImageConsumers are notified and supplied with
+ the binary data of the image.<br/>
+ Usually, controls acting for an ImageButton model are consumers, and use the
+ data stream to display the image</p>
+ */
+ interface com::sun::star::form::XImageProducerSupplier;
+
+ /** describes the action to be executed by the button when pressed.
+ */
+ [property] com::sun::star::form::FormButtonType ButtonType;
+
+ /** describes the frame, where to open the document specified by the TargetURL.
+
+ <p>This property is evaluated if the button is of type URL.</p>
+
+ <p>As always, there is a number of target names which have a special meaning, and force
+ a special com::sun::star::frame::Frame to be used.</p>
+ */
+ [property] string TargetFrame;
+
+ /** specifies the URL, which should be opened if the button was clicked.
+
+ <p>This property is evaluated if the button is of type URL.</p>
+
+ @see com::sun::star::form::FormButtonType
+ */
+ [property] string TargetURL;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/ListBox.idl b/offapi/com/sun/star/form/component/ListBox.idl
new file mode 100644
index 000000000..48f754435
--- /dev/null
+++ b/offapi/com/sun/star/form/component/ListBox.idl
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_ListBox_idl__
+#define __com_sun_star_form_component_ListBox_idl__
+
+#include <com/sun/star/awt/UnoControlListBoxModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a model for a control which allows to choose in a list of alternative values.
+ */
+published service ListBox
+{
+ service com::sun::star::awt::UnoControlListBoxModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default state.
+
+ @see ListBox::DefaultSelection
+ */
+ interface com::sun::star::form::XReset;
+
+ /** contains the indexes of entries of the listbox, which should selected
+ by default.
+
+ <p>This selection is used initially or for a reset.</p>
+
+ @see com::sun::star::awt::UnoControlListBoxModel::SelectedItems
+ @see com::sun::star::form::XReset
+ */
+ [property] sequence<short> DefaultSelection;
+
+
+ /** contains the values associated to the strings to be displayed
+ (which are specified by com::sun::star::awt::UnoControlListBoxModel::StringItemList)
+ */
+ [property] sequence<string> ListSource;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/NavigationToolBar.idl b/offapi/com/sun/star/form/component/NavigationToolBar.idl
new file mode 100644
index 000000000..165f2f4db
--- /dev/null
+++ b/offapi/com/sun/star/form/component/NavigationToolBar.idl
@@ -0,0 +1,124 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_NavigationToolBar_idl__
+#define __com_sun_star_form_component_NavigationToolBar_idl__
+
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/awt/FontDescriptor.idl>
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** This service specifies the model for control which provides controller
+ functionality for a DataForm, such as navigating or filtering
+ the form.
+ */
+service NavigationToolBar
+{
+ service com::sun::star::form::FormControlModel;
+
+ /** denotes the border style of the control.
+
+ Allowed values are
+ <ul><li><b>0</b>: no border at all</li>
+ <li><b>1</b>: 3D border</li>
+ <li><b>2</b>: simple flat</li>
+ </ul>
+ */
+ [property] short Border;
+
+ /** determines whether the control is enabled or disabled.
+ */
+ [property] boolean Enabled;
+
+ /** contains the font attributes for the text in the control
+ */
+ [property] com::sun::star::awt::FontDescriptor FontDescriptor;
+
+ /** specifies the text color (as RGB value) of the control.
+ */
+ [property] long TextColor;
+
+ /** specifies the text line color (as RGB value) of the control.
+
+ <p>This color is used if the #FontDescriptor defines
+ that the text in the control should be underlined or stroke out.</p>
+ */
+ [property] long TextLineColor;
+
+ /** specifies the relief for the font described in #FontDescriptor
+
+ <p>The value must be one of the com::sun::star::text::FontRelief
+ constants.</p>
+ */
+ [property] long FontRelief;
+
+ /** specifies the emphasis mark for the font described in #FontDescriptor
+
+ <p>The value must be one of the com::sun::star::text::FontEmphasis
+ constants.</p>
+ */
+ [property] long FontEmphasisMark;
+
+ /** specifies the size of the icons in the control
+
+ <p>At least the following values are to be supported:
+ <ul><li>0: small icons (16x16)</li>
+ <li>1: medium size icons (26x26)</li>
+ </ul>
+ */
+ [property] short IconSize;
+
+ /** determines whether the control should provide functionality for positioning the
+ parent form
+ */
+ [property] boolean ShowPosition;
+
+ /** determines whether the control should provide functionality for navigating the
+ parent form
+ */
+ [property] boolean ShowNavigation;
+
+ /** determines whether the control should provide functionality for acting on the current record
+ of the parent form
+ */
+ [property] boolean ShowRecordActions;
+
+ /** determines whether the control should provide functionality for filtering and sorting the
+ parent form
+ */
+ [property] boolean ShowFilterSort;
+
+ /** specifies a repeat delay for the control
+
+ <p>Some buttons of a NavigationToolBar may show repeating behavior, e.g. may be
+ repeatedly triggered when the user keeps the mouse pressed over such a button.<br/>
+ The delay between two such triggers (in milliseconds) is specified with this property.
+ </p>
+ */
+ [property] long RepeatDelay;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/NumericField.idl b/offapi/com/sun/star/form/component/NumericField.idl
new file mode 100644
index 000000000..dac2ae6a6
--- /dev/null
+++ b/offapi/com/sun/star/form/component/NumericField.idl
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_NumericField_idl__
+#define __com_sun_star_form_component_NumericField_idl__
+
+#include <com/sun/star/awt/UnoControlNumericFieldModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a component which allows the input of a numeric value.
+ */
+published service NumericField
+{
+ service com::sun::star::awt::UnoControlNumericFieldModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default value.
+
+ @see NumericField::DefaultValue
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlNumericFieldModel::Value
+ @see com::sun::star::form::XReset
+ */
+ [property] double DefaultValue;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/PatternField.idl b/offapi/com/sun/star/form/component/PatternField.idl
new file mode 100644
index 000000000..b9083c552
--- /dev/null
+++ b/offapi/com/sun/star/form/component/PatternField.idl
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_PatternField_idl__
+#define __com_sun_star_form_component_PatternField_idl__
+
+#include <com/sun/star/awt/UnoControlPatternFieldModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a component which allows the input of text which matches a specific pattern.
+ */
+published service PatternField
+{
+ service com::sun::star::awt::UnoControlPatternFieldModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default text.
+
+ @see PatternField::DefaultText
+ */
+ interface com::sun::star::form::XReset;
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlPatternFieldModel::Text
+ @see com::sun::star::form::XReset
+ */
+ [property] string DefaultText;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/RadioButton.idl b/offapi/com/sun/star/form/component/RadioButton.idl
new file mode 100644
index 000000000..4c1f6c861
--- /dev/null
+++ b/offapi/com/sun/star/form/component/RadioButton.idl
@@ -0,0 +1,95 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_RadioButton_idl__
+#define __com_sun_star_form_component_RadioButton_idl__
+
+#include <com/sun/star/awt/UnoControlRadioButtonModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a component which acts as a radio button as needed in HTMLForms.
+
+ <p>Radio buttons are controls which can be grouped together, and in every
+ group, only one of the controls can be check. This means if one of them
+ is checked by a user interaction, all other controls in the same group
+ are automatically unchecked</p>
+
+ <p>Like in HTML, radio buttons are grouped together if and only if they have the
+ same name (see com::sun::star::form::FormComponent::Name).</p>
+ */
+published service RadioButton
+{
+ service com::sun::star::awt::UnoControlRadioButtonModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** can be used to reset the control to its default text.
+
+ @see RadioButton::DefaultState
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ <p> In a group of radio buttons only one button should be checked
+ by default.</p>
+
+ @see com::sun::star::awt::UnoControlRadioButtonModel::State
+ @see com::sun::star::form::XReset
+ */
+ [property] short DefaultState;
+
+
+ /** contains a reference value which is used for submission in a HTML
+ form.
+
+ <p>If the form the control belongs to is to be submitted (see
+ com::sun::star::form::XSubmit), and the control is checked, this reference
+ value is used for submission.</p>
+ */
+ [property] string RefValue;
+
+
+ /** specifies a value which is to be associated with the control when it's <em>not</em>
+ selected.
+
+ <p>In various situations, the #RefValue is associated with the control
+ if and only if it is selected.<br/>
+ #UncheckedRefValue provides an extension of this concept: If present,
+ the value should be associated with the control when it is <em>not</em> selected.</p>
+ */
+ [optional, property] string UncheckedRefValue;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/RichTextControl.idl b/offapi/com/sun/star/form/component/RichTextControl.idl
new file mode 100644
index 000000000..180da4270
--- /dev/null
+++ b/offapi/com/sun/star/form/component/RichTextControl.idl
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef __com_sun_star_form_component_RichTextControl_idl__
+#define __com_sun_star_form_component_RichTextControl_idl__
+
+#include <com/sun/star/awt/UnoControlEditModel.idl>
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/text/TextRange.idl>
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a component which extends the com::sun::star::awt::UnoControlEditModel
+ with capabilities to display and input formatted text.
+*/
+published service RichTextControl
+{
+ service com::sun::star::awt::UnoControlEditModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** specifies capabilities to provide rich text, as opposed to the simple text provided by the
+ com::sun::star::awt::UnoControlEditModel
+ */
+ service com::sun::star::text::TextRange;
+
+ /** specifies whether text should be automatically wrapped to fit into the control.
+
+ <p>If set to `TRUE`, users need to manually press the enter key to insert a line break.
+ If set to `FALSE`, text is automatically wrapped at the control border.</p>
+ */
+ [property] boolean HardLineBreaks;
+
+ /** specifies whether the control should display the text including all its formatting.
+
+ <p>If this is set to `FALSE`, the control will act as ordinary
+ com::sun::star::awt::UnoControlEditModel.</p>
+
+ <p>If the property is set to `TRUE`, the control will ignore the following properties:
+ <ul>
+ <li>com::sun::star::awt::UnoControlEditModel::EchoChar</li>
+ <li>com::sun::star::awt::UnoControlEditModel::MaxTextLen</li>
+ <li>com::sun::star::awt::UnoControlEditModel::MultiLine</li>
+ <li>com::sun::star::awt::UnoControlEditModel::Align</li>
+ </ul>
+ </p>
+ */
+ [property] boolean RichText;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/ScrollBar.idl b/offapi/com/sun/star/form/component/ScrollBar.idl
new file mode 100644
index 000000000..2f67b4659
--- /dev/null
+++ b/offapi/com/sun/star/form/component/ScrollBar.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_ScrollBar_idl__
+#define __com_sun_star_form_component_ScrollBar_idl__
+
+#include <com/sun/star/awt/UnoControlScrollBarModel.idl>
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/form/XReset.idl>
+
+
+
+module com { module sun { module star { module form { module component {
+
+
+/** specifies the model of a scroll bar control.
+*/
+service ScrollBar
+{
+ service com::sun::star::awt::UnoControlScrollBarModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** resets the control.
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlScrollBarModel::ScrollValue
+ @see com::sun::star::form::XReset
+ */
+ [property] long DefaultScrollValue;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/SpinButton.idl b/offapi/com/sun/star/form/component/SpinButton.idl
new file mode 100644
index 000000000..7feb1459d
--- /dev/null
+++ b/offapi/com/sun/star/form/component/SpinButton.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_SpinButton_idl__
+#define __com_sun_star_form_component_SpinButton_idl__
+
+#include <com/sun/star/awt/UnoControlSpinButtonModel.idl>
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/form/XReset.idl>
+
+
+
+module com { module sun { module star { module form { module component {
+
+
+/** specifies the model of a scroll bar control.
+*/
+service SpinButton
+{
+ service com::sun::star::awt::UnoControlSpinButtonModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** resets the control.
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlSpinButtonModel::SpinValue
+ @see com::sun::star::form::XReset
+ */
+ [property] long DefaultSpinValue;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/SubmitButton.idl b/offapi/com/sun/star/form/component/SubmitButton.idl
new file mode 100644
index 000000000..3a0cf89b1
--- /dev/null
+++ b/offapi/com/sun/star/form/component/SubmitButton.idl
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_SubmitButton_idl__
+#define __com_sun_star_form_component_SubmitButton_idl__
+
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/awt/UnoControlButtonModel.idl>
+#include <com/sun/star/form/submission/XSubmissionSupplier.idl>
+
+
+module com { module sun { module star { module form { module component {
+
+
+/** specifies the control model for a button, part of a form component hierarchy,
+ which can be bound to external submissions.
+
+ @see CommandButton
+ */
+service SubmitButton
+{
+ service com::sun::star::form::FormControlModel;
+
+ /** allows binding external submissions to the control model
+
+ <p>Note that the control model itself will not make any use of the submission.
+ Instead, submissions are triggered by a control (not a control <em>model</em>).
+ Thus, the com::sun::star::form::control::SubmitButton
+ control associated with a SubmitButton model is responsible for
+ using the submission supplied at this model.</p>
+ */
+ interface com::sun::star::form::submission::XSubmissionSupplier;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/TextField.idl b/offapi/com/sun/star/form/component/TextField.idl
new file mode 100644
index 000000000..733edc45d
--- /dev/null
+++ b/offapi/com/sun/star/form/component/TextField.idl
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_TextField_idl__
+#define __com_sun_star_form_component_TextField_idl__
+
+#include <com/sun/star/awt/UnoControlEditModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+#include <com/sun/star/form/component/RichTextControl.idl>
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies a component which allows the input of text, either single- or multi-line.
+ */
+published service TextField
+{
+ service com::sun::star::awt::UnoControlEditModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** specifies optional capabilities for displaying and inputting formatted text.
+
+ <p>If the RichTextControl::RichText property is set to `TRUE`,
+ then the TextField component will disable it's reset capabilities. This means
+ that all calls to com::sun::star::form::XReset::reset() will be ignored.</p>
+ */
+ [optional] service RichTextControl;
+
+ /** can be used to reset the control to its default text.
+
+ @see TextField::DefaultText
+ */
+ interface com::sun::star::form::XReset;
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlEditModel::Text
+ @see com::sun::star::form::XReset
+ */
+ [property] string DefaultText;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/component/TimeField.idl b/offapi/com/sun/star/form/component/TimeField.idl
new file mode 100644
index 000000000..79d937ac4
--- /dev/null
+++ b/offapi/com/sun/star/form/component/TimeField.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_form_component_TimeField_idl__
+#define __com_sun_star_form_component_TimeField_idl__
+
+#include <com/sun/star/awt/UnoControlTimeFieldModel.idl>
+
+#include <com/sun/star/form/FormControlModel.idl>
+
+#include <com/sun/star/form/XReset.idl>
+
+
+
+ module com { module sun { module star { module form { module component {
+
+
+/** specifies the control model for a field which can be used to input time values.
+ */
+published service TimeField
+{
+ service com::sun::star::awt::UnoControlTimeFieldModel;
+
+ service com::sun::star::form::FormControlModel;
+
+ /** resets the control.
+
+ <p>If you do not set a value for the #DefaultTime, then resetting the control
+ will result in setting to the current system time. This is for HTML compatibility.</p>
+ */
+ interface com::sun::star::form::XReset;
+
+
+ /** contains a default value for the control.
+
+ <p>This value is used when the control is initially displayed, and for resetting it.</p>
+
+ @see com::sun::star::awt::UnoControlTimeFieldModel::Time
+ @see com::sun::star::form::XReset
+ */
+ [property] long DefaultTime;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */