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 Background
00034 {
00035 NoBackground
00036 };
00037
00038 enum MouseButton
00039 {
00040 LeftButton = 0x0001,
00041 RightButton = 0x0002,
00042 MidButton = 0x0004
00043 };
00044
00045 enum KeyButton
00046 {
00047 AltButton = 0x0008,
00048 ShiftButton = 0x0010,
00049 ControlButton = 0x0020
00050 };
00051
00052 QWidget(char *name = 0, bool top = false);
00053 QWidget(Window Existing, bool AddToList = false);
00054 ~QWidget();
00055
00056 Window handle();
00057 void detachHandle();
00058 class QMainWindow *GetWindow();
00059
00060
00061 void _dump(int i=0);
00062 bool _isdebug();
00063 void _SetClipRgn(GRegion *c);
00064 GRegion *_GetClipRgn();
00065 virtual void _SetDeleteMe();
00066 virtual void _SetWndPtr(void *p) {}
00067 static QWidget *GetMouseGrabber() { return MouseGrabber; }
00068
00069
00070 void setIcon(char *Path);
00071 bool IsMouseOver(QEvent *e);
00072 bool IsPopup();
00073 void GetDecorationSize(int &x, int &y);
00074
00075
00076 virtual int height();
00077 virtual int width();
00078 virtual void setGeometry(int x, int y, int w, int h);
00079 virtual GRect &geometry();
00080 virtual void setBackgroundMode(Background b);
00081 virtual void repaint();
00082 virtual void repaint(int x, int y, int w, int h);
00083 virtual void update();
00084 virtual void update(int x, int y, int w, int h);
00085 virtual bool isEnabled();
00086 virtual void setEnabled(bool i);
00087 virtual bool isVisible();
00088 virtual void show(bool Raise = false);
00089 virtual void hide();
00090 virtual bool hasFocus();
00091 virtual void setFocus();
00092 virtual void clearFocus();
00093 virtual OsPoint &mapFromGlobal(OsPoint &p);
00094 virtual OsPoint &mapToGlobal(OsPoint &p);
00095 virtual QWidget *parentWidget();
00096 virtual QList<QWidget> *childrenWidgets();
00097 virtual bool reparent(QWidget *parent, OsPoint &p, bool show);
00098 virtual void grabMouse();
00099 virtual void ungrabMouse();
00100 bool grabbedMouse() { return MouseGrabber == this; }
00101
00102 virtual char *getText();
00103 virtual void setText(char *text);
00104 virtual int value();
00105 virtual void setValue(int i);
00106 virtual int wantKeys();
00107 virtual void wantKeys(int keys);
00108 virtual bool isTabStop();
00109 virtual void isTabStop(bool i);
00110
00111
00112 static QWidget *Find(Window w);
00113
00114
00115 virtual void resizeEvent(QEvent *e) {}
00116 virtual void paintEvent(QEvent *e) {}
00117 virtual void customEvent(QEvent *e) {}
00118 virtual void mousePressEvent(QEvent *e) {}
00119 virtual void mouseDoubleClickEvent(QEvent *e) {}
00120 virtual void mouseReleaseEvent(QEvent *e) {}
00121 virtual void mouseMoveEvent(QEvent *e) {}
00122 virtual void leaveEvent(QEvent *e) {}
00123 virtual void enterEvent(QEvent *e) {}
00124 virtual void wheelEvent(QEvent *e) {}
00125 virtual void focusInEvent(QEvent *e) {}
00126 virtual void focusOutEvent(QEvent *e) {}
00127 virtual bool keyPressEvent(QEvent *e) {}
00128 virtual bool keyReleaseEvent(QEvent *e) {}
00129 virtual void closeEvent(QEvent *e) {}
00130 virtual void notifyEvent(int i = 0) {}
00131 virtual void propertyEvent(QEvent *e) {}
00132
00133
00134 bool GetPopup();
00135 void SetPopup(bool b);
00136 };
00137
00138 typedef QWidget *OsView;
00139
00140 #endif