diff options
Diffstat (limited to 'ClientHamr/GuiLua/GuiLua.c')
-rw-r--r-- | ClientHamr/GuiLua/GuiLua.c | 105 |
1 files changed, 33 insertions, 72 deletions
diff --git a/ClientHamr/GuiLua/GuiLua.c b/ClientHamr/GuiLua/GuiLua.c index befc582..94a29eb 100644 --- a/ClientHamr/GuiLua/GuiLua.c +++ b/ClientHamr/GuiLua/GuiLua.c | |||
@@ -34,7 +34,11 @@ scripts can have a poper GUI for a change. | |||
34 | 34 | ||
35 | NOTES and TODOs - | 35 | NOTES and TODOs - |
36 | 36 | ||
37 | Making these packages all a sub package of skang seems like a great idea. | 37 | Making these packages all a sub package of skang seems like a great |
38 | idea. On the other hand, looks like most things are just getting folded | ||
39 | into skang anyway. See | ||
40 | http://www.inf.puc-rio.br/~roberto/pil2/chapter15.pdf part 15.5 for | ||
41 | package details. | ||
38 | 42 | ||
39 | See if I can use LuaJIT FFI here. Since this will be a library, and | 43 | See if I can use LuaJIT FFI here. Since this will be a library, and |
40 | skang apps could be written in C or Lua, perhaps writing this library to | 44 | skang apps could be written in C or Lua, perhaps writing this library to |
@@ -76,76 +80,16 @@ we will be using Lua tables anyway. B-) | |||
76 | */ | 80 | */ |
77 | 81 | ||
78 | 82 | ||
79 | /* coordinates and sizes | ||
80 | |||
81 | Originally skang differentiated between pixels and character cells, | ||
82 | using plain integers to represent pixels, and _123 to represent | ||
83 | character cells. The skang TODO wanted to expand that to percentages | ||
84 | and relative numbers. We can't use _123 in Lua, so some other method | ||
85 | needs to be used. Should include those TODO items in this new design. | ||
86 | |||
87 | Specifying character cells should be done as strings - "123" | ||
88 | |||
89 | Percentages can be done as small floating point numbers between 0 and 1, | ||
90 | which is similar to Edje. Since Lua only has a floating point number | ||
91 | type, both 0 and 1 should still represent pixels / character cells - | ||
92 | |||
93 | 0.1, 0.5, "0.2", "0.9" | ||
94 | |||
95 | Relative numbers could be done as strings, with the widget to be | ||
96 | relative to, a + or -, then the number. This still leaves the problem | ||
97 | of telling if the number is pixels or character cells. Also, relative | ||
98 | to what part of the other widget? Some more thought needs to be put | ||
99 | into this. | ||
100 | |||
101 | */ | ||
102 | |||
103 | |||
104 | /* thing package | 83 | /* thing package |
105 | 84 | ||
106 | matrix-RAD had Thing as the base class of everything. Lua doesn't have | 85 | Currently this is in skang.lua, but should bring this in here later. |
107 | inheritance as such, but an inheritance structure can be built using | ||
108 | Lua's meta language capabilities. I think we still need this sort of | ||
109 | thing. Java inheritance and interfaces where used. There's quite a few | ||
110 | variations of OO support has been written for Lua, maybe some of that | ||
111 | could be used? http://lua-users.org/wiki/ObjectOrientedProgramming | ||
112 | |||
113 | Other useful links - | ||
114 | |||
115 | http://lua-users.org/wiki/ClassesViaModules (not in the above for some reason. | ||
116 | http://lua-users.org/wiki/MetamethodsTutorial | ||
117 | http://lua-users.org/wiki/MetatableEvents | ||
118 | |||
119 | http://lua-users.org/wiki/MechanismNotPolicy | ||
120 | http://www.inf.puc-rio.br/~roberto/pil2/chapter15.pdf | ||
121 | http://lua-users.org/lists/lua-l/2011-10/msg00485.html | ||
122 | http://lua-users.org/wiki/LuaModuleFunctionCritiqued | ||
123 | |||
124 | On the other hand, Thing as such might just vanish and merge into | ||
125 | various Lua and metatable things. Seems that's what is going on. We | ||
126 | didn't really need much OO beyond this anyway. | ||
127 | |||
128 | Each "users session" (matrix-RAD term that came from Java | ||
129 | applets/servlets) has a ThingSpace, which is a tree that holds | ||
130 | everything else. It holds the class cache, commands, loaded modules, | ||
131 | variables and their values, widgets and their states. In matrix-RAD I | ||
132 | built BonsiaTree and LeafLike, for the old FDO system I built dumbtrees. | ||
133 | Perhaps some combination of the two will work here? On the other hand, | ||
134 | with Lua tables, who needs trees? lol | ||
135 | 86 | ||
136 | Get/set variables would be done here, though the widget package, for | 87 | */ |
137 | instance, would override this to deal with the UI side, and call the | ||
138 | parents function to deal with the variable side - | ||
139 | 88 | ||
140 | foo:set('stuff') | ||
141 | bar = foo:get() | ||
142 | 89 | ||
143 | Also, since skang Lua scripts should be defined as modules, we can use | 90 | /* skang package |
144 | module semantics - | ||
145 | 91 | ||
146 | local other = require('otherPackageName') | 92 | Currently this is in skang.lua, but should bring this in here later. |
147 | other.foo = 'stuff' | ||
148 | bar = other.foo | ||
149 | 93 | ||
150 | */ | 94 | */ |
151 | 95 | ||
@@ -162,13 +106,6 @@ database stuff for now, but should keep it in mind. | |||
162 | */ | 106 | */ |
163 | 107 | ||
164 | 108 | ||
165 | /* skang package | ||
166 | |||
167 | Currently this is in skang.lua, but should bring this in here later. | ||
168 | |||
169 | */ | ||
170 | |||
171 | |||
172 | /* widget package | 109 | /* widget package |
173 | 110 | ||
174 | Should include functions for actually dealing with widgets, plus a way | 111 | Should include functions for actually dealing with widgets, plus a way |
@@ -199,6 +136,30 @@ this.bar = 'new first choice' .. this.bar | |||
199 | */ | 136 | */ |
200 | 137 | ||
201 | 138 | ||
139 | /* coordinates and sizes | ||
140 | |||
141 | Originally skang differentiated between pixels and character cells, | ||
142 | using plain integers to represent pixels, and _123 to represent | ||
143 | character cells. The skang TODO wanted to expand that to percentages | ||
144 | and relative numbers. We can't use _123 in Lua, so some other method | ||
145 | needs to be used. Should include those TODO items in this new design. | ||
146 | |||
147 | Specifying character cells should be done as strings - "123" | ||
148 | |||
149 | Percentages can be done as small floating point numbers between 0 and 1, | ||
150 | which is similar to Edje. Since Lua only has a floating point number | ||
151 | type, both 0 and 1 should still represent pixels / character cells - | ||
152 | |||
153 | 0.1, 0.5, "0.2", "0.9" | ||
154 | |||
155 | Relative numbers could be done as strings, with the widget to be | ||
156 | relative to, a + or -, then the number. This still leaves the problem | ||
157 | of telling if the number is pixels or character cells. Also, relative | ||
158 | to what part of the other widget? Some more thought needs to be put | ||
159 | into this. | ||
160 | |||
161 | */ | ||
162 | |||
202 | 163 | ||
203 | /* introspection | 164 | /* introspection |
204 | 165 | ||