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_inspection_XPropertyControlFactory_idl__
25#define __com_sun_star_inspection_XPropertyControlFactory_idl__
26
27#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
28#include <com/sun/star/lang/IllegalArgumentException.idl>
29#endif
30
31//=============================================================================
32module com {  module sun {  module star {  module inspection {
33
34published interface XPropertyControl;
35
36//-----------------------------------------------------------------------------
37/** a factory for <type>XPropertyControl</type>s
38
39    @since OpenOffice 2.0.3
40*/
41published interface XPropertyControlFactory
42{
43    /** creates a <type>XPropertyControl</type>
44
45        <p>A <type>XPropertyControlFactory</type> can create any of the control types denoted by
46        the <type>PropertyControlType</type> constants.</p>
47
48        @param ControlType
49            the type of the requested control
50
51        @param CreateReadOnly
52            determines whether the newly created control should be readonly.
53
54            <p>If this argument is <TRUE/>, this does not necessarily mean that the property cannot be
55            changed at all in the <type>ObjectInspector</type>. Instead, an <type>XPropertyHandler</type>
56            can still decide that there is a dedicated UI for entering the property value,
57            which is usually triggered by a <member>LineDescriptor::PrimaryButton</member>.</p>
58
59            <p>Note that this parameter might be ignored if the <member>XObjectInspectorModel::IsReadOnly</member>
60            attribute is <TRUE/>, in which case all created property controls must be readonly.</p>
61
62        @returns
63            a control of the given type.
64
65        @throws com::sun::star::lang::IllegalArgumentException
66            if the given <arg>ControlType</arg> is not a value <type>PropertyControlType</type>
67    */
68    XPropertyControl    createPropertyControl( [in] short ControlType, [in] boolean CreateReadOnly )
69        raises ( com::sun::star::lang::IllegalArgumentException );
70};
71
72//=============================================================================
73
74}; }; }; };
75
76#endif
77
78