/* -*- 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_frame_FrameAction_idl__
#define __com_sun_star_frame_FrameAction_idl__



 module com {  module sun {  module star {  module frame {

/** these are the events which can happen to the components in frames
    of the desktop

    <p>
    Interest listener can get information about loaded/reloaded or unloaded
    components into a Frame.
    </p>

    @see XFrame
    @see XFrameActionListener
    @see FrameActionEvent
 */
published enum FrameAction
{
    /** an event of this kind is broadcast whenever a component is
        attached to a frame

        <p>
        This is almost the same as the instantiation of the component
        within that frame. The component is attached to the frame
        immediately before this event is broadcast.
        </p>

        @see XFrame::setComponent()
     */
    COMPONENT_ATTACHED,

    /** an event of this kind is broadcast whenever a component is
        detaching from a frame

        <p>
        This is quite the same as the destruction of the component
        which was in that frame. At the moment when the event is broadcast
        the component is still attached to the frame but in the next
        moment it won't.
        </p>

        @see XFrame::setComponent()
     */
    COMPONENT_DETACHING,

    /** an event of this kind is broadcast whenever a component is
        attached to a new model.

        <p>
        In this case the component remains the same but operates
        on a new model component.
        </p>
     */
    COMPONENT_REATTACHED,

    /** an event of this kind is broadcast whenever a component gets
        activated

        <p>
        Activations are broadcast from the top component which was
        not active before, down to the inner most component.
        </p>

        @see XFrame::activate()
     */
    FRAME_ACTIVATED,

    /** an event of this kind is broadcasted immediately before the
        component is deactivated

        <p>
        Deactivations are broadcast from the innermost component which
        does not stay active up to the outer most component which does not
        stay active.
        </p>

        @see XFrame::deactivate()
     */
    FRAME_DEACTIVATING,

    /** an event of this kind is broadcast whenever a component changes
        its internal context (i.e., the selection).

        <p>
        If the activation status within a frame changes, this counts as
        a context change too.
        </p>

        @see XFrame::contextChanged()
     */
    CONTEXT_CHANGED,

    /** an event of this kind is broadcast by an active frame when it
        is getting UI control (tool control).

        @see XFrame::activate()
     */
    FRAME_UI_ACTIVATED,

    /** an event of this kind is broadcast by an active frame when it
        is losing UI control (tool control).

        @see XFrame::deactivate()
     */
    FRAME_UI_DEACTIVATING
};


}; }; }; };

#endif

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