mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-03-11 16:35:13 +00:00
Update gtk.js
This commit is contained in:
parent
76d016b539
commit
4c804833cb
50
lib/gtk.js
50
lib/gtk.js
|
@ -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") {
|
||||
|
|
Loading…
Reference in New Issue
Block a user