1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_form_control_SubmitButton_idl__
25#define __com_sun_star_form_control_SubmitButton_idl__
26
27#ifndef __com_sun_star_awt_UnoControlButton_idl__
28#include <com/sun/star/awt/UnoControlButton.idl>
29#endif
30
31#ifndef __com_sun_star_form_submission_XSubmission_idl__
32#include <com/sun/star/form/submission/XSubmission.idl>
33#endif
34
35//=============================================================================
36
37module com {  module sun {  module star {  module form {  module control {
38
39//=============================================================================
40
41/** specifies a button control which can execute external submissions
42
43	<p>The model of the control has to support the <type scope="com::sun::star::form::component">SubmitButton</type>
44	service.</p>
45
46    <p>The control is clickable. When clicked (by mouse or keyboard, or programmatically),
47        the following happens:
48    <ol><li>Any <type scope="com::sun::star::form::submission">XSubmissionVetoListener</type>s registered
49            at the component are given the chance to veto the submission.
50        </li>
51        <li>The model of the control is examined for an external submission object. That is,
52            <member scope="com::sun::star::form::submission">XSubmissionSupplier::getSubmission</member>
53            is called at the model.<br/>
54            If there is such a submission object, its
55            <member scope="com::sun::star::form::submission">XSubmission::submit</member> method is invoked.
56        </li>
57        <li>If there is no external submission, the parent object of the model is examined
58            for the presence of the <type scope="com::sun::star::form">XSubmit</type> interface. If it
59            is present, it's <member scope="com::sun::star::form">XSubmit::submit</member> method is
60            invoked.<br/>
61            Since the parent object of a submit button can only be a <type scope="com::sun::star::form::component">Form</type>,
62            this means that <type>SubmitButton</type>s are also able to submit <type scope="com::sun::star::form::component">HTMLForm</type>s.
63        </li>
64    </ol>
65    </p>
66*/
67service SubmitButton
68{
69    /** allows interception (and vetoing) of submissions triggered by the control.
70    */
71    interface com::sun::star::form::submission::XSubmission;
72};
73
74//=============================================================================
75
76}; }; }; }; };
77
78/*=============================================================================
79
80=============================================================================*/
81
82#endif
83
84
85