Go to file
idea4good bbb8af927f update readme 2019-06-20 13:30:50 +08:00
core support modal/non-modal dialog 2019-05-24 15:16:03 +08:00
core_include support modal/non-modal dialog 2019-05-24 15:16:03 +08:00
doc add en/cn readme 2019-06-13 09:44:37 +08:00
widgets refactor keyboard 2019-06-14 14:00:23 +08:00
widgets_include refactor keyboard 2019-06-14 14:00:23 +08:00
.gitignore !16 separate surface from c_wnd, merge core, gui into GuiLite 2019-04-08 13:17:46 +08:00
.sync.sh Refactor message, display, resource, readme 2018-12-11 14:30:09 +08:00
CMakeLists.txt !19 Refactor wnd, add HelloWidgets 2019-05-24 10:20:40 +08:00
GuiLite.sln !16 separate surface from c_wnd, merge core, gui into GuiLite 2019-04-08 13:17:46 +08:00
GuiLite.uvprojx !19 Refactor wnd, add HelloWidgets 2019-05-24 10:20:40 +08:00
GuiLite.vcxproj !19 Refactor wnd, add HelloWidgets 2019-05-24 10:20:40 +08:00
GuiLite.vcxproj.filters !19 Refactor wnd, add HelloWidgets 2019-05-24 10:20:40 +08:00
GuiLite.vcxproj.user !16 separate surface from c_wnd, merge core, gui into GuiLite 2019-04-08 13:17:46 +08:00
LICENSE Initial commit 2017-12-06 21:35:23 +08:00
README.md update readme 2019-06-20 13:30:50 +08:00
README_zh.md update readme 2019-06-20 13:30:50 +08:00
sync_build.bat refactor display, surface; get_frame_buffer will return NULL if no UI update 2018-12-17 15:51:00 +08:00

README.md

GuiLite - All donations will be used to help sick kids

badge_build badge_docker badge_platform badge_lincense badge_lincense


Introduction

  • GuiLite is the smallest GUI library with 5000 lines of C++ code, it runs on all platforms(e.g, iOS, Android, Linux, Windows, macOS, Docker and MCU with or without OS).
  • GuiLite is embeddable, it runs inside other UI frameworks(e.g, Qt, MFC, Winform, Cocoa). You could use GuiLite features and host UI features simultaneously.
  • GuiLite render UI by itself, independent of OS & Graphic library.
  • GuiLite could work with many languages(e.g. Swift, Java, C#, Golang).
  • 🔧We want people to customize GuiLite.
  • ⚙️We hope GuiLite is small enough to help you understand how UI works.
  • 👑You should be the master of your UI and not be tied to a specific framework.

🔥New featureGuiLite 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)
  • No need for drag-and-drop widgets, everything (e.g. code/design/build/debug) could be done by coding
  • No need for special GUI editor(e.g. Android Studio, Qt designer)
  • No need for Extensible Markup Language(e.g. xml, xaml) GuiLitePreviewer

Features

Cross platform

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

Support Docker Container

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

Easy customization

wallpaper


Multi-language:

unicode


Multi-theme

multi-theme


IoT Solution & Code Telemetry

  • Report build activities to cloud:
    BuildInfo
  • Sync running data to cloud:
    DataOnCloud

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

  • Thanks the help from QQ group, you guys make GuiLite better! And welcome new friend to join us.
  • Thanks the donations from Gitee users, every penny of donations will be used to help sick kids.