summaryrefslogtreecommitdiffstats
path: root/udkapi/com/sun/star/beans/XPropertyState.idl
blob: b9f34b38f61ac3c86172b25c5a6a52090cbac3de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */
#ifndef __com_sun_star_beans_XPropertyState_idl__
#define __com_sun_star_beans_XPropertyState_idl__

#include <com/sun/star/uno/XInterface.idl>

#include <com/sun/star/beans/PropertyState.idl>

#include <com/sun/star/beans/UnknownPropertyException.idl>

#include <com/sun/star/lang/WrappedTargetException.idl>

#include <com/sun/star/beans/XPropertyStateChangeListener.idl>


//=============================================================================

module com {  module sun {  module star {  module beans {

//=============================================================================

/** makes it possible to query information about the state of
    one or more properties.

    <p>The state contains the information if:</p>
    <ul>
        <li>a value is available or void</li>
        <li>the value is stored in the object itself, or if a default value is to be used</li>
        <li>and if the value cannot be determined, due to ambiguity
            (multi selection with multiple values).</li>
    </ul>
 */
published interface XPropertyState: com::sun::star::uno::XInterface
{
    //-------------------------------------------------------------------------

    /** @returns
                the state of the property.

        @param  aPropertyName
            specifies the name of the property.

        @throws UnknownPropertyException
            if the property does not exist.
     */
    com::sun::star::beans::PropertyState getPropertyState( [in] string PropertyName )
            raises( com::sun::star::beans::UnknownPropertyException );

    //-------------------------------------------------------------------------

    /** @returns
            a sequence of the states of the properties which are specified
                by their names.

        <p>The order of the states is correlating to the order of the
        given property names. </p>

        @param aPropertyNames
            contains the sequence of property names.

        @throws UnknownPropertyException
            if one property does not exist.
     */
    sequence<com::sun::star::beans::PropertyState> getPropertyStates(
            [in] sequence<string> aPropertyName )
        raises( com::sun::star::beans::UnknownPropertyException );

    //-------------------------------------------------------------------------

    /** Sets the property to default value.

        <p>The value depends on the implementation of this interface.
        If it is a bound property, you must change the value before
        the change events are fired.  If it is a constrained property, you
        must fire the vetoable event before you change the property value.
        </p>

        @param aPropertyname
            specifies the name of the property.

        @throws UnknownPropertyException
            if the property does not exist.
     */
    void setPropertyToDefault( [in] string PropertyName )
            raises( com::sun::star::beans::UnknownPropertyException );

    //-------------------------------------------------------------------------

    /** @returns
            the default value of the property with the name PropertyName.

        <p>If no default exists, is not known or is void,
        then the return type is <atom>void</atom>.

        @param aPropertyName
            specifies the name of the property.

        @throws UnknownPropertyException
            if the property does not exist.

        @throws  com::sun::star::lang::WrappedTargetException
            if the implementation has an internal reason for the exception.
            In this case the original exception is wrapped into that
            <type scope="com::sun::star::lang">WrappedTargetException</type>.
     */
    any getPropertyDefault( [in] string aPropertyName )
            raises( com::sun::star::beans::UnknownPropertyException,
                    com::sun::star::lang::WrappedTargetException );
};

//=============================================================================

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */