diff options
Diffstat (limited to 'ksirc/puke/pmenudta.h')
-rw-r--r-- | ksirc/puke/pmenudta.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ksirc/puke/pmenudta.h b/ksirc/puke/pmenudta.h new file mode 100644 index 00000000..0c3bfc6a --- /dev/null +++ b/ksirc/puke/pmenudta.h @@ -0,0 +1,57 @@ +#ifndef PMENUDATA_H +#define PMENUDATA_H + +class PMenuData; + +#include <qobject.h> +#include <qmenudata.h> +#include "pmessage.h" +#include "pframe.h" +#include "pobject.h" +#include "controller.h" + +/** + * Little helper class here gives us access to needed info inside + * QMenuData + */ + +class PMenuDataHelper : public QMenuData +{ +public: + PMenuDataHelper(QMenuData &qmd) { + memcpy(this, &qmd, sizeof(QMenuData)); + } + int active() { + return QMenuData::actItem; + } + int actItem; +}; + +/** + * We're subclased off QMenuData so we can access it's internal proteted vars + * We do not initialize NOR create it!!!! + */ + +class PMenuData : public PObject +{ + Q_OBJECT +public: + PMenuData (PObject *_child); + virtual ~PMenuData (); + + virtual void messageHandler(int fd, PukeMessage *pm); + virtual bool menuMessageHandler(int fd, PukeMessage *pm); + +// virtual void setWidget(QMenuData *_qmd); + // virtual QMenuData *widget(); + + virtual int activeItem() + { + return PMenuDataHelper(*((QMenuData *) child->widget())).active(); + } + + private: + PObject *child; +}; + +#endif |