Coder Social home page Coder Social logo

longjohncoder / guilite Goto Github PK

View Code? Open in Web Editor NEW

This project forked from idea4good/guilite

0.0 0.0 0.0 63.65 MB

✔️Small-Fast-Injectable GUI library(5 KLOC) for all platforms

Home Page: https://www.youtube.com/watch?v=grqXEz3bdC0

License: Apache License 2.0

C++ 95.48% C 1.81% CMake 0.42% Shell 1.65% Batchfile 0.64%

guilite's Introduction

Image

GuiLite - The smallest GUI library

badge_build badge_docker badge_platform badge_lincense badge_lincense


Introduction

GuiLite is the smallest GUI library with 5000 lines of code, could run on all platforms(e.g, iOS, Android, Linux, Windows, macOS, Docker and MCU without OS), and work with many languages(e.g. Swift, Java, Javascript, C#, Golang).

  • ✂️Small: 5,000 lines of C++ code, could be merged into 1 header & 1 source file(GuiLite.h/GuiLite.cpp) - Easy to build & port
  • ⚡Fast: Render GUI within one invoking, independent of any OS and any third party library - Make GUI run quickly and smoothly
  • 💉Inject: Run inside Qt/MFC/Winform/Cocoa/Web - Keep Qt/MFC code reusable, and speed it up by local GuiLite-optimization
  • ⚙️️Hardware Minimum Requirment:
Processor Disk/ROM space Memory
24 MHZ 29 KB 9 KB

🔥New feature:3D engine - Hello 3D

  • Hello3D
  • Hardware requirment: 16K RAM, 36 MHZ
  • Cross platform(e.g, Windows, Linux, MCU, Qt, MFC)
  • Easy to build 3D object
  • Could upgrade your UI experience

Features

Cross platform

ARM Linux STM32 Without OS
ARM Linux MCU MCU
Windows Mixed Reality Android
Win MR Android
macOS iOS
macOS iOS

GuiLite previewer(WYSIWYG extension for GuiLite)

GuiLite Previewer is a Visual Studio Code extension, could extract GUI information from C++ code and preview GUI at preview page(What you see is what you get) GuiLitePreviewer


Gorgeous UI

wallpaperHelloNets-pc


Multi-language:

unicode


IoT Solution & Code Telemetry

  • Report build activities to cloud:
    BuildInfo
  • Sync running data to cloud:
    DataOnCloud
  • ⚠️To stop telemetry, remove script files(e,g: sync_build.bat .sync.sh .sync_build.sh)

Support Docker

We build GuiLite demo as docker image, you can update/deploy/run the latest GuiLite demo on your device with single command below:

  • sudo docker run -it --privileged -v /dev:/dev-share idea4good/gui-lite:latest bash /run.sh

Inject GuiLite Samples into 3D Web


Start with Demo

GuiLite is only a framework, could not create UI by itself. In order to show how to build UI App with it, We provide some samples for you.

  • Sample code here.
  • Sample introduction:
Sample name Platform Description Build guidance Diffculty level
HelloParticle Windows, Linux, STM32F103, STM32F429 Show how to develop particle effect Build
HelloStar Windows, Linux, STM32F103, STM32F429 Show how to develop star field effect Build
Hello3D Windows, Linux, STM32F103 Lightweight(MCU level) 3D engine base on GuiLite Build ★★
HelloNets Windows, Linux, STM32F103 Show how to build physics App with GuiLite Build ★★
HelloGuiLite Windows, Linux Show how to Initialize UI, load resource, layout UI Build ★★
HelloWidgets Windows, Linux Show how to use GuiLite widgets Build ★★
HelloMario Windows, Linux, STM32F103, STM32F429 Show how to develop multi-layer UI system Build ★★
HelloNavigation Windows, Linux, STM32F103, STM32F429 Show how to navigate/click widgets by hard button in non-touch GUI scenario Build ★★
HelloFont Windows, Linux Show how to use multi-language feature(UTF-8) Build ★★
HelloAnimation Windows, Linux Show how to make animation Build ★★
HelloSlide Windows, Linux Show how to use sliding pages Build ★★★
HelloWave Windows, Linux, STM32F103, STM32F429 Show how to use wave widget Build ★★★
HostMonitor iOS, Mac, Android, Windows, Linux Show how to build complex UI for all platforms Build ★★★★

Documents

GuiLite is the smallest and simplest GUI library.

  1. Just 5,000 line C++ code
  2. Only use basic C++ feature(class, virtual function), no complex syntax
  3. All rendering base on draw_pixel, no algorithm
  4. Full documents and small live demos for reference

How to learn?

  1. Build/Run GuiLite library
  2. Build/Run HelloXXX demos
  3. Read/Modify HelloXXX/UIcode/UIcode.cpp code
  4. Read/Modify gui code
  5. Read/Modify core code
  6. Build your UI framework

Videos

Mirror repository

Gitee in China

Thanks and Charity

  • Thanks for the help from QQ group, you guys make GuiLite better! And welcome new friend to join us.
  • Sponsor & Help sick kids

guilite's People

Contributors

idea4good avatar quorafind avatar 0xflotus avatar blacamdk avatar firstbober avatar hhirsch avatar epaga avatar neko-para avatar yedyexyz avatar menee avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.