From bcb704366cb5e333a626c18c308c7e0448a8e69f Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ksirc/puke/pmenudta.cpp | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 ksirc/puke/pmenudta.cpp (limited to 'ksirc/puke/pmenudta.cpp') diff --git a/ksirc/puke/pmenudta.cpp b/ksirc/puke/pmenudta.cpp new file mode 100644 index 00000000..30b375fc --- /dev/null +++ b/ksirc/puke/pmenudta.cpp @@ -0,0 +1,79 @@ +#include "pmenudta.h" +#include "pobject.h" +#include + + +PMenuData::PMenuData(PObject *_child) +: PObject() +{ + child = _child; + connect(this, SIGNAL(outputMessage(int, PukeMessage*)), + child, SIGNAL(outputMessage(int, PukeMessage*))); +} + +PMenuData::~PMenuData() +{ + // We don't nuke anything since we're kind of abstract and we let the parent take care of it +} + +void PMenuData::messageHandler(int , PukeMessage *) +{ + // We don't do anything since we should never ben involked directly +} + +bool PMenuData::menuMessageHandler(int fd, PukeMessage *pm) +{ + PukeMessage pmRet; + int id = 0; + switch(pm->iCommand){ + case PUKE_MENUDATA_INSERT_TEXT: + { + QPopupMenu *widget = (QPopupMenu *) child->widget(); + id = widget->insertItem(pm->cArg); + if(pm->iArg > 0){ + widget->setAccel(pm->iArg, id); + } + + pmRet.iCommand = PUKE_MENUDATA_INSERT_TEXT_ACK; + pmRet.iWinId = pm->iWinId; + pmRet.iArg = id; + pmRet.cArg = 0; + emit outputMessage(fd, &pmRet); + break; + } + case PUKE_MENUDATA_INSERT_PIXMAP: + { + QPopupMenu *widget = (QPopupMenu *) child->widget(); + id = widget->insertItem(QPixmap(pm->cArg)); + if(pm->iArg > 0){ + widget->setAccel(pm->iArg, id); + } + + pmRet.iCommand = PUKE_MENUDATA_INSERT_PIXMAP_ACK; + pmRet.iWinId = pm->iWinId; + pmRet.iArg = id; + pmRet.cArg = 0; + emit outputMessage(fd, &pmRet); + break; + } + case PUKE_MENUDATA_REMOVE_ITEM: + { + QPopupMenu *widget = (QPopupMenu *) child->widget(); + widget->removeItem(pm->iArg); + + pmRet.iCommand = PUKE_MENUDATA_REMOVE_ITEM_ACK; + pmRet.iWinId = pm->iWinId; + pmRet.iArg = pm->iArg; + pmRet.cArg = 0; + emit outputMessage(fd, &pmRet); + break; + } + + default: + return FALSE; + } + return TRUE; +} + +#include "pmenudta.moc" + -- cgit v1.2.1