| Revision 1 (by (no author), 2006/09/28 22:53:53) |
Initial import |
/// \file widget.cpp
/// Widget class
#include <allegro.h>
#include "widget.h"
Widget::Widget(Widget* parent): x(0), y(0), w(0), h(0), isFocused(false), wantKeyboard(false), parent(parent), wantRedraw(true)
{
}
Widget::~Widget()
{
}
bool Widget::IsMouseOver()
{
return mouse_x >= x && mouse_x < x + w && mouse_y >= y && mouse_y < y + h;
}
void Widget::WantRedraw()
{
wantRedraw = true;
if(parent)
parent->WantRedraw();
}
void Widget::Focus()
{
isFocused = true;
if(parent)
parent->FocusChild(this);
}
void Widget::FocusChild(Widget* child)
{
}
void Widget::Redraw(RedrawEventArgs* e)
{
}
void Widget::KeyDown(KeyEventArgs* e)
{
}
void Widget::KeyUp(KeyEventArgs* e)
{
}
void Widget::MouseMove(MouseEventArgs* e)
{
}
void Widget::MousePress(MouseEventArgs* e)
{
Focus();
saved_buttons = e->b;
}
void Widget::MouseRelease(MouseEventArgs* e)
{
if(saved_buttons & 1 && !(e->b & 1))
{
MouseClick();
}
}
void Widget::MouseScroll(MouseEventArgs* e)
{
}
void Widget::MouseClick()
{
onClick.Trigger(this);
}
// The end