VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/include/QIApplication.h@ 12387

Last change on this file since 12387 was 8170, checked in by vboxsync, 17 years ago

Rebranding: replacing more innotek strings.

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1/** @file
2 *
3 * VBox frontends: Qt GUI ("VirtualBox"):
4 * VirtualBox Qt extensions: QIApplication class declaration
5 */
6
7/*
8 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19 * Clara, CA 95054 USA or visit http://www.sun.com if you need
20 * additional information or have any questions.
21 */
22
23#ifndef __QIApplication_h__
24#define __QIApplication_h__
25
26#include <qapplication.h>
27
28typedef bool (*QIFilterCallback)(EventRef inEvent, void *inUserArg);
29
30
31/** Sligtly modified QApplication class.
32 *
33 * The sole purpose of this class (ATM) is to hook the macEventFilter
34 * in order to intercept Command-Q, Command-H and similar menu hot-keys
35 * before the HI Manager translate them into (menu) command events and
36 * start blinking menus in the menu bar.
37 *
38 * @remark
39 * A special hack in qeventloop_mac.cpp is required for this
40 * to work. Overloading QEventLoop::processEvents isn't feasable
41 * unfortunately, thus the horrible hacks. Qt 4 does seem to provide
42 * an interface similar to the one we create here.
43 *
44 * Btw. is QI* the right right way to do this? Or should it perhapse
45 * be called VBoxQApplication or something?
46 */
47class QIApplication : public QApplication
48{
49public:
50 QIApplication (int &argc, char **argv)
51 : QApplication (argc, argv)
52#ifdef Q_WS_MAC
53 , m_callback (NULL)
54 , m_callbackUserArg (NULL)
55#endif
56 {
57 }
58
59#ifdef Q_WS_MAC
60 bool macEventFilter (EventHandlerCallRef, EventRef inEvent)
61 {
62 if ( m_callback
63 && m_callback (inEvent, m_callbackUserArg))
64 return true;
65 return false;
66 }
67
68 void setEventFilter (QIFilterCallback callback, void *inUserArg)
69 {
70 m_callback = callback;
71 m_callbackUserArg = inUserArg;
72 }
73
74protected:
75 QIFilterCallback m_callback;
76 void *m_callbackUserArg;
77
78public:
79#endif
80};
81
82
83#endif // __QIApplication_h__
84
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette