blob: 39b92eda4ccb2a75a223a150fcffe5dd91a508f8 [file] [log] [blame]
// Copyright 2015 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
#include <stdio.h>
#include <emscripten.h>
#include <emscripten/html5.h>
static int result = 1;
// The event handler functions can return 1 to suppress the event and disable the default action. That calls event.preventDefault();
// Returning 0 signals that the event was not consumed by the code, and will allow the event to pass on and bubble up normally.
extern "C"
{
EM_BOOL keydown_callback(int eventType, const EmscriptenKeyboardEvent *e, void *userData)
{
if ((e->keyCode == 65) || (e->keyCode == 8))
{
result *= 2;
}
else
{
REPORT_RESULT(result);
emscripten_run_script("throw 'done'");
}
return 0;
}
}
extern "C"
{
EM_BOOL keypress_callback(int eventType, const EmscriptenKeyboardEvent *e, void *userData)
{
result *= 3;
return 0;
}
}
extern "C"
{
EM_BOOL keyup_callback(int eventType, const EmscriptenKeyboardEvent *e, void *userData)
{
if ((e->keyCode == 65) || (e->keyCode == 8))
{
result *= 5;
}
return 0;
}
}
int main(int argc, char **argv)
{
printf("main argc:%d\n", argc);
emscripten_set_keydown_callback("#document", 0, 1, keydown_callback);
emscripten_set_keypress_callback("#document", 0, 1, keypress_callback);
emscripten_set_keyup_callback("#document", 0, 1, keyup_callback);
return 0;
}