X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finput%2Fkeys.cpp;h=6be00ba591cbb0618733e0ba1533f867c16fe146;hb=75286abb276e0f7e7a1fb8f5a7a7c1c33ca5bcda;hp=4a6df371776a843ab159c9dc4493e92ee9c586f8;hpb=7302a061c57602203895b616bf54d96269c677c6;p=libs%2Fgui.git diff --git a/source/input/keys.cpp b/source/input/keys.cpp index 4a6df37..6be00ba 100644 --- a/source/input/keys.cpp +++ b/source/input/keys.cpp @@ -333,5 +333,54 @@ void operator<<(LexicalConverter &conv, Key key) } } +void operator>>(const LexicalConverter &conv, MouseAxis &axis) +{ + if(conv.get()=="X") + axis = MOUSE_X_AXIS; + else if(conv.get()=="Y") + axis = MOUSE_Y_AXIS; + else + throw lexical_error(format("conversion of '%s' to MouseAxis", conv.get())); +} + +void operator<<(LexicalConverter &conv, MouseAxis axis) +{ + switch(axis) + { + case MOUSE_X_AXIS: conv.result("X"); break; + case MOUSE_Y_AXIS: conv.result("Y"); break; + default: conv.result(format("MouseAxis(%#x)", static_cast(axis))); + } +} + +void operator>>(const LexicalConverter &conv, MouseButton &btn) +{ + if(conv.get()=="LEFT") + btn = MOUSE_LEFT; + else if(conv.get()=="MIDDLE") + btn = MOUSE_MIDDLE; + else if(conv.get()=="RIGHT") + btn = MOUSE_RIGHT; + else if(conv.get()=="WHEEL_UP") + btn = MOUSE_WHEEL_UP; + else if(conv.get()=="WHEEL_DOWN") + btn = MOUSE_WHEEL_DOWN; + else + throw lexical_error(format("conversion of '%s' to MouseButton", conv.get())); +} + +void operator<<(LexicalConverter &conv, MouseButton btn) +{ + switch(btn) + { + case MOUSE_LEFT: conv.result("LEFT"); break; + case MOUSE_MIDDLE: conv.result("MIDDLE"); break; + case MOUSE_RIGHT: conv.result("RIGHT"); break; + case MOUSE_WHEEL_UP: conv.result("WHEEL_UP"); break; + case MOUSE_WHEEL_DOWN: conv.result("WHEEL_DOWN"); break; + default: conv.result(format("MouseButton(%#x)", static_cast(btn))); + } +} + } // namespace Input } // namespace Msp