#ifndef QWIDGET_H_
#define QWIDGET_H_
#include "KWQObject.h"
#include "KWQPaintDevice.h"
#include "KWQPainter.h"
#include "KWQPointArray.h"
#include "KWQSize.h"
#include "KWQPalette.h"
#include "KWQFont.h"
#include "KWQCursor.h"
#include "KWQEvent.h"
#include "KWQStyle.h"
#ifdef __OBJC__
@class NSView;
#else
class NSView;
#endif
class KWQWidgetPrivate;
class QWidget : public QObject, public QPaintDevice {
public:
enum WidgetFlags {
WResizeNoErase = 1,
WRepaintNoErase = 1 << 1,
WPaintUnclipped = 1 << 2
};
enum FocusPolicy {
NoFocus = 0,
TabFocus = 0x1,
ClickFocus = 0x2,
StrongFocus = 0x3,
WheelFocus = 0x7
};
QWidget();
QWidget(NSView *view);
virtual ~QWidget();
virtual QSize sizeHint() const;
virtual void setEnabled(bool);
virtual bool isEnabled() const;
void setActiveWindow();
void setAutoMask(bool) { }
void setMouseTracking(bool) { }
long winId() const;
int x() const;
int y() const;
int width() const;
int height() const;
QSize size() const;
void resize(int,int);
void resize(const QSize &);
QPoint pos() const;
void move(int, int);
void move(const QPoint &);
virtual void paint(QPainter *, const QRect &);
virtual QRect frameGeometry() const;
virtual void setFrameGeometry(const QRect &);
virtual int baselinePosition(int height) const;
virtual QPoint mapFromGlobal(const QPoint &) const;
bool hasFocus() const;
void setFocus();
void clearFocus();
virtual bool checksDescendantsForFocus() const;
virtual FocusPolicy focusPolicy() const;
void setFocusPolicy(FocusPolicy) {};
virtual void setFocusProxy(QWidget *) {};
const QPalette& palette() const;
virtual void setPalette(const QPalette &);
QStyle &style() const;
void setStyle(QStyle *);
QFont font() const;
virtual void setFont(const QFont &);
void constPolish() const;
bool isVisible() const;
void setCursor(const QCursor &);
QCursor cursor();
void unsetCursor();
bool event(QEvent *);
void show();
void hide();
void showEvent(QShowEvent *) { }
void hideEvent(QHideEvent *) { }
void wheelEvent(QWheelEvent *) { }
void keyPressEvent(QKeyEvent *) { }
void keyReleaseEvent(QKeyEvent *) { }
void focusInEvent(QFocusEvent *) { }
void focusOutEvent(QFocusEvent *) { }
enum BackgroundMode { NoBackground };
void setBackgroundMode(BackgroundMode) { }
void setAcceptDrops(bool) { }
NSView *getView() const;
NSView *getOuterView() const;
void setView(NSView *aView);
virtual void populate() {};
void displayRect(int x, int y, int w, int h);
void lockDrawingFocus();
void unlockDrawingFocus();
void enableFlushDrawing();
void disableFlushDrawing();
void setDrawingAlpha(float alpha);
void sendConsumedMouseUp();
void setIsSelected(bool isSelected);
static void beforeMouseDown(NSView *);
static void afterMouseDown(NSView *);
void addToSuperview(NSView *superview);
void removeFromSuperview();
static void setDeferFirstResponderChanges(bool);
private:
KWQWidgetPrivate *data;
};
#endif