This commit is contained in:
2018-08-08 17:56:26 +02:00
parent 72fbbb08a3
commit 7c14ec19b0

View File

@@ -296,127 +296,73 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTime
}
- (void)mouseDown:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_down(0, mouseLoc.x, App::I.height - mouseLoc.y - 1, theEvent.pressure, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc,p=theEvent.pressure] {
App::I.mouse_down(0, mouseLoc.x, App::I.height - mouseLoc.y - 1, p, kEventSource::Mouse);
});
}
}
- (void)rightMouseDown:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_down(1, mouseLoc.x, App::I.height - mouseLoc.y - 1, theEvent.pressure, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc,p=theEvent.pressure] {
App::I.mouse_down(1, mouseLoc.x, App::I.height - mouseLoc.y - 1, p, kEventSource::Mouse);
});
}
}
- (void)mouseUp:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_up(0, mouseLoc.x, App::I.height - mouseLoc.y - 1, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc] {
App::I.mouse_up(0, mouseLoc.x, App::I.height - mouseLoc.y - 1, kEventSource::Mouse);
});
}
}
- (void)rightMouseUp:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_up(1, mouseLoc.x, App::I.height - mouseLoc.y - 1, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc] {
App::I.mouse_up(1, mouseLoc.x, App::I.height - mouseLoc.y - 1, kEventSource::Mouse);
});
}
}
- (void)mouseMoved:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_move(mouseLoc.x, App::I.height - mouseLoc.y - 1, theEvent.pressure, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc,p=theEvent.pressure] {
App::I.mouse_move(mouseLoc.x, App::I.height - mouseLoc.y - 1, p, kEventSource::Mouse);
});
}
}
-(void)mouseDragged:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_move(mouseLoc.x, App::I.height - mouseLoc.y - 1, theEvent.pressure, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc,p=theEvent.pressure] {
App::I.mouse_move(mouseLoc.x, App::I.height - mouseLoc.y - 1, p, kEventSource::Mouse);
});
}
}
- (void)rightMouseDragged:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_move(mouseLoc.x, App::I.height - mouseLoc.y - 1, theEvent.pressure, kEventSource::Mouse);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc,p=theEvent.pressure] {
App::I.mouse_move(mouseLoc.x, App::I.height - mouseLoc.y - 1, p, kEventSource::Mouse);
});
}
}
- (void)scrollWheel:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto mouseLoc = [self convertPoint:[theEvent locationInWindow] fromView:nil];
// App::I.mouse_scroll(mouseLoc.x, App::I.height - mouseLoc.y - 1, [theEvent deltaY]);
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([mouseLoc,d=[theEvent deltaY]] {
App::I.mouse_scroll(mouseLoc.x, App::I.height - mouseLoc.y - 1, d);
});
}
}
- (void)keyDown:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto keyCode = [theEvent keyCode];
auto chars = [theEvent characters];
// if (App::I.keys[(int)kKey::KeyCtrl])
// {
// App::I.key_down(convert_key(keyCode));
// App::I.key_up(convert_key(keyCode));
// }
// else
// {
// App::I.key_down(convert_key(keyCode));
// if (const char* cstr = [chars cStringUsingEncoding:NSASCIIStringEncoding])
// App::I.key_char(cstr[0]);
// }
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
std::string s = [chars cStringUsingEncoding:NSASCIIStringEncoding];
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([keyCode, s] {
if (App::I.keys[(int)kKey::KeyCtrl])
@@ -432,27 +378,19 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTime
}
});
}
}
- (void)keyUp:(NSEvent *)theEvent
{
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto keyCode = [theEvent keyCode];
// App::I.key_up(convert_key(keyCode));
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([keyCode] {
App::I.key_up(convert_key(keyCode));
});
}
}
- (void)flagsChanged:(NSEvent *)event
{
[super flagsChanged:event];
// CGLLockContext([[self openGLContext] CGLContextObj]);
auto flags = [event modifierFlags];
{
std::lock_guard<std::mutex> lock(task_mutex);
tasklist.emplace_back([flags] {
static bool pressed_shift = false;
@@ -475,9 +413,6 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTime
}
});
}
// CGLUnlockContext([[self openGLContext] CGLContextObj]);
}
@end
@implementation Window