Mercurial > projects > doodle
view doodle/tk/events.d @ 28:1754cb773d41
Part-way through getting to compile with configure/builder.
author | Graham St Jack <graham.stjack@internode.on.net> |
---|---|
date | Sun, 02 Aug 2009 16:27:21 +0930 |
parents | tk/events.d@c643c04e3f5e |
children | 157b4ad5615d |
line wrap: on
line source
module doodle.tk.events; public { import doodle.tk.types; import doodle.tk.geometry; } abstract class Event { this(in Mask mask) { mMask = mask; } Mask mask() const { return mMask; } private { Mask mMask; } } final class CrossingEvent : Event { this(in Mask mask) { super(mask); } private { } } final class KeyEvent : Event { this(in string str, in uint value, in Mask mask) { super(mask); mStr = str; mValue = value; } string str() const { return mStr; } override string toString() const { return std.string.format("Key event: %s, %d, %s", mStr, mValue, mMask); } private { string mStr; uint mValue; } } abstract class PointerEvent : Event { this(in Point pixel_point, in Point model_point, in Mask mask) { super(mask); mPixelPoint = pixel_point; mModelPoint = model_point; } Point pixel_point() const { return mPixelPoint; } Point model_point() const { return mModelPoint; } private { Point mPixelPoint; Point mModelPoint; } } final class ButtonEvent : PointerEvent { this(in ButtonAction button_action, in ButtonName button_name, in Point pixel_point, in Point model_point, in Mask mask) { super(pixel_point, model_point, mask); mButtonAction = button_action; mButtonName = button_name; } override string toString() const { return std.string.format("Button event: %s, %s, %s, %s, %s", enumToString(mButtonAction), enumToString(mButtonName), mPixelPoint, mModelPoint, mMask); } ButtonAction button_action() const { return mButtonAction; } ButtonName button_name() const { return mButtonName; } private { ButtonAction mButtonAction; ButtonName mButtonName; } } final class MotionEvent : PointerEvent { this(in Point pixel_point, in Point model_point, in Mask mask) { super(pixel_point, model_point, mask); } override string toString() const { return std.string.format("Motion event: %s, %s, %s", mPixelPoint, mModelPoint, mMask); } } final class ScrollEvent : PointerEvent { this(in ScrollDirection scroll_direction, in Point pixel_point, in Point model_point, in Mask mask) { super(pixel_point, model_point, mask); mScrollDirection = scroll_direction; } override string toString() const { return std.string.format("Scroll event: %s, %s, %s, %s", enumToString(mScrollDirection), mPixelPoint, mModelPoint, mMask); } ScrollDirection scroll_direction() const { return mScrollDirection; } private { ScrollDirection mScrollDirection; } }