Skip to content

ebasconp/classeine

Repository files navigation

classeine

Classeine is a library designed to provide all the necessary tools for creating full-featured rich and portable UI applications built on top of SDL2 in modern C++.

Please note that it is currently in an early stage of development.

Features

  • Written in modern C++
  • Built on top of the standard library and:
  • No exceptions
  • No raw pointers
  • No manual memory management (through extensive usage of smart pointers and RAII)
  • Pluggable renderers and available custom renderers
  • Global and per-control theme management (light and dark themes built-in but customized ones can be easily installed)

Supported Platforms

  • Linux
  • WebAssembly through Emscripten
  • Windows

Demo in WebAssembly

https://ebasconp.github.io/classeine-wasm-demo/classeine-demo/

GitHub

http://www.github.com/ebasconp/classeine

Documentation

http://www.classeine.org

Releases

0.1.1-alpha released (20250104):

  • Added event_listener_scope_guard
  • Added layer and layer_manager to handle layers

0.1.0-alpha (20241130)

Controls

  • button
  • check_box
  • dynamic_content_pane
  • empty_control
  • label
  • main_pane (control that will show the application)
  • padding_control
  • radio_button
  • static_content_pane
  • tab_control
  • tab_page
  • toggle_button

Containers

  • dual_layout_container
  • flow_layout_container
  • hbox_layout_container
  • vbox_layout_container
  • xy_layout_container

Managers

  • font_manager
  • layer_manager
  • mouse_manager
  • system_backend
  • theme_manager
  • ui_manager (general UI manager)

Additional tools

  • Properties
  • Event handling
  • Simple debug tooling
  • panic, assertion and strings tools
  • Lazy instantiation tools