1 | /* This file is part of the KDE project |
2 | Copyright (C) 1999 Simon Hausmann <hausmann@kde.org> |
3 | (C) 1999 David Faure <faure@kde.org> |
4 | |
5 | This library is free software; you can redistribute it and/or |
6 | modify it under the terms of the GNU Library General Public |
7 | License as published by the Free Software Foundation; either |
8 | version 2 of the License, or (at your option) any later version. |
9 | |
10 | This library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Library General Public License for more details. |
14 | |
15 | You should have received a copy of the GNU Library General Public License |
16 | along with this library; see the file COPYING.LIB. If not, write to |
17 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
18 | Boston, MA 02110-1301, USA. |
19 | */ |
20 | #ifndef __kparts_event_h__ |
21 | #define __kparts_event_h__ |
22 | |
23 | #include <QtGui/QKeyEvent> |
24 | |
25 | #include <kparts/kparts_export.h> |
26 | |
27 | class QWidget; |
28 | |
29 | namespace KParts |
30 | { |
31 | class Part; |
32 | |
33 | class EventPrivate; |
34 | /** |
35 | * Base class for all KParts events. |
36 | */ |
37 | class KPARTS_EXPORT Event : public QEvent |
38 | { |
39 | public: |
40 | Event( const char *eventName ); |
41 | virtual ~Event(); |
42 | virtual const char *eventName() const; |
43 | |
44 | static bool test( const QEvent *event ); |
45 | static bool test( const QEvent *event, const char *name ); |
46 | |
47 | private: |
48 | EventPrivate * const d; |
49 | }; |
50 | |
51 | class GUIActivateEventPrivate; |
52 | /** |
53 | * This event is sent to a Part when its GUI has been activated or deactivated. |
54 | * This is related to PartActivateEvent, but the difference is that |
55 | * GUIActivateEvent happens later (when the GUI is actually built), |
56 | * only for parts that have GUI elements, and only if using KParts::MainWindow. |
57 | * @see KParts::Part::guiActivateEvent() |
58 | */ |
59 | class KPARTS_EXPORT GUIActivateEvent : public Event |
60 | { |
61 | public: |
62 | GUIActivateEvent( bool activated ); |
63 | virtual ~GUIActivateEvent(); |
64 | |
65 | bool activated() const; |
66 | |
67 | static bool test( const QEvent *event ); |
68 | |
69 | private: |
70 | GUIActivateEventPrivate * const d; |
71 | }; |
72 | |
73 | class PartActivateEventPrivate; |
74 | /** |
75 | * This event is sent by the part manager when the active part changes. |
76 | * Each time the active part changes, it will send first a PartActivateEvent |
77 | * with activated=false, part=oldActivePart, widget=oldActiveWidget |
78 | * and then another PartActivateEvent |
79 | * with activated=true, part=newPart, widget=newWidget. |
80 | * @see KParts::Part::partActivateEvent |
81 | */ |
82 | class KPARTS_EXPORT PartActivateEvent : public Event |
83 | { |
84 | public: |
85 | PartActivateEvent( bool activated, Part *part, QWidget *widget ); |
86 | virtual ~PartActivateEvent(); |
87 | bool activated() const; |
88 | |
89 | Part *part() const; |
90 | QWidget *widget() const; |
91 | |
92 | static bool test( const QEvent *event ); |
93 | |
94 | private: |
95 | PartActivateEventPrivate * const d; |
96 | }; |
97 | |
98 | class PartSelectEventPrivate; |
99 | /** |
100 | * This event is sent when a part is selected or deselected. |
101 | * @see KParts::PartManager::setSelectionPolicy |
102 | */ |
103 | class KPARTS_EXPORT PartSelectEvent : public Event |
104 | { |
105 | public: |
106 | PartSelectEvent( bool selected, Part *part, QWidget *widget ); |
107 | virtual ~PartSelectEvent(); |
108 | bool selected() const; |
109 | |
110 | Part *part() const; |
111 | QWidget *widget() const; |
112 | |
113 | static bool test( const QEvent *event ); |
114 | |
115 | private: |
116 | PartSelectEventPrivate * const d; |
117 | }; |
118 | |
119 | } // namespace |
120 | |
121 | #endif |
122 | |