Source Code (Use browser search to find items of interest.)
Class Index
kicker'KickerMenuManager (./kdebase/kicker/clientmenu.h:69)
class KickerMenuManager : public QObject, DCOPObject
{
Q_OBJECT
public:
KickerMenuManager( PanelKMenu* menu, QObject *parent=0, const char *name=0 );
~KickerMenuManager();
// dcop exported
QCString createMenu( QPixmap icon, QString text );
void removeMenu( QCString menu );
// dcop internal
bool process(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &reply);
protected slots:
void applicationRemoved( const QCString& );
signals:
void popupKMenu(int x, int y);
protected:
PanelKMenu* panelmenu;
QList<KickerClientMenu> clientmenus;
};
kicker'KickerMenuManager::KickerMenuManager() (./kdebase/kicker/clientmenu.cpp:128)
KickerMenuManager::KickerMenuManager( PanelKMenu* menu, QObject *parent, const char *name )
: QObject( parent, name ), DCOPObject( name )
{
panelmenu = menu;
clientmenus.setAutoDelete( TRUE );
kapp->dcopClient()->setNotifications(true);
connect( kapp->dcopClient(), SIGNAL( applicationRemoved(const QCString&) ),
this, SLOT( applicationRemoved( const QCString& ) ) );
}
kicker'KickerMenuManager::~KickerMenuManager() (./kdebase/kicker/clientmenu.cpp:138)
KickerMenuManager::~KickerMenuManager()
{
}
kicker'KickerMenuManager::createMenu() (./kdebase/kicker/clientmenu.cpp:143)
QCString KickerMenuManager::createMenu( QPixmap icon, QString text )
{
menucount++;
QCString name;
name.sprintf("kickerclientmenu-%d", menucount );
KickerClientMenu* p = new KickerClientMenu( 0, name );
clientmenus.append(p);
panelmenu->initialize();
p->text = text;
p->icon = icon;
p->idInParentMenu = panelmenu->insertClientMenu( p );
p->createdBy = kapp->dcopClient()->senderId();
panelmenu->adjustSize();
return name;
}
kicker'KickerMenuManager::removeMenu() (./kdebase/kicker/clientmenu.cpp:159)
void KickerMenuManager::removeMenu( QCString menu )
{
QListIterator<KickerClientMenu> it( clientmenus);
KickerClientMenu* m;
while ( ( m = it.current() ) ) {
++it;
if ( m->objId() == menu ) {
panelmenu->removeClientMenu( m->idInParentMenu );
clientmenus.removeRef( m );
}
}
panelmenu->adjustSize();
}
kicker'KickerMenuManager::applicationRemoved() (./kdebase/kicker/clientmenu.cpp:174)
void KickerMenuManager::applicationRemoved( const QCString& appRemoved)
{
QListIterator<KickerClientMenu> it( clientmenus);
KickerClientMenu* m;
while ( ( m = it.current() ) ) {
++it;
if ( m->createdBy == appRemoved ) {
panelmenu->removeClientMenu( m->idInParentMenu );
clientmenus.removeRef( m );
}
}
panelmenu->adjustSize();
}
kicker'KickerMenuManager::process() (./kdebase/kicker/clientmenu.cpp:188)
bool KickerMenuManager::process(const QCString &fun, const QByteArray &data,
QCString &replyType, QByteArray &replyData)
{
if ( fun == "createMenu(QPixmap,QString)" ) {
QDataStream dataStream( data, IO_ReadOnly );
QPixmap icon;
QString text;
dataStream >> icon >> text;
QDataStream reply( replyData, IO_WriteOnly );
reply << createMenu( icon, text );
replyType = "QCString";
return TRUE;
} else if ( fun == "removeMenu(QCString)" ) {
QDataStream dataStream( data, IO_ReadOnly );
QCString menu;
dataStream >> menu;
removeMenu( menu );
replyType = "void";
return TRUE;
}
else if( fun == "popupKMenu(int,int)" ){
QDataStream dataStream( data, IO_ReadOnly );
int x, y;
dataStream >> x;
dataStream >> y;
emit popupKMenu(x, y);
replyType = "void";
return(true);
}
return FALSE;
}