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
27class QWidget;
28
29namespace KParts
30{
31class Part;
32
33class EventPrivate;
34/**
35 * Base class for all KParts events.
36 */
37class KPARTS_EXPORT Event : public QEvent
38{
39public:
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
47private:
48 EventPrivate * const d;
49};
50
51class 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 */
59class KPARTS_EXPORT GUIActivateEvent : public Event
60{
61public:
62 GUIActivateEvent( bool activated );
63 virtual ~GUIActivateEvent();
64
65 bool activated() const;
66
67 static bool test( const QEvent *event );
68
69private:
70 GUIActivateEventPrivate * const d;
71};
72
73class 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 */
82class KPARTS_EXPORT PartActivateEvent : public Event
83{
84public:
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
94private:
95 PartActivateEventPrivate * const d;
96};
97
98class PartSelectEventPrivate;
99/**
100 * This event is sent when a part is selected or deselected.
101 * @see KParts::PartManager::setSelectionPolicy
102 */
103class KPARTS_EXPORT PartSelectEvent : public Event
104{
105public:
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
115private:
116 PartSelectEventPrivate * const d;
117};
118
119} // namespace
120
121#endif
122