/* -*- 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_awt_FocusEvent_idl__
#define __com_sun_star_awt_FocusEvent_idl__

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

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



 module com {  module sun {  module star {  module awt {


/** specifies a keyboard focus event.

    <p>There are two levels of focus change events: permanent and temporary.
    Permanent focus change events occur when focus is directly moved
    from one component to another, such as through calls to requestFocus()
    or as the user uses the Tab key to traverse components.
    Temporary focus change events occur when focus is
    gained or lost for a component as the indirect result of another
    operation, such as window deactivation or a scrollbar drag.  In this
    case, the original focus state will automatically be restored once
    that operation is finished, or for the case of window deactivation,
    when the window is reactivated.  Both permanent and temporary focus
    events are delivered using the FOCUS_GAINED and FOCUS_LOST event ids;
    the levels may be distinguished in the event using the isTemporary()
    method.</p>
 */
published struct FocusEvent: com::sun::star::lang::EventObject
{

    /** specifies the reason for the focus change as an arithmetic-or
        combination of FocusChangeReason.

        @see FocusChangeReason
     */
    short FocusFlags;


    /** contains the window which gets the focus on a lose focus event.
     */
    com::sun::star::uno::XInterface NextFocus;


    /** specifies if this focus change event is a temporary change.
     */
    boolean Temporary;

};


}; }; }; };

#endif

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