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#ifndef __com_sun_star_beans_PropertyState_idl__
24#define __com_sun_star_beans_PropertyState_idl__
25
26
27//=============================================================================
28
29module com {  module sun {  module star {  module beans {
30
31//=============================================================================
32
33/** This enumeration lists the states that a property value can have.
34
35	<p>The state consists of two aspects: </p>
36	<ol>
37		<li>whether a value is available or void, </li>
38		<li>whether the value is stored in the property set itself or is a
39			default, or ambiguous.  </li>
40	</ol>
41
42	@see XPropertyState
43	@see Property
44 */
45published enum PropertyState
46{
47	//-------------------------------------------------------------------------
48
49	/** The value of the property is stored in the PropertySet itself.
50
51		<p>The property value must be available and of the specified type.
52		If the <member>PropertyAttribute</member> field in the struct
53		<type>Property</type> contains <const>PropertyAttribute::MAYBEVOID</const>,
54		then the value may be void. </p>
55	 */
56	DIRECT_VALUE,
57
58	//-------------------------------------------------------------------------
59
60	/** The value of the property is available from a master (e.g., template).
61
62		<p>The <member>PropertyAttribute</member> field in the struct
63		<type>Property</type> must contain the
64		<const>PropertyAttribute::MAYBEDEFAULT</const> flag. The property
65		value must be available and of the specified type. If the
66		<member>PropertyAttribute</member> field in the struct <type>Property</type>
67		contains <const>PropertyAttribute::MAYBEVOID</const>, then the
68		value may be void. </p>
69	 */
70	DEFAULT_VALUE,
71
72	//-------------------------------------------------------------------------
73
74	/** The value of the property is only a recommendation because there
75		are multiple values for this property (e.g., from a multi selection).
76
77		<p>The <member>PropertyAttribute</member> field in the struct
78		<type>Property</type> must contain the
79		<const>PropertyAttribute::MAYBEAMBIGUOUS</const> flag. The
80		property value must be available and of the specified type.
81		If the Attribute field in the struct Property contains
82		<const>PropertyAttribute::MAYBEVOID</const>, then the value
83		may be void. </p>
84	 */
85	AMBIGUOUS_VALUE
86
87};
88
89//=============================================================================
90
91}; }; }; };
92
93#endif
94