/****************************************************************************
 **
 ** Copyright (C) Qxt Foundation. Some rights reserved.
 **
 ** This file is part of the documentation of the Qxt library.
 **
 ** This library is free software; you can redistribute it and/or modify it
 ** under the terms of the Common Public License, version 1.0, as published
 ** by IBM, and/or under the terms of the GNU Lesser General Public License,
 ** version 2.1, as published by the Free Software Foundation.
 **
 ** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
 ** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
 ** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
 ** FITNESS FOR A PARTICULAR PURPOSE.
 **
 ** You should have received a copy of the CPL and the LGPL along with this
 ** file. See the LICENSE file and the cpl1.0.txt/lgpl-2.1.txt files
 ** included with the source distribution for more information.
 ** If you did not receive a copy of the licenses, contact the Qxt Foundation.
 **
 ** <http://libqxt.org>  <foundation@libqxt.org>
 **
 ****************************************************************************/

/*!
    \class QxtNativeEventFilter
    \inmodule QxtGui
    \brief The QxtNativeEventFilter class provides a native event filter to
	access platform specific events.

    QxtNativeEventFilter provides access to platform specific native events
    without the need of subclassing QApplication.

    \bold {Note:} QxtNativeEventFilter requires QxtApplication.

    Example usage:
    \code
    qxtApp->installNativeEventFilter(myObject);

    class MyObject : public QxtNativeEventFilter {
        public:
            ...

            bool x11EventFilter(XEvent* event) {
                if (event->type == ...) {
                    ...
                }
                return false;
            }

            bool winEventFilter(MSG* msg, long* result) {
                if (msg->message == ...) {
                    ...
                }
                return false;
            }

            bool macEventFilter(EventHandlerCallRef caller, EventRef event) {
                if (GetEventClass(event) == ...) {
                    ...
                }
                return false;
            }
    };
    \endcode

    \sa QxtApplication::installNativeEventFilter()
 */

/*!
    \fn QxtNativeEventFilter::~QxtNativeEventFilter()

    Destructs the native event filter. The native event filter is
    automatically removed from the application.

    \sa QxtApplication::removeNativeEventFilter()
 */

/*!
    \fn QxtNativeEventFilter::x11EventFilter(XEvent* event)

    Filters X11 events if this object has been installed as a native event filter.
    The events are passed in the \a event parameter.

    In your reimplementation of this function, if you want to filter the event out,
    i.e. stop it being handled further, return \c true; otherwise return \c false.

    \sa QxtApplication::installNativeEventFilter()
 */

/*!
    \fn QxtNativeEventFilter::winEventFilter(MSG* msg, long* result)

    Filters Windows events if this object has been installed as a native event filter.
    The window messages are passed in the \a msg parameter and the return value of
    the window procedure can be set to the \a result parameter.

    In your reimplementation of this function, if you want to filter the event out,
    i.e. stop it being handled further, return \c true; otherwise return \c false.

    \sa QxtApplication::installNativeEventFilter()
 */

/*!
    \fn QxtNativeEventFilter::macEventFilter(EventHandlerCallRef caller, EventRef event)

    Filters Mac events if this object has been installed as a native event filter.
    The events are passed in the \a event parameter with the \a caller parameter.

    In your reimplementation of this function, if you want to filter the event out,
    i.e. stop it being handled further, return \c true; otherwise return \c false.

    \sa QxtApplication::installNativeEventFilter()
 */





















