Comments (2)
No, I experimented with a couple different ways to do this, and I settled on doing an old school event loop, for simplicity. The sink code just dispatches the events itself, in a do-while loop.
This means implementing a native function like events.getnext
, which will get the next event, or wait until an event is added. Then the sink code would be something like:
do
var { type, args } = events.getnext
while type != events.QUIT
# handle event
if type == events.MOUSEMOVE
onMouseMove args
elseif type == events.MOUSECLICK
onMouseClick args
# etc...
end
end
# quit happened...
Here's an issue where I discuss options, but eventually concluded not to do anything: #51
And another idea for event based processing here: #28
from sink.
from sink.
Related Issues (20)
- Change error message in `_arg_` functions from `argument` to `item` HOT 1
- Splitting a long string causes Sink to crash HOT 5
- Lexical scoping bug with loops when variable declaration occurs before assignment HOT 4
- Reuse stack frame variables when they go out of scope HOT 2
- Add `rand.range` command HOT 1
- Add `list.permute`, `list.combine` commands HOT 2
- Create `eval` command (pseudo-closures) HOT 1
- Add runtime test to see if a native function is defined HOT 1
- build under Windows HOT 3
- Better error message if user forgets to specify script paths
- Support "\u0000" and "\U00000000" HOT 1
- `str.split a, nil` should be treated as `str.split a, ""`
- Allow destructuring assignment inside for loop
- Why does `00` error with "Invalid Call"?
- Specify indexes inside lists
- list.push and list.unshift should support multiple params
- `for: range func` fails
- Including after def fails
- array[num.nan] throws an error
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sink.