/**************************************************************
 * 
 * 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_drawing_framework_ConfigurationChangeEvent_idl__
#define __com_sun_star_drawing_framework_ConfigurationChangeEvent_idl__

#ifndef __com_sun_star_lang_EventObject_idl__
#include <com/sun/star/lang/EventObject.idl>
#endif

module com { module sun { module star { module uno { interface XInterface; }; }; }; };

module com { module sun { module star { module drawing { module framework {

published interface XConfiguration;
published interface XResourceId;

/** Objects of this class are used for notifying changes of the
    configuration.

    <p>They are broadcasted by the configuration controller
    which maintains the configuration.  The set of types of configuration
    changes is not fixed and is not maintained or documented in one
    place.</p>

    <p>The set of used members and the exact meaning of their values is not the
    same for all types.  Therefore, the descriptions of the members are just
    general guidelines.   See <type>XConfigurationController</type> for a
    list of event types used by the basic drawing framework.</p>
*/
published struct ConfigurationChangeEvent
     : ::com::sun::star::lang::EventObject
{
    /** The type of configuration change is a free-form string.  This is the
        only member that is always set.  The values of the other members
        depend on the configuration change type and may or may not be set.
    */
    string Type;

    /** The current configuration, depending on the event type, either
        before or after the change.  May be an empty reference.
    */
    XConfiguration Configuration;

    /** The resource id that is part of the configuration change.
    */
    XResourceId ResourceId;

    /** The resource object that corresponds to the ResourceId.  May
        be an empty reference.
    */
    com::sun::star::uno::XInterface ResourceObject;

    /** Each listener is called with exactly the <member>UserData</member>
        that was given when the listener was registered.
    */
    any UserData;
};

}; }; }; }; }; // ::com::sun::star::drawing::framework

#endif
