/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


#ifndef __com_sun_star_modules_form_idl__
#define __com_sun_star_modules_form_idl__

module com { module sun { module star { module form {

    /** collects functionality for binding form controls to external
        data sources.
    */
    module binding { };

    /** collects form control model descriptions
    */
    module component { };

    /** collects form control descriptions
    */
    module control { };

    /** collects services for inspecting form/components
        @see com::sun::star::inspection::ObjectInspector
        @see com::sun::star::inspection
    */
    module inspection { };

    /** collects functionality needed during a form's runtime, e.g.
        when it is active and interacts with the user.
    */
    module runtime { };

    /** collects functionality for submitting forms to external data sinks
    */
    module submission { };

    /** collects functionality to validate form components by help
        of external validator instances
    */
    module validation { };

}; }; }; };

#endif

