alecmus / lecui

lecui user interface library, for rapid gui application development in C++ on Windows
MIT License
13 stars 5 forks source link
alec c-plus-plus direct2d dll gui lecui lecui-library liblec panes widgets

lecui

lecui user interface library

Lines of code GitHub issues GitHub closed issues

Release Info

GitHub release (latest by date) GitHub Release Date

Commit Info

GitHub last commit GitHub commit activity

:information_source: About the Library

The lecui user interface library is designed for the rapid development of modern, efficient and easy to maintain C++ applications with a graphical user interface (gui). It is part of the liblec libraries. It enables you to make a simple gui app with minimal code but also gives you the power to build a marvel if you need to.

:book: Wiki

The library has a wiki available here. The wiki has details about how to use the library, examples, guidelines and more.

:beginner: Documentation

The library uses embedded XML-style documentation. An HTML version of this documentation is available here.

:new: Successor to the cui framework

The lecui user interface library is designed to be a successor to the older cui framework. But why? It features newer technologies, greater flexibility and a more robust architecture. Below are some of the most important differences between the two:

  1. Accelerated graphics - while the former uses raw winapi, lecui uses accelerated graphics.
  2. Transparency channels - while all the widgets of the former are inherently opaque, lecui supports transparent widgets due to the more modern technologies that it harnesses.
  3. Containers - the former only has a single type of container (page) while the latter features a myriad of containers for a much more flexible design (pages, panes, tab panes, etc.). All containers support recursion; they can have not only widgets but also other containers, and the containers in them can also contain containers and so forth. This makes it possible to design advanced, compact modular user interfaces with layers. Every container supports transparency as well through the use of an alpha channel.
  4. Scroll bars - the way the former was designed from the word go does not support the overlap of widgets beyond the page or form; lecui supports this and vertical and/or horizontal scrollbars are automatically triggered to permit the user to scroll. These scroll bars are supported for all containers.

:mag: Usage Examples

The library is used in the pc_info, spotlight_images and collab apps and various useful usage examples are available in the lecui demo repository. These range from minimalist hello world examples all the way up to advanced multi-page and multi-layer apps.

:eyes: Screenshots

Below is a screenshot showing the interface of the collab app, built using lecui:

screenshot

Below is a screenshot showing the interface of the spotlight_images app, built using lecui:

screenshot

Below is a screenshot showing part of the interface of the pc_info app, also built using lecui:

screenshot

Other screenshots are available in the following places:

Summary Description Location
lecui_show https://github.com/alecmus/files/tree/master/liblec/lecui/screenshots/lecui_show
lecui_minimal https://github.com/alecmus/files/tree/master/liblec/lecui/screenshots/lecui_minimal

:zap: Prebuilt Binaries

Prebuilt binaries of the library can be found under releases.

:construction: Building

Refer to the wiki.

:link: Linking to the Library

Refer to the wiki.

:outbox_tray: Deploying your Application

If it's the 32 bit build you will need to deploy it with lecui32.dll in the same folder. If it's a 64 bit build use the lecui64.dll.