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_PropertyControlType_idl__
25#define __com_sun_star_inspection_PropertyControlType_idl__
26
27//=============================================================================
28module com {  module sun {  module star {  module inspection {
29
30//-----------------------------------------------------------------------------
31/** describes pre-defined possible control types to be used to display and enter
32    property values within a <type>ObjectInspector</type>.
33
34    <p>The type of a control determines its visual appearance, its behaviour, and - important
35    for property handlers using a control - the expected type when reading and writing the
36    control's value.</p>
37
38    @see XPropertyControl
39    @see XPropertyControlFactory
40    @see XPropertyControl::ValueType
41
42    @since OpenOffice 2.0.3
43*/
44published constants PropertyControlType
45{
46    /** denotes a control which allows the user to choose from a list of
47        possible property values
48
49        <p>Controls of type <member>ListBox</member> exchange their values as <code>string</code>.</p>
50
51        <p>Additionally, those controls support the <type>XStringListControl</type> interface.</p>
52    */
53    const short ListBox = 1;
54
55    /** denotes a control which allows the user to choose from a list of
56        possible property values, combined with the possibility to enter a new
57        property value.
58
59        <p>Controls of type <member>ComboBox</member> exchange their values as <code>string</code>.</p>
60
61        <p>Additionally, those controls support the <type>XStringListControl</type> interface.</p>
62    */
63    const short ComboBox = 2;
64
65    /** denotes a control which allows the user to enter property values consisting of a single line of text
66
67        <p>Controls of type <member>TextField</member> exchange their values as <code>string</code>.</p>
68    */
69    const short TextField = 3;
70
71    /** denotes a control which allows the user to enter pure text, including line breaks
72
73        <p>Controls of type <member>MultiLineTextField</member> exchange their values as <code>string</code>.</p>
74    */
75    const short MultiLineTextField = 4;
76
77    /** denotes a control which allows the user to enter a single character
78
79        <p>Controls of type <member>CharacterField</member> exchange their values as <code>short</code>,
80        being a single UTF-16 character.</p>
81    */
82    const short CharacterField = 5;
83
84    /** denotes a control which allows the user to enter a list of single-line strings
85
86        <p>Controls of type <member>StringListField</member> exchange their values as <code>sequence&lt; string &gt;<code>.</p>
87    */
88    const short StringListField = 6;
89
90    /** denotes a control which allows the user to choose from a list of colors.
91
92        <p>Controls of type <member>ColorListBox</member> usually exchange their values as
93        <type scope="com::sun::star::util">Color</type>.</p>
94
95        <p>Additionally, those controls support the <type>XStringListControl</type> interface. If you use
96        this interface to add additional entries to the list box, which have no color associated with it,
97        then you can also exchange values as <code>string</code>. That is, if you write a string into
98        <member>XPropertyControl::Value</member>, and if this string has previously been added to the list
99        using the <type>XStringListControl</type> interface, this string is selected. Vice versa, if the user
100        selects one of those non-color strings in the list, then reading <member>XPropertyControl::Value</member>
101        will retrieve you this stting.</p>
102    */
103    const short ColorListBox = 7;
104
105    /** denotes a control which allows the user to enter a numerical value
106
107        <p>Controls of type <member>NumericField</member> exchange their values as <code>double</code>.</p>
108
109        <p>Additionally, those controls support the <type>XNumericControl</type> interface.</p>
110    */
111    const short NumericField = 8;
112
113    /** denotes a control which allows the user to enter a date value
114
115        <p>Controls of type <member>DateField</member> exchange their values as <type scope="com::sun::star::util">Date</type>.</p>
116    */
117    const short DateField = 9;
118
119    /** denotes a control which allows the user to enter a time value
120
121        <p>Controls of type <member>TimeField</member> exchange their values as <type scope="com::sun::star::util">Time</type>.</p>
122    */
123    const short TimeField = 10;
124
125    /** denotes a control which allows the user to enter a combined date/time value
126
127        <p>Controls of type <member>DateTimeField</member> exchange their values as <type scope="com::sun::star::util">DateTime</type>.</p>
128    */
129    const short DateTimeField = 11;
130
131    /** denotes a control which displays a string in a hyperlink-like appearance
132
133        <p>Controls of type <member>HyperlinkField</member> exchange their values as <code>string</code>.</p>
134
135        <p>Additionally, those controls support the <type>XHyperlinkControl</type> interface.</p>
136    */
137    const short HyperlinkField = 12;
138
139    /** denotes a non-standard property control, which is usually provided by an <type>XPropertyHandler</type>
140    */
141    const short Unknown = 13;
142};
143
144//=============================================================================
145
146}; }; }; };
147
148#endif
149
150