diff options
| author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 | 
|---|---|---|
| committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 | 
| commit | d796c9dd933ab96ec83b9a634feedd5d32e1ba3f (patch) | |
| tree | 6e3dcca4f77e20ec8966c666aac7c35bd4704053 /src/kernel/qapplication.h | |
| download | tqt-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.tar.gz tqt-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.zip  | |
Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731
Diffstat (limited to 'src/kernel/qapplication.h')
| -rw-r--r-- | src/kernel/qapplication.h | 555 | 
1 files changed, 555 insertions, 0 deletions
diff --git a/src/kernel/qapplication.h b/src/kernel/qapplication.h new file mode 100644 index 000000000..7a50a164e --- /dev/null +++ b/src/kernel/qapplication.h @@ -0,0 +1,555 @@ +/**************************************************************************** +** +** Definition of TQApplication class +** +** Created : 931107 +** +** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved. +** +** This file is part of the kernel module of the TQt GUI Toolkit. +** +** This file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free +** Software Foundation and appearing in the files LICENSE.GPL2 +** and LICENSE.GPL3 included in the packaging of this file. +** Alternatively you may (at your option) use any later version +** of the GNU General Public License if such license has been +** publicly approved by Trolltech ASA (or its successors, if any) +** and the KDE Free TQt Foundation. +** +** Please review the following information to ensure GNU General +** Public Licensing retquirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/. +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at sales@trolltech.com. +** +** This file may be used under the terms of the Q Public License as +** defined by Trolltech ASA and appearing in the file LICENSE.TQPL +** included in the packaging of this file.  Licensees holding valid TQt +** Commercial licenses may use this file in accordance with the TQt +** Commercial License Agreement provided with the Software. +** +** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, +** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +** herein. +** +**********************************************************************/ + +#ifndef TQAPPLICATION_H +#define TQAPPLICATION_H + +#ifndef QT_H +#include "qdesktopwidget.h" +#include "qasciidict.h" +#include "qpalette.h" +#include "qtranslator.h" +#include "qstrlist.h" +#include "qstringlist.h" +#endif // QT_H + +class TQSessionManager; +class TQStyle; +class TQTranslator; +class TQEventLoop; +#if defined(Q_WS_X11) +class TQIMEvent; +#endif +#if defined(Q_WS_QWS) +class TQWSDecoration; +#endif + +#ifdef QT_THREAD_SUPPORT +class TQMutex; +#endif // QT_THREAD_SUPPORT + + +class TQApplication; +extern Q_EXPORT TQApplication *qApp;		// global application object + + +class Q_EXPORT TQApplication : public TQObject +{ +    Q_OBJECT +public: +    TQApplication( int &argc, char **argv ); +    TQApplication( int &argc, char **argv, bool GUIenabled ); +    enum Type { Tty, GuiClient, GuiServer }; +    TQApplication( int &argc, char **argv, Type ); +#if defined(Q_WS_X11) +    TQApplication( Display* dpy, HANDLE visual = 0, HANDLE cmap = 0 ); +    TQApplication( Display *dpy, int argc, char **argv, +		  HANDLE visual = 0, HANDLE cmap= 0 ); +#endif +    virtual ~TQApplication(); + +    int		    argc()	const; +    char	  **argv()	const; + +    Type type() const; + +#ifndef QT_NO_STYLE +    static TQStyle  &style(); +    static void	    setStyle( TQStyle* ); +    static TQStyle*  setStyle( const TQString& ); +#endif +#ifndef Q_QDOC +    enum ColorMode { NormalColors, CustomColors }; +    static ColorMode colorMode(); +    static void      setColorMode( TQApplication::ColorMode ); +#endif + +    enum ColorSpec { NormalColor=0, CustomColor=1, ManyColor=2 }; +    static int	     colorSpec(); +    static void      setColorSpec( int ); +#ifndef QT_NO_CURSOR +    static TQCursor  *overrideCursor(); +    static void	     setOverrideCursor( const TQCursor &, bool replace=FALSE ); +    static void	     restoreOverrideCursor(); +#endif +    static bool	     hasGlobalMouseTracking(); +    static void	     setGlobalMouseTracking( bool enable ); +#ifndef QT_NO_PALETTE +    static TQPalette  palette( const TQWidget* = 0 ); +    static void	     setPalette( const TQPalette &, bool informWidgets=FALSE, +				 const char* className = 0 ); +#endif +    static TQFont     font( const TQWidget* = 0 ); +    static void	     setFont( const TQFont &, bool informWidgets=FALSE, +			      const char* className = 0 ); +    static TQFontMetrics fontMetrics(); + +    TQWidget	    *mainWidget()  const; +    virtual void     setMainWidget( TQWidget * ); +    virtual void     polish( TQWidget * ); + +    static TQWidgetList *allWidgets(); +    static TQWidgetList *topLevelWidgets(); + +    static TQDesktopWidget   *desktop(); + +    static TQWidget     *activePopupWidget(); +    static TQWidget     *activeModalWidget(); +#ifndef QT_NO_CLIPBOARD +    static TQClipboard  *clipboard(); +#endif +    TQWidget	       *focusWidget() const; +    TQWidget	       *activeWindow() const; + +    static TQWidget  *widgetAt( int x, int y, bool child=FALSE ); +    static TQWidget  *widgetAt( const TQPoint &, bool child=FALSE ); + +    static TQEventLoop *eventLoop(); + +    int		     exec(); +    void	     processEvents(); +    void	     processEvents( int maxtime ); +    void	     processOneEvent(); +    bool	     hasPendingEvents(); +    int		     enter_loop(); +    void	     exit_loop(); +    int		     loopLevel() const; +    static void	     exit( int retcode=0 ); + +    static bool	     sendEvent( TQObject *receiver, TQEvent *event ); +    static void	     postEvent( TQObject *receiver, TQEvent *event ); +    static void	     sendPostedEvents( TQObject *receiver, int event_type ); +    static void	     sendPostedEvents(); + +    static void      removePostedEvents( TQObject *receiver ); + +    virtual bool     notify( TQObject *, TQEvent * ); + +    static bool	     startingUp(); +    static bool	     closingDown(); + +    static void	     flushX(); +    static void flush(); +    static void	     syncX(); + +    static void	     beep(); + +#ifndef QT_NO_TRANSLATION +# ifndef QT_NO_TEXTCODEC +    void	     setDefaultCodec( TQTextCodec * ); +    TQTextCodec*	     defaultCodec() const; +# endif +    void	     installTranslator( TQTranslator * ); +    void	     removeTranslator( TQTranslator * ); +#endif +    enum Encoding { DefaultCodec, UnicodeUTF8 }; +    TQString	     translate( const char * context, +				const char * key, +				const char * comment = 0, +				Encoding encoding = DefaultCodec ) const; +#ifndef QT_NO_DIR +    TQString   applicationDirPath(); +    TQString   applicationFilePath(); +#endif +#ifndef QT_NO_PALETTE +    // obsolete functions +    static void      setWinStyleHighlightColor( const TQColor &c ) { +	TQPalette p( palette() ); +	p.setColor( TQColorGroup::Highlight, c ); +	setPalette( p, TRUE); +    } +    static const TQColor &winStyleHighlightColor() { +	return palette().active().highlight(); +    } +#endif +    static void      setDesktopSettingsAware( bool ); +    static bool      desktopSettingsAware(); + +    static void      setCursorFlashTime( int ); +    static int       cursorFlashTime(); + +    static void      setDoubleClickInterval( int ); +    static int       doubleClickInterval(); +#ifndef QT_NO_WHEELEVENT +    static void      setWheelScrollLines( int ); +    static int       wheelScrollLines(); +#endif +    static void	     setGlobalStrut( const TQSize & ); +    static TQSize     globalStrut(); + +#ifndef QT_NO_COMPONENT +    static void      setLibraryPaths( const TQStringList & ); +    static TQStringList libraryPaths(); +    static void      addLibraryPath( const TQString & ); +    static void      removeLibraryPath( const TQString & ); +#endif // QT_NO_COMPONENT +    static void setStartDragTime( int ms ); +    static int startDragTime(); +    static void setStartDragDistance( int l ); +    static int startDragDistance(); + +    static void setReverseLayout( bool b ); +    static bool reverseLayout(); + +    static int horizontalAlignment( int align ); + +    static bool	    isEffectEnabled( TQt::UIEffect ); +    static void	    setEffectEnabled( TQt::UIEffect, bool enable = TRUE ); + +#if defined(Q_WS_MAC) +    virtual bool     macEventFilter( EventHandlerCallRef, EventRef ); +#endif +#if defined(Q_WS_WIN) +    virtual bool     winEventFilter( MSG * ); +#endif +#if defined(Q_WS_X11) +    virtual bool     x11EventFilter( XEvent * ); +    virtual int	     x11ClientMessage( TQWidget*, XEvent*, bool passive_only); +    int              x11ProcessEvent( XEvent* ); +#endif +#if defined(Q_WS_QWS) +    virtual bool     qwsEventFilter( TQWSEvent * ); +    int              qwsProcessEvent( TQWSEvent* ); +    void             qwsSetCustomColors( TQRgb *colortable, int start, int numColors ); +/*! +  \internal +    Returns true if the process is GUI server +*/ +    bool          qwsIsGUIServer(); +#ifndef QT_NO_QWS_MANAGER +    static TQWSDecoration &qwsDecoration(); +    static void      qwsSetDecoration( TQWSDecoration *); +#endif +#endif + +#if defined(Q_OS_WIN32) || defined(Q_OS_CYGWIN) +    static WindowsVersion winVersion(); +#elif defined(Q_OS_MAC) +    static MacintoshVersion macVersion(); +#endif +#if defined(Q_WS_WIN) +    void	     winFocus( TQWidget *, bool ); +    static void	     winMouseButtonUp(); +#endif + +#ifndef QT_NO_SESSIONMANAGER +    // session management +    bool	     isSessionRestored() const; +    TQString 	sessionId() const; +    TQString 	sessionKey() const; +    virtual void     commitData( TQSessionManager& sm ); +    virtual void     saveState( TQSessionManager& sm ); +#endif +#if defined(Q_WS_X11) +#if !defined(QT_NO_IM_EXTENSIONS) +    virtual TQWidget *locateICHolderWidget( TQWidget *w ); +    virtual TQWidgetList *icHolderWidgets(); +    static void create_im(); +    static void close_im(); +#else +    TQWidget *locateICHolderWidget( TQWidget *w ); +    TQWidgetList *icHolderWidgets(); +    static void create_xim(); +    static void close_xim(); +#endif +    static TQString defaultInputMethod(); +    void	changeAllInputContext( const TQString & ); +    static bool x11_apply_settings(); +#endif +    void	     wakeUpGuiThread(); +#if defined(QT_THREAD_SUPPORT) +    void	     lock(); +    void	     unlock(bool wakeUpGui = TRUE); +    bool	     locked(); +    bool             tryLock(); +#endif + +signals: +    void	     lastWindowClosed(); +    void	     aboutToQuit(); +    void	     guiThreadAwake(); + +public slots: +    void	     tquit(); +    void	     closeAllWindows(); +    void	     aboutTQt(); + +#if defined(Q_WS_QWS) +protected: +    void setArgs(int, char **); +#endif + +protected: +    bool event(TQEvent *); + +private: +    void construct( int &argc, char **argv, Type ); +    void initialize( int, char ** ); +    void init_precmdline(); +    void process_cmdline( int* argcptr, char ** argv ); +    bool internalNotify( TQObject *, TQEvent * ); +#if defined(Q_WS_QWS) +    static TQWidget *findChildWidget( const TQWidget *p, const TQPoint &pos ); +    static TQWidget *findWidget( const TQObjectList&, const TQPoint &, bool rec ); +#endif + +#if defined(Q_WS_MAC) +    bool do_mouse_down(Point *, bool *); +    static TQMAC_PASCAL OSStatus globalEventProcessor(EventHandlerCallRef,  EventRef, void *); +    static TQMAC_PASCAL OSStatus globalAppleEventProcessor(const AppleEvent *, AppleEvent *, long); +    static TQMAC_PASCAL void qt_context_timer_callbk(EventLoopTimerRef, void *); +    static TQMAC_PASCAL void qt_select_timer_callbk(EventLoopTimerRef, void *); +    static bool qt_mac_apply_settings(); +    friend class TQMacInputMethod; +    friend TQMAC_PASCAL OSStatus qt_window_event(EventHandlerCallRef, EventRef, void *); +    friend void qt_mac_update_os_settings(); +    friend bool qt_set_socket_handler( int, int, TQObject *, bool); +    friend void qt_mac_destroy_widget(TQWidget *); +    friend void qt_init(int *, char **, TQApplication::Type); +#endif + +#if defined(Q_WS_X11) +private slots: +    void postIMEvent( TQObject *receiver, TQIMEvent *event ); +#endif + +private: +#ifdef QT_THREAD_SUPPORT +    static TQMutex   *qt_mutex; +#endif // QT_THREAD_SUPPORT + +    int		     app_argc; +    char	   **app_argv; +    bool	     tquit_now; +    int		     tquit_code; +    static TQStyle   *app_style; +    static int	     app_cspec; +#ifndef QT_NO_PALETTE +    static TQPalette *app_pal; +#endif +    static TQFont    *app_font; +#ifndef QT_NO_CURSOR +    static TQCursor  *app_cursor; +#endif +    static TQEventLoop* eventloop; +    static int	     app_tracking; +    static bool	     is_app_running; +    static bool	     is_app_closing; +    static bool	     app_exit_loop; +    static int	     loop_level; +    static TQWidget  *main_widget; +    static TQWidget  *focus_widget; +    static TQWidget  *active_window; +    static bool	     obey_desktop_settings; +    static int	     cursor_flash_time; +    static int	     mouse_double_click_time; +    static int	     wheel_scroll_lines; +    static int	     composedUnicode; // Value, meta-composed character + +    static bool	     animate_ui; +    static bool	     animate_menu; +    static bool	     animate_tooltip; +    static bool	     animate_combo; +    static bool	     fade_menu; +    static bool	     fade_tooltip; +    static bool	     animate_toolbox; +    static bool	     widgetCount; // Coupled with -widgetcount switch +    static bool	     metaComposeUnicode; + +    TQValueList<TQTranslator*> *translators; +#ifndef QT_NO_SESSIONMANAGER +    TQSessionManager *session_manager; +    TQString	     session_id; +    static TQString* session_key; +    bool	     is_session_restored; +#endif +#if defined(Q_WS_X11) +#if !defined (QT_NO_STYLE) +    static void x11_initialize_style(); +#endif +    static TQString defaultIM; // default input method's name in this application. +#endif + +    static TQSize     app_strut; +#ifndef QT_NO_COMPONENT +    static TQStringList *app_libpaths; +#endif +    static TQAsciiDict<TQPalette> *app_palettes; +    static TQAsciiDict<TQFont>    *app_fonts; + +    static TQWidgetList *popupWidgets; +    bool	     inPopupMode() const; +    void	     closePopup( TQWidget *popup ); +    void	     openPopup( TQWidget *popup ); +    void	     setActiveWindow( TQWidget* act ); + +    static bool      sendSpontaneousEvent( TQObject *receiver, TQEvent *event ); +    static void      removePostedEvent( TQEvent * ); +    static void      removePostedEvents( TQObject *receiver, int event_type ); + +    friend class TQWidget; +    friend class TQETWidget; +    friend class TQDialog; +    friend class TQAccelManager; +    friend class TQEvent; +    friend class TQTranslator; +    friend class TQEventLoop; +    friend Q_EXPORT void qt_ucm_initialize( TQApplication * ); +#if defined(Q_WS_WIN) +    friend bool qt_sendSpontaneousEvent( TQObject*, TQEvent* ); +#endif +#if defined(Q_WS_QWS) +    friend class TQInputContext; +#endif +private: // Disabled copy constructor and operator= +#if defined(Q_DISABLE_COPY) +    TQApplication( const TQApplication & ); +    TQApplication &operator=( const TQApplication & ); +#endif +}; + +inline int TQApplication::argc() const +{ +    return app_argc; +} + +inline char **TQApplication::argv() const +{ +    return app_argv; +} + +#if defined(Q_WS_QWS) +inline void TQApplication::setArgs(int c, char **v) +{ +        app_argc = c; +	    app_argv = v; +} +#endif + +#ifndef QT_NO_CURSOR +inline TQCursor *TQApplication::overrideCursor() +{ +    return app_cursor; +} +#endif +inline bool TQApplication::hasGlobalMouseTracking() +{ +    return app_tracking > 0; +} + +inline TQWidget *TQApplication::mainWidget() const +{ +    return main_widget; +} + +inline TQWidget *TQApplication::focusWidget() const +{ +    return focus_widget; +} + +inline TQWidget *TQApplication::activeWindow() const +{ +    return active_window; +} + +inline TQWidget *TQApplication::widgetAt( const TQPoint &p, bool child ) +{ +    return widgetAt( p.x(), p.y(), child ); +} + +inline bool TQApplication::inPopupMode() const +{ +    return popupWidgets != 0; +} +#ifndef QT_NO_SESSIONMANAGER +inline bool TQApplication::isSessionRestored() const +{ +    return is_session_restored; +} + +inline TQString TQApplication::sessionId() const +{ +    return session_id; +} + +inline TQString TQApplication::sessionKey() const +{ +    return session_key ? *session_key : TQString::null; +} +#endif +inline TQSize TQApplication::globalStrut() +{ +    return app_strut; +} + +inline bool TQApplication::sendEvent( TQObject *receiver, TQEvent *event ) +{  if ( event ) event->spont = FALSE; return qApp ? qApp->notify( receiver, event ) : FALSE; } + +inline bool TQApplication::sendSpontaneousEvent( TQObject *receiver, TQEvent *event ) +{ if ( event ) event->spont = TRUE; return qApp ? qApp->notify( receiver, event ) : FALSE; } + +#ifdef QT_NO_TRANSLATION +// Simple versions +inline TQString TQApplication::translate( const char *, const char *sourceText, +					const char *, Encoding encoding ) const +{ +#ifndef QT_NO_TEXTCODEC +    if ( encoding == UnicodeUTF8 ) +	return TQString::fromUtf8( sourceText ); +    else +#endif +	return TQString::fromLatin1( sourceText ); +} +#endif + +inline int TQApplication::horizontalAlignment( int align ) +{ +    align &= AlignHorizontal_Mask; +    if ( align == AlignAuto ) { +	if ( reverseLayout() ) +	    align = AlignRight; +	else +	    align = AlignLeft; +    } +    return align; +} + +#endif // TQAPPLICATION_H +  | 
