[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/AppDelegate.h>
|
||||||
#import <ewol/renderer/MacOs/OpenglView.h>
|
#import <ewol/renderer/MacOs/OpenglView.h>
|
||||||
|
|
||||||
|
#include <ewol/debug.h>
|
||||||
|
|
||||||
@implementation MacOsAppDelegate
|
@implementation MacOsAppDelegate
|
||||||
@synthesize window=_window;
|
@synthesize window=_window;
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ class MacOSInterface : public ewol::eContext {
|
|||||||
if (_unichar == etk::UChar::CarrierReturn) {
|
if (_unichar == etk::UChar::CarrierReturn) {
|
||||||
_unichar = etk::UChar::Return;
|
_unichar = etk::UChar::Return;
|
||||||
}
|
}
|
||||||
EWOL_DEBUG("key: " << _unichar << " up=" << !_isDown);
|
//EWOL_DEBUG("key: " << _unichar << " up=" << !_isDown);
|
||||||
if (_unichar <= 4) {
|
if (_unichar <= 4) {
|
||||||
enum ewol::keyEvent::keyboard move;
|
enum ewol::keyEvent::keyboard move;
|
||||||
switch(_unichar) {
|
switch(_unichar) {
|
||||||
@ -108,6 +108,11 @@ class MacOSInterface : public ewol::eContext {
|
|||||||
OS_SetKeyboard(_keyboardMode, _unichar, !_isDown, _isAReapeateKey);
|
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);
|
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 setMouseState(int32_t _id, bool _isDown, float _x, float _y);
|
||||||
void setMouseMotion(int32_t _id, 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 setKeyboard(ewol::SpecialKey _keyboardMode, int32_t _unichar, bool _isDown, bool _isAReapeateKey);
|
||||||
|
void setKeyboardMove(ewol::SpecialKey& _keyboardMode, enum ewol::keyEvent::keyboard _move, bool _isDown);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -28,6 +28,7 @@
|
|||||||
- (void)otherMouseUp:(NSEvent *)event;
|
- (void)otherMouseUp:(NSEvent *)event;
|
||||||
//- (void)sendEvent:(NSEvent *)event
|
//- (void)sendEvent:(NSEvent *)event
|
||||||
- (void)keyDown:(NSEvent *)theEvent;
|
- (void)keyDown:(NSEvent *)theEvent;
|
||||||
|
- (void)flagsChanged:(NSEvent *)theEvent;
|
||||||
@end
|
@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
|
// http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html
|
||||||
-(void)sendEvent:(NSEvent *)event {
|
-(void)sendEvent:(NSEvent *)event {
|
||||||
NSPoint point = [event locationInWindow];
|
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)
|
#define FRAME_INTERVAL (0.01)
|
||||||
|
|
||||||
static NSTimer *timer = nil;
|
static NSTimer *timer = nil;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user