/*
3D C++ Toolkit (TDT)
Widget Class
Copyright (c) 2008
John Ryland
*/
#ifndef WIDGET_H
#define WIDGET_H
#include <TDT/window.h>
namespace TDT
{
class Widget
{
public:
Widget(Widget *parent = 0);
virtual ~Widget();
/* Properties */
const char *windowTitle() const { return window()->windowTitle(); }
const char *windowIconText() const { return window()->windowIconText(); }
int x() const { return mX; }
int y() const { return mY; }
int width() const { return mWidth; }
int height() const { return mHeight; }
bool isVisible() const { return mVisible; }
bool isMinimized() const { return window()->isMinimized(); }
bool isMaximized() const { return window()->isMaximized(); }
bool isFullScreen() const { return window()->isFullScreen(); }
int winId() const { return window()->winId(); }
int cursor() const { return mCursor; }
Window *window() { return mWindow; }
Window const * const window() const { return mWindow; }
/* Commands */
void setWindowTitle(const char *title) { window()->setWindowTitle(title); }
void setWindowIconText(const char *iconText) { window()->setWindowIconText(iconText); }
void move(int x, int y);
void resize(int width, int height);
void setGeometry(int x, int y, int width, int height);
void show();
void hide();
void setVisible(bool visible);
void showNormal() { window()->showNormal(); }
void showMinimized() { window()->showMinimized(); }
void showMaximized() { window()->showMaximized(); }
void showFullScreen() { window()->showFullScreen(); }
void setCursor(int cursor);
void repaint();
/* Events */
virtual bool event(Event ev);
virtual void paintEvent();
virtual void showEvent();
virtual void hideEvent();
virtual void closeEvent();
virtual void moveEvent(int x, int y);
virtual void resizeEvent(int width, int height);
virtual void keyPressEvent(int key, int x, int y);
virtual void keyReleaseEvent(int key, int x, int y);
virtual void mousePressEvent(int button, int x, int y);
virtual void mouseReleaseEvent(int button, int x, int y);
virtual void mouseMoveEvent(int x, int y);
virtual void focusInEvent();
virtual void focusOutEvent();
virtual void idleEvent();
virtual void timerEvent(int timerId);
virtual void overlayDisplayedEvent();
private:
int mX, mY, mWidth, mHeight;
int mCursor;
bool mVisible;
Window *mWindow;
Widget *mParent;
};
};
#endif // WIDGET_H