Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Artifact ID: | 61e6d88f75153f1bf79139035b4975338d2c2e9d |
---|---|
Page Name: | MIOGUI |
Date: | 2016-09-07 14:15:36 |
Original User: | aldo |
Parent: | 3c68dc2b50686a01a3ccd6b0a7f0d07014e05a8a (diff) |
Next | 4fb55bdf89869e32cbeb99dd44791420f98b1f03 |
Content
MIOGUI
More Immediate Operation GUI - Develop GUI in scheme in incremental & immediate mode!
Alpha version! Need some cleanup and some more widgets & demos...
Concepts
Immediate Mode GUI
This means that the user never has to deal with objects (anti-oop way ;).
Immediate Mode GUI
This means that the user never has to deal with objects (anti-oop way ;).Some projects, written in C or C++
A Microsoft paper on the subject:
Cascading Stylesheets
- Based on CSS
- Basic box model things, TODO: document supported attributes and selectors
- Transitions ;)
Scheme
- Simple but powerful language
- REPL (Read Eval Print Loop) means you don't need to restart the program for seeing changes on your program.
- We actually support chez scheme but it's possible to port to others schemes
Network REPL
- Nanomsg library allows to connect at any moment from anywhere to the runtime to modify the code on the fly without loosing state.
Cairo
- Nice graphics with simple and powerful API
- We could port the thing to opengl, GDI+, Xcb if needed
SDL2
- Powerful and portable abstraction for handling video and input and much more
- Could be replaced with some other system like Xcb, Win32 API, etc
- Why not send the frame to a web client and handle the ui with javascript. This could be done with cairo rendering an svg or sending directy some html.
Get & Install
You'll need chez scheme 9.4 and thunderchez Required also nanomsg-1.0, sdl-2.0.4, cairoCheckout: You'll need fossil
fossil clone https://pizzahack.eu/fossil/miogui miogui.fossil mkdir miogui && cd miogui && fossil open ../miogui.fossil
You can also download the latest code as a tarball: miogui-latest.tar.gz
Remember to setup thunderchez properly.
Then run:
# I recommend this limit setting because our sofware is alpha. If you run into a non-tail recursion you can lock your system :) ulimit -Sv 1000000 scheme miogui.ss
Now switch to other console and type
/path/to/thunderchez/nanomsg/remote-repl tcp://localhost:9998From there you can modify the code. You ideally want to run that from inside emacs M-x run-scheme and send code with C-x C-e or C-c C-e
To follow news subscribe to RSS feed