summaryrefslogtreecommitdiffstats
path: root/ksirc/puke/pmenudta.h
diff options
context:
space:
mode:
Diffstat (limited to 'ksirc/puke/pmenudta.h')
-rw-r--r--ksirc/puke/pmenudta.h57
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