src/widget/window_events.hpp
author KUDr
Sat, 03 Mar 2007 02:47:45 +0000
branchcpp_gui
changeset 6278 c09f5e53af9b
parent 6271 0ad100a98853
child 6282 c5b92f2d924f
permissions -rw-r--r--
(svn r8986) [cpp_gui] -Add: resizing window by dragging ResizeBox
-Fix: Moving top-left corner of widget now moves is instead of resizing
-Add: Resizing widget/window now generates OnResize() event
-Add: Resizing container now generates OnResizeParent() for all children
-Add: Widget anchors (widgets now resize/move when container widget resizes)
/* $Id$ */

#ifndef WINDOW_EVENT_H
#define WINDOW_EVENT_H

namespace gui {


template <> struct EventT<EVT_CREATE> : public EventBaseT<EVT_CREATE, &Widget::OnCreate> {
};

template <> struct EventT<EVT_DESTROY> : public EventBaseT<EVT_DESTROY, &Widget::OnDestroy> {
};

template <> struct EventT<EVT_PAINT> : public EventBaseT<EVT_PAINT, &Widget::OnPaint> {
};

template <> struct EventT<EVT_KEYPRESS> : public EventBaseT<EVT_KEYPRESS, &Widget::OnKeyPress> {
	bool   m_cont;     // continue the search? (default true)
	uint16 m_key;      // 16-bit Unicode value of the key
	uint16 m_keycode;  // untranslated key (including shift-state)

	EventT(bool cont, uint16 key, uint16 keycode)
		: m_cont(cont)
		, m_key(key)
		, m_keycode(keycode)
	{}
};

template <> struct EventT<EVT_CLICK> : public EventBaseT<EVT_CLICK, &Widget::OnLeftClick> {
	Point m_pt;

	EventT(const PointRaw &pt)
		: m_pt(pt)
	{}
};

template <> struct EventT<EVT_RCLICK> : public EventBaseT<EVT_RCLICK, &Widget::OnRightClick> {
	Point m_pt;

	EventT(const PointRaw &pt)
		: m_pt(pt)
	{}
};

template <> struct EventT<EVT_MOUSEOVER> : public EventBaseT<EVT_MOUSEOVER, &Widget::OnMouseOver> {
	Point m_pt;

	EventT(const PointRaw &pt)
		: m_pt(pt)
	{}
};

template <> struct EventT<EVT_RESIZE> : public EventBaseT<EVT_RESIZE, &Widget::OnResize> {
	Point16 m_change;

	EventT(const PointRaw16 &change)
		: m_change(change)
	{}
};

template <> struct EventT<EVT_RESIZE_PARENT> : public EventBaseT<EVT_RESIZE_PARENT, &Widget::OnResizeParent> {
	Point16 m_change;

	EventT(const PointRaw16 &change)
		: m_change(change)
	{}

	EventT(const EvtResize &src)
		: m_change(src.m_change)
	{}
};




}; // namespace gui

#endif /* WINDOW_EVENT_H */