Artifact Content
Not logged in

Artifact 51475667e16f4f3fd56f850098b9e9c41db6a6d9:

Wiki page [MIOGUI] by aldo 2017-11-20 20:21:21.
D 2017-11-20T20:21:21.711
P 555acacca4316e81342babbf37bdd8557b705ff1
U aldo
W 3290

More Immediate Operation GUI - Develop GUI in scheme in incremental & immediate mode!

Alpha version! Need some cleanup and some more widgets & demos...

[/doc/tip/demos/|Show me demos and screenshots!]

<h3>Immediate Mode GUI</h3>
This means that the user never has to deal with objects (anti-oop way ;).

Some projects, written in C or C++
  *  [|dear imgui]
  *  [|Sol on Immediate Mode GUIs]
  *  [|IMGUI]
  *  [|Zero Memory Widget]
A Microsoft paper on the subject:
  *  [|It’s Alive! Continuous Feedback in UI Programming]

<h3>Cascading Stylesheets</h3>
  *  Based on [|CSS]<h3>
  *  CSS3 Flexbox layouts!
  *  CSS3 Transitions ;)
  *  CSS3 grid (planned)

  *  Simple but powerful language
  *  REPL (Read Eval Print Loop) means you don't need to restart the program for seeing changes.
  *  We actually support chez scheme but it's possible to port to others schemes

<h3>Network REPL</h3>
  *  Nanomsg library allows to connect at any moment from anywhere to the runtime to modify the code on the fly without loosing state.

  *  Nice graphics with simple and powerful API
  *  We could port the thing to opengl, GDI+, Xcb if needed

  *  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.

<h2>Get & Install</h2>
You'll need [|chez scheme] 9.4 and [|thunderchez]
Required also [|nanomsg-1.0], [|sdl-2.0.4], [|cairo]

Checkout: You'll need [|fossil]

fossil clone miogui.fossil
mkdir miogui && cd miogui && fossil open ../miogui.fossil

You can also download the latest code as a tarball: [|miogui-latest.tar.gz]

There is a also a mirror on [|]
git clone

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 demos/
# or
scheme demos/

Now switch to other console and type
From there you can modify the code.
You ideally want to run that from inside emacs M-x run-scheme</em> and send code with C-x C-e or C-c C-e

Email me to ovenpasta (at) pizzahack (point) eu
To follow news subscribe to [|RSS feed]
Z 242a7003086bcc493065308358513457