diff options
-rw-r--r-- | lib/skang.lua | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/skang.lua b/lib/skang.lua index 394c3f8..5c4aec7 100644 --- a/lib/skang.lua +++ b/lib/skang.lua | |||
@@ -1058,6 +1058,36 @@ wMum.__call = function (func, ...) | |||
1058 | end | 1058 | end |
1059 | ]] | 1059 | ]] |
1060 | 1060 | ||
1061 | --[[ TODO - Widgets doing the right thing, in the right place. | ||
1062 | |||
1063 | GOAL - GuiLua.c -> _on_click() -> lauL_dostring(L, wid->action) | ||
1064 | We want this action to be performed in the environment of the module that created the widget. | ||
1065 | Or the one that set the action. | ||
1066 | |||
1067 | purkle | ||
1068 | local purkle = require 'purkle' | ||
1069 | local win = skang.window(.... | ||
1070 | win = copy(widgets .... | ||
1071 | win.window = Cwindow( .... | ||
1072 | lightuserdata *winFang | ||
1073 | skang.thingasm{win, 'button1' .... types = 'widget', widget='"button", .... | ||
1074 | args = loadstring('"button", .... | ||
1075 | setfenv(args, win) | ||
1076 | thingy.Cwidget = widget(win.window, args()) | ||
1077 | winFang *(win.window) | ||
1078 | Widget->data = L | ||
1079 | Widget->obj "clicked" callback = _on_click, Widget * | ||
1080 | lightuserdata *widget | ||
1081 | parent.W[name] = thingy | ||
1082 | win.W.button1.action = 'purkle.say(' .... | ||
1083 | aIsValid(.... | ||
1084 | action(button1, .... | ||
1085 | Widget->action = .... | ||
1086 | |||
1087 | Store the name of the module that created a window in winFang. | ||
1088 | Store the winFang a widget is in in Widget. | ||
1089 | ]] | ||
1090 | |||
1061 | window = function(w, h, title, name) | 1091 | window = function(w, h, title, name) |
1062 | name = name or 'myWindow' | 1092 | name = name or 'myWindow' |
1063 | local win = {} | 1093 | local win = {} |