[DEV] Add some meta key event
This commit is contained in:
parent
b63f91d544
commit
b7108874dd
@ -10,6 +10,8 @@
|
||||
#import <ewol/renderer/MacOs/AppDelegate.h>
|
||||
#import <ewol/renderer/MacOs/OpenglView.h>
|
||||
|
||||
#include <ewol/debug.h>
|
||||
|
||||
@implementation MacOsAppDelegate
|
||||
@synthesize window=_window;
|
||||
|
||||
|
@ -86,7 +86,7 @@ class MacOSInterface : public ewol::eContext {
|
||||
if (_unichar == etk::UChar::CarrierReturn) {
|
||||
_unichar = etk::UChar::Return;
|
||||
}
|
||||
EWOL_DEBUG("key: " << _unichar << " up=" << !_isDown);
|
||||
//EWOL_DEBUG("key: " << _unichar << " up=" << !_isDown);
|
||||
if (_unichar <= 4) {
|
||||
enum ewol::keyEvent::keyboard move;
|
||||
switch(_unichar) {
|
||||
@ -108,6 +108,11 @@ class MacOSInterface : public ewol::eContext {
|
||||
OS_SetKeyboard(_keyboardMode, _unichar, !_isDown, _isAReapeateKey);
|
||||
}
|
||||
}
|
||||
void MAC_SetKeyboardMove(ewol::SpecialKey& _special,
|
||||
enum ewol::keyEvent::keyboard _move,
|
||||
bool _isDown) {
|
||||
OS_SetKeyboardMove(_special, _move, _isDown);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -151,6 +156,12 @@ void MacOs::setKeyboard(ewol::SpecialKey _keyboardMode, int32_t _unichar, bool _
|
||||
interface->MAC_SetKeyboard(_keyboardMode, _unichar, _isDown, _isAReapeateKey);
|
||||
}
|
||||
|
||||
void MacOs::setKeyboardMove(ewol::SpecialKey& _keyboardMode, enum ewol::keyEvent::keyboard _move, bool _isDown) {
|
||||
if (interface == NULL) {
|
||||
return;
|
||||
}
|
||||
interface->MAC_SetKeyboardMove(_keyboardMode, _move, _isDown);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -22,6 +22,7 @@ namespace MacOs {
|
||||
void setMouseState(int32_t _id, bool _isDown, float _x, float _y);
|
||||
void setMouseMotion(int32_t _id, float _x, float _y);
|
||||
void setKeyboard(ewol::SpecialKey _keyboardMode, int32_t _unichar, bool _isDown, bool _isAReapeateKey);
|
||||
void setKeyboardMove(ewol::SpecialKey& _keyboardMode, enum ewol::keyEvent::keyboard _move, bool _isDown);
|
||||
};
|
||||
|
||||
#endif
|
@ -28,6 +28,7 @@
|
||||
- (void)otherMouseUp:(NSEvent *)event;
|
||||
//- (void)sendEvent:(NSEvent *)event
|
||||
- (void)keyDown:(NSEvent *)theEvent;
|
||||
- (void)flagsChanged:(NSEvent *)theEvent;
|
||||
@end
|
||||
|
||||
|
||||
|
@ -199,6 +199,7 @@ static ewol::SpecialKey guiKeyBoardMode;
|
||||
}
|
||||
}
|
||||
/*
|
||||
// https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html
|
||||
// http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html
|
||||
-(void)sendEvent:(NSEvent *)event {
|
||||
NSPoint point = [event locationInWindow];
|
||||
@ -240,6 +241,95 @@ static ewol::SpecialKey guiKeyBoardMode;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)flagsChanged:(NSEvent *)theEvent {
|
||||
|
||||
if (([theEvent modifierFlags] & NSAlphaShiftKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSAlphaShiftKeyMask");
|
||||
if (guiKeyBoardMode.capLock == 0) {
|
||||
guiKeyBoardMode.capLock = 1;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardCapLock, true);
|
||||
}
|
||||
} else {
|
||||
if (guiKeyBoardMode.capLock == 1) {
|
||||
guiKeyBoardMode.capLock = 0;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardCapLock, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (([theEvent modifierFlags] & NSShiftKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSShiftKeyMask");
|
||||
if (guiKeyBoardMode.shift == 0) {
|
||||
guiKeyBoardMode.shift = 1;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardShiftLeft, true);
|
||||
}
|
||||
} else {
|
||||
if (guiKeyBoardMode.shift == 1) {
|
||||
guiKeyBoardMode.shift = 0;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardShiftLeft, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (([theEvent modifierFlags] & NSControlKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSControlKeyMask");
|
||||
if (guiKeyBoardMode.ctrl == 0) {
|
||||
guiKeyBoardMode.ctrl = 1;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardCtrlLeft, true);
|
||||
}
|
||||
} else {
|
||||
if (guiKeyBoardMode.ctrl == 1) {
|
||||
guiKeyBoardMode.ctrl = 0;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardCtrlLeft, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (([theEvent modifierFlags] & NSAlternateKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSAlternateKeyMask");
|
||||
if (guiKeyBoardMode.alt == 0) {
|
||||
guiKeyBoardMode.alt = 1;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardAlt, true);
|
||||
}
|
||||
} else {
|
||||
if (guiKeyBoardMode.alt == 1) {
|
||||
guiKeyBoardMode.alt = 0;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardAlt, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (([theEvent modifierFlags] & NSCommandKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSCommandKeyMask");
|
||||
if (guiKeyBoardMode.meta == 0) {
|
||||
guiKeyBoardMode.meta = 1;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardMetaLeft, true);
|
||||
}
|
||||
} else {
|
||||
if (guiKeyBoardMode.meta == 1) {
|
||||
guiKeyBoardMode.meta = 0;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardMetaLeft, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (([theEvent modifierFlags] & NSNumericPadKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSNumericPadKeyMask");
|
||||
if (guiKeyBoardMode.numLock == 0) {
|
||||
guiKeyBoardMode.numLock = 1;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardNumLock, true);
|
||||
}
|
||||
} else {
|
||||
if (guiKeyBoardMode.numLock == 1) {
|
||||
guiKeyBoardMode.numLock = 0;
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardNumLock, false);
|
||||
}
|
||||
}
|
||||
if (([theEvent modifierFlags] & NSHelpKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSHelpKeyMask");
|
||||
}
|
||||
if (([theEvent modifierFlags] & NSFunctionKeyMask) != 0) {
|
||||
EWOL_DEBUG("NSFunctionKeyMask");
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardContextMenu, true);
|
||||
MacOs::setKeyboardMove(guiKeyBoardMode, ewol::keyEvent::keyboardContextMenu, false);
|
||||
}
|
||||
}
|
||||
|
||||
#define FRAME_INTERVAL (0.01)
|
||||
|
||||
static NSTimer *timer = nil;
|
||||
|
Loading…
x
Reference in New Issue
Block a user