All Projects → cycfi → Elements

cycfi / Elements

Elements C++ GUI library

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Objective-C++
1391 projects
HTML
75241 projects
CMake
9771 projects

Projects that are alternatives of or similar to Elements

Pgbouncerhero
A dashboard for your PgBouncers.
Stars: ✭ 129 (-93.56%)
Mutual labels:  gui
Lambdaattack
Minecraft bot for servers. Currently supports stress testing. More features are planned
Stars: ✭ 133 (-93.36%)
Mutual labels:  gui
Kubebox
⎈❏ Terminal and Web console for Kubernetes
Stars: ✭ 1,855 (-7.44%)
Mutual labels:  gui
Electron Python Example
Electron as GUI of Python Applications
Stars: ✭ 1,749 (-12.72%)
Mutual labels:  gui
Smartinvs
Advanced Inventory API for your Minecraft Bukkit plugins.
Stars: ✭ 132 (-93.41%)
Mutual labels:  gui
Imgui sdl
ImGuiSDL: SDL2 based renderer for Dear ImGui
Stars: ✭ 134 (-93.31%)
Mutual labels:  gui
Rcloneexplorer
rclone GUI for Windows
Stars: ✭ 129 (-93.56%)
Mutual labels:  gui
Cedar
Rust framework for building visual/interactive applications
Stars: ✭ 136 (-93.21%)
Mutual labels:  gui
Tunapanel
Autogenerate live Web-based control panels for Rust programs
Stars: ✭ 133 (-93.36%)
Mutual labels:  gui
Attendace management system
In this system we can fill attendance by face recognition
Stars: ✭ 135 (-93.26%)
Mutual labels:  gui
Particl Desktop
The GUI application for Particl Markeplace and PART coin wallet. A decentralized peer to peer marketplace –free, secure, private, untraceable.
Stars: ✭ 131 (-93.46%)
Mutual labels:  gui
Imgui
Immediate Mode GUI for C#
Stars: ✭ 133 (-93.36%)
Mutual labels:  gui
Kanban App
Kanban board built with Rust and Elm
Stars: ✭ 1,711 (-14.62%)
Mutual labels:  gui
Litegui.js
Javascript Library to create webapps with a desktop look-alike interface. All the widgets are created from Javascript instead of using HTML.
Stars: ✭ 131 (-93.46%)
Mutual labels:  gui
Avalonia
A cross platform XAML framework for .NET
Stars: ✭ 12,588 (+528.14%)
Mutual labels:  gui
Chopsui
An experimental UI toolkit
Stars: ✭ 130 (-93.51%)
Mutual labels:  gui
Atlas Python
For versatile GUIs written in HTML/CSS and Python (no JavaScript needed; also available for other languages) - The lightweight and easy-to-use toolkit to begin with GUI programming.
Stars: ✭ 133 (-93.36%)
Mutual labels:  gui
Lablqml
Interfacing Qt/QML with OCaml. Formely known as lablqt
Stars: ✭ 136 (-93.21%)
Mutual labels:  gui
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-93.26%)
Mutual labels:  gui
Git Cola
git-cola: The highly caffeinated Git GUI
Stars: ✭ 1,787 (-10.83%)
Mutual labels:  gui

Elements-Logo Elements C++ GUI library

CMake Build Matrix

alt Photon Sampler

Introduction

Elements is a lightweight, fine-grained, resolution independent, modular GUI library. Elements is designed with these requirements in mind:

  1. It should be open source with a liberal, non-viral license.
  2. It should be usable in any application and should play well with other GUI libraries and frameworks.
  3. Corollary to the second requirement is that it can also be used to develop plugins. It should not own the event loop and should be able to co-exist with components within a plugin host such as VST and AU.
  4. It should be resolution independent and allow for HDPI displays.
  5. Should not rely on a “visual” GUI editor or code generator.
  6. It should have a declarative API using modern C++. Declarative C++ code tells you what rather than how (imperative). The GUI should be declared in C++ code.
  7. Keep it simple. Make it easy to use right out of the box, with a lot of examples.
  8. Porting to a new host target should be as easy as possible, requiring porting of only a few files.

Elements, is extremely lightweight… and modular. You compose very fine-grained, flyweight “elements” to form deep element hierarchies using a declarative interface with heavy emphasis on reuse.

Status

Please take note that Elements is still very much in flux as we are inching closer towards a version 1.0 release. The API and code is still undergoing continuous changes, and for that matter, Elements is not yet "production ready". But that should not prevent you from using Elements now! It is already in a very usable form, and more people using it will ultimately make it more robust when bugs are reported and fixed. API and usability matters and I very much welcome suggestions and contributions. Hey, this is an open source project! If you like the design, concepts and ideas behind Elements, I very much welcome collaboration.

News

  • 19 January 2021: Added Child Windows to develop (will merge to master in due time). See Example.
  • 25 September 2020: Added thumbwheels.
  • 12 September 2020: Linux Artist 2D Canvas Library port feature complete.
  • 10 September 2020: Windows Artist 2D Canvas Library port feature complete.
  • 7 September 2020: MacOS Artist 2D Canvas Library port feature complete.
  • 22 June 2020: Removed dependency on Boost. This requires some API changes to the app with additional arguments. See examples.
  • 26 May 2020: Introducing the Artist 2D Canvas Library. The Artist library will eventually replace Element's 2d canvas implementation.
  • 23 May 2020: Work in progress notebook gallery factory (notebook branch).
  • 8 April 2020: Simplified installation (Infra and Json are now header-only submodules)
  • 11 March 2020: Added Layout documentation.
  • 3 March 2020: Added Design Aspects documentation.
  • 23 February 2020: Setup and Installation guide updated for Windows and Linux.
  • 22 February 2020: Improved font support
  • 01 September 2019: Linux port completed
  • 12 August 2019: Windows port completed

Discord

Feel free to join the discord channel for discussion and chat with the developers.

Documentation

Documentation is work in progress. Stay tuned...

  1. Gallery
  2. Setup and Installation
  3. Design Aspects
  4. Layout

About the Author

Joel got into electronics and programming in the 80s because almost everything in music, his first love, is becoming electronic and digital. Since then, he builds his own guitars, effect boxes and synths. He enjoys playing distortion-laden rock guitar, composes and produces his own music in his home studio.

Joel de Guzman is the principal architect and engineer at Cycfi Research and a consultant at Ciere Consulting. He is a software engineer specializing in advanced C++ and an advocate of Open Source. He has authored a number of highly successful Open Source projects such as Boost.Spirit, Boost.Phoenix and Boost.Fusion. These libraries are all part of the Boost Libraries, a well respected, peer-reviewed, Open Source, collaborative development effort.


Copyright (c) 2014-2020 Joel de Guzman. All rights reserved. Distributed under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].