Sha256: a8df6a6db7104ee07c9b44f01338a3842704a8c86a2e7e5367a2f4987cf8aae7
Contents?: true
Size: 1.88 KB
Versions: 3
Compression:
Stored size: 1.88 KB
Contents
// -*- c++ -*- #include "defs.h" #import <Cocoa/Cocoa.h> namespace Reflex { static const char* get_chars (NSEvent* e) { NSString* chars = [e characters];//charactersIgnoringModifiers]; return [chars UTF8String]; } static uint get_current_point_type () { NSUInteger buttons = [NSEvent pressedMouseButtons]; uint ret = 0; if (buttons & (1 << 0)) ret |= POINT_MOUSE_LEFT; if (buttons & (1 << 1)) ret |= POINT_MOUSE_RIGHT; if (buttons >= (1 << 2)) ret |= POINT_MOUSE_MIDDLE; return ret; } static uint get_point_type (NSEvent* e) { switch ([e type]) { case NSLeftMouseDown: case NSLeftMouseUp: case NSLeftMouseDragged: return POINT_MOUSE_LEFT; case NSRightMouseDown: case NSRightMouseUp: case NSRightMouseDragged: return POINT_MOUSE_RIGHT; case NSMouseMoved: return get_current_point_type(); } return 0; } static uint get_modifiers (NSEvent* e) { NSUInteger flags = [e modifierFlags]; return (flags & NSAlphaShiftKeyMask) ? MOD_CAPS : 0 | (flags & NSShiftKeyMask) ? MOD_SHIFT : 0 | (flags & NSControlKeyMask) ? MOD_CONTROL : 0 | (flags & NSAlternateKeyMask) ? MOD_ALT : 0 | (flags & NSCommandKeyMask) ? MOD_COMMAND : 0 | (flags & NSNumericPadKeyMask) ? MOD_NUMPAD : 0 | (flags & NSHelpKeyMask) ? MOD_HELP : 0 | (flags & NSFunctionKeyMask) ? MOD_FUNCTION : 0; } CocoaKey::CocoaKey (NSEvent* e) : Key(get_chars(e), [e keyCode], get_modifiers(e), [e isARepeat] ? 1 : 0) { } CocoaPoints::CocoaPoints (NSEvent* e, NSView* view) : Points( get_point_type(e), (coord) 0, (coord) 0, get_modifiers(e), (uint) [e clickCount], [e type] == NSLeftMouseDragged || [e type] == NSRightMouseDragged) { NSPoint p = [e locationInWindow]; NSRect b = [view bounds]; if (view) p = [view convertPoint: p fromView: nil]; x = p.x; y = b.size.height - p.y; } };// Reflex
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
reflexion-0.1.6 | src/cocoa/defs.mm |
reflexion-0.1.5 | src/cocoa/defs.mm |
reflexion-0.1.4 | src/cocoa/defs.mm |