No description
Find a file
2019-02-10 16:10:08 +01:00
docs Code cleanup: allow None mouse_pos + clippy fixes 2019-02-10 15:30:48 +01:00
emigui integer sliders 2019-02-10 16:10:08 +01:00
emigui_wasm Code cleanup: allow None mouse_pos + clippy fixes 2019-02-10 15:30:48 +01:00
example integer sliders 2019-02-10 16:10:08 +01:00
.gitignore No typescript. Just one index.html + wasm. 2019-01-05 22:55:09 +01:00
build.sh Split example app from emigui_wasm 2019-02-09 23:00:07 +01:00
build_and_run.sh Initial commit: Closed loop of TS->Rust->TS 2018-12-23 19:42:30 +01:00
Cargo.lock Split example app from emigui_wasm 2019-02-09 23:00:07 +01:00
Cargo.toml Split example app from emigui_wasm 2019-02-09 23:00:07 +01:00
lint.sh No typescript. Just one index.html + wasm. 2019-01-05 22:55:09 +01:00
README.md Rename to Emigui 2019-01-12 23:07:30 +01:00
TODO.md Code cleanup: allow None mouse_pos + clippy fixes 2019-02-10 15:30:48 +01:00

Emigui Experimental, Modularized Immediate mode Graphical User Interface

Here are the steps, in chronological order of execution:

CODE: Input bindings, i.e. gathering GuiInput data from the system (web browser, Mac Window, iPhone App, ...) DATA: GuiInput: mouse and keyboard state + window size DATA: GuiSizes: this is a configuration of the ImLayout system, sets sizes of e.g. a slider. CODE: ImLayout: Immediate mode layout Gui elements. THIS IS WHAT YOUR APP CODE CALLS! DATA: GuiPaint: High-level commands to render e.g. a checked box with a hover-effect at a certain position. DATA: GuiStyle: The colors/shading of the gui. CODE: GuiPainter: Renders GuiPaint + GuiStyle into DrawCommands DATA: PaintCommands: low-level commands (e.g. "Draw a rectangle with this color here") CODE: Painter: paints the the PaintCommands to the screen (HTML canvas, OpenGL, ...)

This is similar to Dear ImGui but separates the layout from the rendering, and adds another step to the rendering.

Implementation

Input is gathered in TypeScript. PaintCommands rendered to a HTML canvas. Everything else is written in Rust, compiled to WASM.

Test goal:

Make an "any" editor. Store text files, make a VERY SIMPLE text editor, in the web. Supports MARKDEEP. A place for you ideas. Stored on your computer (local storage).

Credits / Licenses

ProggyClean.ttf, Copyright (c) 2004, 2005 Tristan Grimmer. MIT License. http://www.proggyfonts.net/ Roboto-Regular.ttf: Apache License, Version 2.0