1 | /******************************************************************** |
2 | KWin - the KDE window manager |
3 | This file is part of the KDE project. |
4 | |
5 | Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org> |
6 | Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org> |
7 | |
8 | This program is free software; you can redistribute it and/or modify |
9 | it under the terms of the GNU General Public License as published by |
10 | the Free Software Foundation; either version 2 of the License, or |
11 | (at your option) any later version. |
12 | |
13 | This program is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | GNU General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU General Public License |
19 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
20 | *********************************************************************/ |
21 | |
22 | #ifndef MAIN_H |
23 | #define MAIN_H |
24 | |
25 | #include <kapplication.h> |
26 | #include <KDE/KSelectionWatcher> |
27 | |
28 | namespace KWin |
29 | { |
30 | |
31 | class KWinSelectionOwner |
32 | : public KSelectionOwner |
33 | { |
34 | Q_OBJECT |
35 | public: |
36 | explicit KWinSelectionOwner(int screen); |
37 | protected: |
38 | virtual bool genericReply(Atom target, Atom property, Window requestor); |
39 | virtual void replyTargets(Atom property, Window requestor); |
40 | virtual void getAtoms(); |
41 | private: |
42 | Atom make_selection_atom(int screen); |
43 | static Atom xa_version; |
44 | }; |
45 | |
46 | class Application : public KApplication |
47 | { |
48 | Q_OBJECT |
49 | public: |
50 | Application(); |
51 | ~Application(); |
52 | |
53 | protected: |
54 | bool x11EventFilter(XEvent*); |
55 | bool notify(QObject* o, QEvent* e); |
56 | static void crashHandler(int signal); |
57 | |
58 | private slots: |
59 | void lostSelection(); |
60 | void resetCrashesCount(); |
61 | |
62 | private: |
63 | KWinSelectionOwner owner; |
64 | static int crashes; |
65 | }; |
66 | |
67 | } // namespace |
68 | |
69 | #endif |
70 | |