kdelibs/kparts/event.cpp
2014-11-13 01:04:59 +02:00

216 lines
4.8 KiB
C++

/* This file is part of the KDE project
Copyright (C) 1999 Simon Hausmann <hausmann@kde.org>
(C) 1999 David Faure <faure@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include <kparts/event.h>
using namespace KParts;
//the answer!
#define KPARTS_EVENT_MAGIC 42
class KParts::EventPrivate
{
public:
EventPrivate( const char *eventName ) :
m_eventName(eventName)
{
}
const char* m_eventName;
};
Event::Event( const char *eventName )
: QEvent( (QEvent::Type)(QEvent::User + KPARTS_EVENT_MAGIC) )
, d( new EventPrivate(eventName) )
{
}
Event::~Event()
{
delete d;
}
const char *Event::eventName() const
{
return d->m_eventName;
}
bool Event::test( const QEvent *event )
{
if ( !event )
return false;
return ( event->type() == (QEvent::Type)(QEvent::User + KPARTS_EVENT_MAGIC ) );
}
bool Event::test( const QEvent *event, const char *name )
{
if ( !test( event ) )
return false;
return ( strcmp( name, ((Event*)event)->eventName() ) == 0 );
}
/////// GUIActivateEvent ////////
class KParts::GUIActivateEventPrivate
{
public:
GUIActivateEventPrivate( bool activated )
: m_bActivated( activated )
{
}
static const char *s_strGUIActivateEvent;
bool m_bActivated;
};
const char *GUIActivateEventPrivate::s_strGUIActivateEvent = "KParts/GUIActivate";
GUIActivateEvent::GUIActivateEvent( bool activated ) :
Event( GUIActivateEventPrivate::s_strGUIActivateEvent ),
d( new GUIActivateEventPrivate(activated) )
{
}
GUIActivateEvent::~GUIActivateEvent()
{
delete d;
}
bool GUIActivateEvent::activated() const
{
return d->m_bActivated;
}
bool GUIActivateEvent::test( const QEvent *event )
{
return Event::test( event, GUIActivateEventPrivate::s_strGUIActivateEvent );
}
/////// PartActivateEvent ////////
class KParts::PartActivateEventPrivate
{
public:
PartActivateEventPrivate( bool activated,
Part *part,
QWidget *widget ) :
m_bActivated( activated ),
m_part( part ),
m_widget( widget )
{
}
static const char *s_strPartActivateEvent;
bool m_bActivated;
Part *m_part;
QWidget *m_widget;
};
const char *PartActivateEventPrivate::s_strPartActivateEvent = "KParts/PartActivateEvent";
PartActivateEvent::PartActivateEvent( bool activated,
Part *part,
QWidget *widget ) :
Event( PartActivateEventPrivate::s_strPartActivateEvent ),
d( new PartActivateEventPrivate(activated,part,widget) )
{
}
PartActivateEvent::~PartActivateEvent()
{
delete d;
}
bool PartActivateEvent::activated() const
{
return d->m_bActivated;
}
Part *PartActivateEvent::part() const
{
return d->m_part;
}
QWidget *PartActivateEvent::widget() const
{
return d->m_widget;
}
bool PartActivateEvent::test( const QEvent *event )
{
return Event::test( event, PartActivateEventPrivate::s_strPartActivateEvent );
}
/////// PartSelectEvent ////////
class KParts::PartSelectEventPrivate
{
public:
PartSelectEventPrivate( bool selected,
Part *part,
QWidget *widget ) :
m_bSelected( selected ),
m_part( part ),
m_widget( widget )
{
}
static const char *s_strPartSelectEvent;
bool m_bSelected;
Part *m_part;
QWidget *m_widget;
};
const char *PartSelectEventPrivate::s_strPartSelectEvent =
"KParts/PartSelectEvent";
PartSelectEvent::PartSelectEvent( bool selected,
Part *part,
QWidget *widget ) :
Event( PartSelectEventPrivate::s_strPartSelectEvent ),
d( new PartSelectEventPrivate(selected,part,widget) )
{
}
PartSelectEvent::~PartSelectEvent()
{
delete d;
}
bool PartSelectEvent::selected() const
{
return d->m_bSelected;
}
Part *PartSelectEvent::part() const
{
return d->m_part;
}
QWidget *PartSelectEvent::widget() const
{
return d->m_widget;
}
bool PartSelectEvent::test( const QEvent *event )
{
return Event::test( event, PartSelectEventPrivate::s_strPartSelectEvent );
}