Home

Awesome

Dlang UI

PayPayl donate button

Cross platform GUI for D. Widgets, layouts, styles, themes, unicode, i18n, OpenGL based acceleration.

screenshot

GitHub page: https://github.com/buggins/dlangui

Project site: http://buggins.github.io/dlangui

API Documentation: http://buggins.github.io/dlangui/ddox

Wiki: https://github.com/buggins/dlangui/wiki/Home

Getting Started Tutorial: https://github.com/buggins/dlangui/wiki/Getting-Started

Screenshots: http://buggins.github.io/dlangui/screenshots.html

Coding style: https://github.com/buggins/dlangui/blob/master/CODING_STYLE.md

Main features:

D compiler versions supported

Needs DMD frontend 2.100.2 or newer to build

Widgets

List of widgets, layouts and other is available in the Wiki

Resources

Resources like fonts and images use reference counting. For proper resource freeing, always destroy widgets implicitly.

Styles and Themes

Styles and themes are a bit similar to ones in Android API.

Important notice

If build of your app is failed due to dlangui or its dependencies, probably you have not upgraded dependencies.

Try following:

dub upgrade --force-remove
dub build --force

As well, sometimes removing of dub.json.selections can help.

Win32 builds

Build and run demo app using DUB:

git clone --recursive https://github.com/buggins/dlangui.git
cd dlangui/examples/example1
dub run --build=release

To avoid showing console window add win_app.def file to your package source directory and add line to your dub.json.

win_app.def:

"sourceFiles": ["$PACKAGE_DIR/src/win_app.def"]

dub.json:

"sourceFiles-windows": ["$PACKAGE_DIR/src/win_app.def"],

Linux builds (DUB)

E.g. in Ubuntu, you can use following command to enable SDL2 backend builds:

sudo apt-get install libsdl2-dev

In runtime, .so for following libraries are being loaded (binary packages required):

freetype, opengl, fontconfig

Build and run on Linux using DUB:

cd examples/example1
dub run dlangui:example1

MacOS builds (DUB)

DlangUI theoretically supports MacOS, but I have no way of testing if it actually work. The support is not guaranteed.

Other platforms

Third party components used

Hello World

Please refer to the Wiki for a hello world example.

DlangIDE project

It is a project to build D language IDE using DlangUI library.

But it already can open DUB based projects, edit, build and run them.

Simple syntax highlight.

DCD integration: go to definition and autocompletion for D source code.

Project page: https://github.com/buggins/dlangide

How to build and run using DUB:

git clone https://github.com/buggins/dlangide.git
cd dlangide
dub run