blob: 7c4c3d2f4edf49d83dfa5ddda1fc7d5e64fd4fb3 [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#include "embedders/openglui/common/input_handler.h"
#include "embedders/openglui/common/log.h"
InputHandler::InputHandler(VMGlue* vm_glue)
: vm_glue_(vm_glue) {
}
int InputHandler::OnMotionEvent(MotionEvent event,
int64_t when,
float x,
float y) {
const char *function = NULL;
// For now we just keep this simple. There are
// no click events or mouseover events.
switch (event) {
case kMotionDown:
function = "onMouseDown_";
break;
case kMotionUp:
function = "onMouseUp_";
break;
case kMotionMove:
function = "onMouseMove_";
break;
case kMotionCancel:
break;
case kMotionOutside:
break;
case kMotionPointerDown:
break;
case kMotionPointerUp:
break;
default:
return -1;
}
if (function == NULL) {
return 0;
} else {
return vm_glue_->OnMotionEvent(function, when, x, y);
}
}
int InputHandler::OnKeyEvent(KeyEvent event,
int64_t when,
int32_t key_code,
bool isAltKeyDown,
bool isCtrlKeyDown,
bool isShiftKeyDown,
int32_t repeat) {
const char *function = NULL;
switch (event) {
case kKeyDown:
function = "onKeyDown_";
break;
case kKeyUp:
function = "onKeyUp_";
break;
case kKeyMultiple:
return -1; // TODO(gram): handle this.
break;
default:
return -1;
}
return vm_glue_->OnKeyEvent(function, when, key_code,
isAltKeyDown, isCtrlKeyDown, isShiftKeyDown,
repeat);
}
void InputHandler::OnAccelerometerEvent(float x, float y, float z) {
vm_glue_->OnAccelerometerEvent(x, y, z);
}