Update gtk.js

This commit is contained in:
Namhyeon Go 2020-10-27 10:27:47 +09:00
parent 76d016b539
commit 4c804833cb

View File

@ -16,11 +16,57 @@ var GTKWidgets = {};
var GTKWidget = function() {
this.widgetType = "GTKWidget";
this.widgetID = GTKCreateWidget(this);
this.onEventTriggered = function() {};
this.eventListener = GTKEventListener(this);
this.addEventListener = function(ev, fn) {
if (typeof(fn) == "function") {
this['on' + ev] = fn;
} else {
throw new TypeError("EventListener must be a function");
}
};
GTKWidgets[this.widgetID] = this;
};
// definedEvents
var definedEvents = {
"Window" [
"onload"
],
"Table": [
"onload"
],
"Button": [
"onload",
"onclick"
],
"Entry": [
"onload",
"onkeyup"
]
"RadioBox": [
"onload",
"onclick"
],
"TextBox" [
"onload"
]
};
// GTKEventListener
var GTKEventListener = function(widget) {
if (widget.widgetType in definedEvents) {
var widgetEvents = definedEvents[widget.widgetType];
for (var i = 0; i < widgetEvents.length; i++) {
var eventName = widgetEvents[i];
if (eventName in widget && typeof(widget[eventName]) == "function") {
widget[eventName]();
}
}
}
};
// GTKCreateElement
var GTKCreateWidget = function(widget) {
var widgetID, commands = [];
@ -269,7 +315,7 @@ var GTKWait = function(callback) {
]);
if (even in GTKWidgets) {
GTKWidgets[even].onEventTriggered();
GTKWidgets[even].eventListener();
}
if (typeof(callback) == "function") {