diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2010-10-13 14:39:16 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2010-10-14 18:14:14 +0200 |
commit | 924673ea9afc389eaf04b9bccc6f9d8028e12f0d (patch) | |
tree | 60f08d0fc08cf864861ce68272111d01fad3a246 /vcl/unx/kde4/KDEXLib.hxx | |
parent | 6b5a13a80bef8026abb53d665af3240ad3148eeb (diff) |
make KDE4 vclplug use Qt event loop as the event loop
Diffstat (limited to 'vcl/unx/kde4/KDEXLib.hxx')
-rw-r--r-- | vcl/unx/kde4/KDEXLib.hxx | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/vcl/unx/kde4/KDEXLib.hxx b/vcl/unx/kde4/KDEXLib.hxx index 7fbcbb6320e4..e05ac20f54c5 100644 --- a/vcl/unx/kde4/KDEXLib.hxx +++ b/vcl/unx/kde4/KDEXLib.hxx @@ -30,22 +30,59 @@ #include <saldisp.hxx> +#include <fixx11h.h> + +#include <qhash.h> +#include <qsocketnotifier.h> +#include <qtimer.h> + class VCLKDEApplication; -class KDEXLib : public SalXLib +class KDEXLib : public QObject, public SalXLib { + Q_OBJECT private: bool m_bStartupDone; VCLKDEApplication* m_pApplication; char** m_pFreeCmdLineArgs; char** m_pAppCmdLineArgs; int m_nFakeCmdLineArgs; + struct SocketData + { + void* data; + YieldFunc pending; + YieldFunc queued; + YieldFunc handle; + QSocketNotifier* notifier; + }; + QHash< int, SocketData > socketData; // key is fd + QTimer timeoutTimer; + QTimer userEventTimer; + + private slots: + void socketNotifierActivated( int fd ); + void timeoutActivated(); + void userEventActivated(); + void startTimeoutTimer(); + void startUserEventTimer(); + void processYield( bool bWait, bool bHandleAllCurrentEvents ); + signals: + void startTimeoutTimerSignal(); + void startUserEventTimerSignal(); + void processYieldSignal( bool bWait, bool bHandleAllCurrentEvents ); public: KDEXLib(); - virtual ~KDEXLib(); + virtual void Init(); + virtual void Yield( bool bWait, bool bHandleAllCurrentEvents ); + virtual void Insert( int fd, void* data, YieldFunc pending, YieldFunc queued, YieldFunc handle ); + virtual void Remove( int fd ); + virtual void StartTimer( ULONG nMS ); + virtual void StopTimer(); + virtual void Wakeup(); + virtual void PostUserEvent(); void doStartup(); }; |