/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: FrameAction.idl,v $
 *
 *  $Revision: 1.8 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-08 01:00:21 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/
#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 informations about loaded/realoed or unloaded
    components into a <type>Frame</type>.
    </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 broacast 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
