blob: 054bb0557b807bacb43ec5129b1dfa0815d445d7 [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 <iostream>
#include <emscripten.h>
#include <emscripten/html5.h>
using namespace std;
int seen = 0;
EM_BOOL mouse_callback(int eventType, const EmscriptenMouseEvent *e, void* userData) {
cout << "mouse_callback+" << endl;
seen++;
return 0;
}
void mainLoop() {
emscripten_sleep(100);
static int counter = 0;
counter++;
EM_ASM(
function sendEvent(type, data) {
setTimeout(function() {
var event = document.createEvent('Event');
event.initEvent(type, true, true);
for(var d in data) event[d] = data[d];
Module['canvas'].dispatchEvent(event);
}, Math.random()*100);
}
sendEvent('mousedown', { screenX: 1, screenY: 1, clientX: 1, clientY: 1, button: 0, buttons: 1 });
);
cout << "sent event " << counter << "\n";
if (seen >= 10) {
emscripten_cancel_main_loop();
cout << "Success.\n";
REPORT_RESULT(1);
return;
}
if (counter >= 100) {
emscripten_cancel_main_loop();
cout << "FAIL\n";
REPORT_RESULT(9999);
return;
}
}
int main() {
cout << "HelloWorld" << endl;
emscripten_set_mousedown_callback("#canvas", 0, 1, mouse_callback);
emscripten_set_main_loop(mainLoop, 0, 0);
return 0;
}