Add cluter.Event.toString().
[girtod.git] / mixin / Clutter_Event.d
blob86dc9ce6e0b1a8621098b86d96de2a6541ad1451
1 void toString(FT)(scope void delegate(const(char)[]) sink, FT fmt) {
2 import std.format;
3 with (EventType)
4 switch (type_) {
5 // <KeyEvent> contains a dchar, which causes:
6 //Error: static assert "Cannot put a dchar into a void delegate(const(char)[])"
7 //case KEY_PRESS, KEY_RELEASE: formatValue(sink, key, fmt); return;
8 case MOTION: formatValue(sink, motion, fmt); return;
9 case ENTER, LEAVE: formatValue(sink, crossing, fmt); return;
10 case BUTTON_PRESS, BUTTON_RELEASE:
11 formatValue(sink, button, fmt); return;
12 case SCROLL: formatValue(sink, scroll, fmt); return;
13 case STAGE_STATE: formatValue(sink, stage_state, fmt); return;
14 any: case DELETE, DESTROY_NOTIFY, CLIENT_MESSAGE:
15 formatValue(sink, any, fmt); return;
16 default: sink("/*FIXME*/"); goto any;