00001
00002 #ifndef __QWidget_h
00003 #define __QWidget_h
00004
00005 #include "qevent.h"
00006
00007 class QWidget : public QObject
00008 {
00009 friend class QApplication;
00010 friend class QPainter;
00011 friend class ImagePainter;
00012 friend class QWidgetPrivate;
00013 friend class QPopup;
00014 friend class GApp;
00015 friend class GMemDC;
00016
00017 static QList<QWidget> AllWidgets;
00018 static QWidget *MouseGrabber;
00019 static QWidget *OwnsClipboard;
00020
00021 void _paint(XExposeEvent *e, QEvent *q);
00022 void _resize(XConfigureEvent *e, QEvent *q);
00023 void _map(bool m);
00024 bool _wait_mapped(int timeout = -1);
00025 QEvent *_event;
00026 virtual void *_GetWndPtr() { return 0; }
00027
00028 protected:
00029 class QWidgetPrivate *d;
00030 void setParentWidget(QWidget *p);
00031
00032 public:
00033 enum MouseButton
00034 {
00035 LeftButton = 0x0001,
00036 RightButton = 0x0002,
00037 MidButton = 0x0004
00038 };
00039
00040 enum KeyButton
00041 {
00042 AltButton = 0x0008,
00043 ShiftButton = 0x0010,
00044 ControlButton = 0x0020
00045 };
00046
00047 QWidget(char *name = 0, bool top = false);
00048 QWidget(Window Existing, bool AddToList = false);
00049 ~QWidget();
00050
00051 Window handle();
00052 void detachHandle();
00053 class QMainWindow *GetWindow();
00054
00055
00056 void _dump(int i=0);
00057 bool _isdebug();
00058 void _SetClipRgn(GRegion *c);
00059 GRegion *_GetClipRgn();
00060 virtual void _SetDeleteMe();
00061 virtual void _SetWndPtr(void *p) {}
00062 static QWidget *GetMouseGrabber() { return MouseGrabber; }
00063
00064
00065 void setIcon(char *Path);
00066 bool IsMouseOver(QEvent *e);
00067 bool IsPopup();
00068 void GetDecorationSize(int &x, int &y);
00069
00070
00071 virtual int height();
00072 virtual int width();
00073 virtual void setGeometry(int x, int y, int w, int h);
00074 virtual GRect &geometry();
00075 virtual void setBackgroundMode(ViewBackground b);
00076 virtual void repaint();
00077 virtual void repaint(int x, int y, int w, int h);
00078 virtual void update();
00079 virtual void update(int x, int y, int w, int h);
00080 virtual bool isEnabled();
00081 virtual void setEnabled(bool i);
00082 virtual bool isVisible();
00083 virtual void show(bool Raise = false);
00084 virtual void hide();
00085 virtual bool hasFocus();
00086 virtual void setFocus();
00087 virtual void clearFocus();
00088 virtual OsPoint &mapFromGlobal(OsPoint &p);
00089 virtual OsPoint &mapToGlobal(OsPoint &p);
00090 virtual QWidget *parentWidget();
00091 virtual QList<QWidget> *childrenWidgets();
00092 virtual bool reparent(QWidget *parent, OsPoint &p, bool show);
00093 virtual void grabMouse();
00094 virtual void ungrabMouse();
00095 bool grabbedMouse() { return MouseGrabber == this; }
00096
00097 virtual char *getText();
00098 virtual void setText(char *text);
00099 virtual int value();
00100 virtual void setValue(int i);
00101 virtual int wantKeys();
00102 virtual void wantKeys(int keys);
00103 virtual bool isTabStop();
00104 virtual void isTabStop(bool i);
00105
00106
00107 static QWidget *Find(Window w);
00108
00109
00110 virtual void resizeEvent(QEvent *e) {}
00111 virtual void paintEvent(QEvent *e) {}
00112 virtual void customEvent(QEvent *e) {}
00113 virtual void mousePressEvent(QEvent *e) {}
00114 virtual void mouseDoubleClickEvent(QEvent *e) {}
00115 virtual void mouseReleaseEvent(QEvent *e) {}
00116 virtual void mouseMoveEvent(QEvent *e) {}
00117 virtual void leaveEvent(QEvent *e) {}
00118 virtual void enterEvent(QEvent *e) {}
00119 virtual void wheelEvent(QEvent *e) {}
00120 virtual void focusInEvent(QEvent *e) {}
00121 virtual void focusOutEvent(QEvent *e) {}
00122 virtual bool keyPressEvent(QEvent *e) {}
00123 virtual bool keyReleaseEvent(QEvent *e) {}
00124 virtual void closeEvent(QEvent *e) {}
00125 virtual void notifyEvent(int i = 0) {}
00126 virtual void propertyEvent(QEvent *e) {}
00127
00128
00129 bool GetPopup();
00130 void SetPopup(bool b);
00131 };
00132
00133
00134
00135 #endif