summaryrefslogtreecommitdiffstats
path: root/ksirc/puke/pwidget.h
blob: f7f748fb09c89fc2fa1dc80a41841aa8e5d8487d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef PWIDGET_H
#define PWIDGET_H

class PWidget;

#include <qobject.h>
#include <qwidget.h>
#include "pobject.h"
#include "pmessage.h"

class PWidget : public PObject
{
  Q_OBJECT
 public:
  PWidget(PObject *parent = 0);
  virtual ~PWidget();

  // Init and setup code
  static PObject *createWidget(CreateArgs &ca);

  virtual void messageHandler(int fd, PukeMessage *pm);

  virtual void setWidget(QObject *w = 0x0);
  virtual QWidget *widget();

 protected:
  bool eventFilter(QObject *o, QEvent *e);

 private:
  QWidget *w;

  void (PWidget::*eventList[20])(QObject *, QEvent *);

  void eventNone(QObject *, QEvent *);
  void eventTimer(QObject *, QEvent *);
  void eventMouse(QObject *, QEvent *);
  void eventKey(QObject *, QEvent *);
  void eventFocus(QObject *, QEvent *);
  void eventPaint(QObject *, QEvent *);
  void eventMove(QObject *, QEvent *);
  void eventResize(QObject *, QEvent *);

};

#endif