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;
}