GithubHelp home page GithubHelp logo

buggins / dlangui Goto Github PK

View Code? Open in Web Editor NEW
803.0 54.0 120.0 43.87 MB

Cross Platform GUI for D programming language

License: Boost Software License 1.0

D 98.52% Shell 0.06% Batchfile 0.02% GLSL 0.96% Makefile 0.43% PowerShell 0.01%
dlangui d opengl sdl linux widget cross-platform-gui

dlangui's Introduction

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:

  • Crossplatform (Win32, OSX, Linux and Android are supported in current version)
  • Mostly inspired by Android UI API (layouts, styles, two phase layout, ...)
  • Supports highly customizable UI themes and styles
  • Supports internationalization
  • Hardware acceleration using OpenGL (when built with version USE_OPENGL)
  • Fallback to pure Win32 API / SDL / X11 when OpenGL is not available (e.g. opengl dynamic library cannot be loaded)
  • Actually it's a port (with major refactoring) of GUI library for cross platform OpenGL based implementation of Cool Reader app project from C++.
  • Non thread safe - all UI operations should be preformed in single thread
  • Simple 3d engine - allows to embed 3D scenes within GUI

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.

  • FontManager: provides access to fonts
  • Images: .png or .jpg images; if filename ends with .9.png, it's autodetected as nine-patch image (see Android drawables description)
  • StateDrawables: .xml file can describe list of other drawables to choose based on widget's State (.xml files from android themes can be used directly)
  • imageCache allows to cache unpacked images
  • drawableCache provides access by resource id (string, usually filename w/o extension) to drawables located in specified list of resource directories.

Styles and Themes

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

  • Theme is a container for styles. Can be load from XML theme resource file.
  • Styles are accessible in theme by string ID.
  • Styles can be nested to form hierarchy - when some attribute is missing in style, value from base style will be used.
  • State substyles are supported: allow to change widget appearance dynamically based on its state.
  • Widgets use style attributes directly from assigned style. When some attribute is being changed in widget, it creates its own copy of base style, which allows to modify some of attributes, while getting base style attributes if they are not changed in widget. This trick can minimize memory usage for widget attributes when standard values are used.
  • Current default theme is similar to one in MS Visual Studio 2013
  • Resources can be either embedded into executable or loaded from external resource directory in runtime

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

  • Under windows, uses SDL2 or Win32 API as backend.
  • Optionally, may use OpenGL acceleration
  • Uses Win32 API for font rendering.
  • Optinally can use FreeType for font rendering.
  • Executable size for release Win32 API based build is 830K.

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)

  • Uses SDL2 as a backend.

  • Uses FreeType for font rendering.

  • Uses FontConfig to get list of available fonts.

  • OpenGL can be optionally used for better drawing performance.

      libsdl2, libfreetype, libfontconfig
    

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

  • Other platforms support may be added easy

Third party components used

  • binbc-opengl - for OpenGL support
  • bindbc-freetype + FreeType library support under linux and optionally under Windows.
  • bindbc-sdl + SDL2 for cross platform support
  • X11 binding when SDL2 is not used
  • arsd-official For image reading and XML parsing

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

dlangui's People

Contributors

aferust avatar alphakai avatar and3md avatar bagomot avatar buggins avatar dayllenger avatar default0 avatar denizzzka avatar doado avatar ermiq avatar fr86 avatar freakazo avatar freeslave avatar grimmaple avatar hdon avatar john-colvin avatar keywan-ghadami avatar lastin avatar lemming-life avatar mrsmith33 avatar notspooky avatar seoyoungjin avatar shiche avatar superbelko avatar thedeemon avatar thegag96 avatar theyamo avatar tom-tan avatar triplejam avatar vennos5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dlangui's Issues

segmentation fault in example1

I'm probably gonna post way too much info here, but anything I'm including is just in case it's somehow responsible and I'm just too dumb to see it.

I'm using Ubuntu 12.04 and GDC 4.9.0 (old DMD, I know.)

I'll start with my dlangui revision and then crash info:

_dlangui version_

commit def5580108f2f2a66f9608731a53dfb5a1d7c604
Author: Vadim Lopatin <[email protected]>
Date:   Mon Jul 7 11:19:25 2014 +0400

_Crash info_

donny@donny-desktop:/mnt/oih/hdon/src/git/dlangui$ LD_LIBRARY_PATH=~/src/hg/SDL/build/.libs:$LD_LIBRARY_PATH gdb ./examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/example1
GNU gdb (GDB) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/example1...rdone.
(gdb) run
Starting program: /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/example1 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
2014-08-11 12:05:21.213 D  FreeTypeFontManager.registerFont /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf SansSerif DejaVu italic=false weight=400
2014-08-11 12:05:21.214 D  Creating default theme
[New Thread 0x7ffff2e50700 (LWP 20235)]
2014-08-11 12:05:21.602 D  DrawableCache: adding path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../../../res/ to resource dir list.
2014-08-11 12:05:21.602 D  DrawableCache: adding path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../../../res/mdpi/ to resource dir list.
2014-08-11 12:05:21.602 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../../../../res/ does not exist.
2014-08-11 12:05:21.602 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../../../../res/mdpi/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/res/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../res/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../../res/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/res/mdpi/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../res/mdpi/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache: path /mnt/oih/hdon/src/git/dlangui/examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/../../res/mdpi/ does not exist.
2014-08-11 12:05:21.603 D  DrawableCache.clear()

Program received signal SIGSEGV, Segmentation fault.
_d_arraysetlengthT (ti=..., newlength=0, p=0x5ce600 <.8861+32>) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/lifetime.d:1398
1398        *p = newdata[0 .. newlength];
(gdb) print p
$1 = (struct void[] *) 0x5ce600 <.8861+32>
(gdb) bt
#0  _d_arraysetlengthT (ti=..., newlength=0, p=0x5ce600 <.8861+32>) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/lifetime.d:1398
#1  0x00000000004099f5 in dlangui.core.i18n.UIStringTranslator.findTranslationsDir() (this=..., dirs=...) at src/dlangui/core/i18n.d:112
#2  0x0000000000435329 in dlangui.platforms.common.platform.Platform.resourceDirs() (this=..., dirs=...) at src/dlangui/platforms/common/platform.d:651
#3  0x0000000000479b90 in UIAppMain (args=...) at examples/example1/src/main.d:181
#4  0x000000000043949e in dlangui.platforms.sdl.sdlapp.sdlmain() (args=...) at src/dlangui/platforms/sdl/sdlapp.d:1067
#5  0x000000000043929f in D main (args=...) at src/dlangui/platforms/sdl/sdlapp.d:1018
#6  0x000000000051681f in __lambda1 (this=0x7fffffffe060) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/dmain2.d:422
#7  0x0000000000516cef in rt.dmain2._d_run_main() (this=this@entry=0x7fffffffe060, dg=...) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/dmain2.d:397
#8  0x0000000000516f39 in runAll (this=0x7fffffffe060) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/dmain2.d:422
#9  0x0000000000516cef in rt.dmain2._d_run_main() (this=this@entry=0x7fffffffe060, dg=...) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/dmain2.d:397
#10 0x0000000000516e66 in _d_run_main (argc=1, argv=0x7fffffffe1c8, mainFunc=<optimized out>) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/dmain2.d:430
#11 0x00000000004353a7 in main (argc=1, argv=0x7fffffffe1c8) at /mnt/oih/opt/gdc-4.9/include/d/4.9.0/__entrypoint.di:59

I started with these instructions:

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

I'm using GDC 4.9.0 (GDC has a very old DMD compiler front-end) and I'm guessing that's why the compiler didn't like the pragma(lib), so I removed them.

donny@donny-desktop:/mnt/oih/hdon/src/git/dlangui$ git diff
diff --git a/src/dlangui/platforms/common/platform.d b/src/dlangui/platforms/common/platform.d
index c82874a..9be1aa1 100644
--- a/src/dlangui/platforms/common/platform.d
+++ b/src/dlangui/platforms/common/platform.d
@@ -674,13 +674,13 @@ version (USE_OPENGL) {
 mixin template APP_ENTRY_POINT() {
     version (linux) {
            //pragma(lib, "png");
-           pragma(lib, "xcb");
-           pragma(lib, "xcb-shm");
-           pragma(lib, "xcb-image");
-           pragma(lib, "xcb-keysyms");
-           pragma(lib, "X11-xcb");
-           pragma(lib, "X11");
-           pragma(lib, "dl");
+           //pragma(lib, "xcb");
+           //pragma(lib, "xcb-shm");
+           //pragma(lib, "xcb-image");
+           //pragma(lib, "xcb-keysyms");
+           //pragma(lib, "X11-xcb");
+           //pragma(lib, "X11");
+           //pragma(lib, "dl");
     }

     /// workaround for link issue when WinMain is located in library

Also due to another DMD front-end bug that hasn't made its way into GDC yet, I had to change the command to compile and link the example program, removing the lib/libdlanguilib.a linker argument, resulting in this command:

gdc -o examples/example1/.dub/build/application-debug-linux.posix-x86_64-gdc-2FC0161B42BAC2CFFE5008D87F1EA79C/example1 -fdebug -g -Werror -Wall -fversion=USE_OPENGL -fversion=USE_SDL -fversion=Unicode -fversion=Have_dlangui_example1 -fversion=Have_derelict_ft -fversion=Have_derelict_util -fversion=Have_derelict_sdl2 -fversion=Have_derelict_fi -fversion=Have_dlangui_dlanguilib -fversion=Have_derelict_gl3 -Iexamples/example1/src/ -I../../../../../../home/donny/.dub/packages/derelict-ft-master/source/ -I../../../../../../home/donny/.dub/packages/derelict-util-1.0.2/source/ -I../../../../../../home/donny/.dub/packages/derelict-sdl2-master/source/ -I../../../../../../home/donny/.dub/packages/derelict-fi-master/source/ -Isrc/ -I../../../../../../home/donny/.dub/packages/derelict-gl3-master/source/ src/api.d src/dlangui/all.d src/dlangui/core/collections.d src/dlangui/core/events.d src/dlangui/core/i18n.d src/dlangui/core/linestream.d src/dlangui/core/logger.d src/dlangui/core/signals.d src/dlangui/core/stdaction.d src/dlangui/core/types.d src/dlangui/dialogs/dialog.d src/dlangui/dialogs/filedlg.d src/dlangui/graphics/drawbuf.d src/dlangui/graphics/fonts.d src/dlangui/graphics/ftfonts.d src/dlangui/graphics/gldrawbuf.d src/dlangui/graphics/glsupport.d src/dlangui/graphics/images.d src/dlangui/graphics/resources.d src/dlangui/platforms/common/platform.d src/dlangui/platforms/sdl/sdlapp.d src/dlangui/platforms/windows/win32drawbuf.d src/dlangui/platforms/windows/win32fonts.d src/dlangui/platforms/windows/winapp.d src/dlangui/platforms/x11/x11app.d src/dlangui/widgets/controls.d src/dlangui/widgets/editors.d src/dlangui/widgets/grid.d src/dlangui/widgets/layouts.d src/dlangui/widgets/lists.d src/dlangui/widgets/menu.d src/dlangui/widgets/popup.d src/dlangui/widgets/styles.d src/dlangui/widgets/tabs.d src/dlangui/widgets/widget.d src/index.d src/screenshots.d examples/example1/src/main.d ../../../../../../home/donny/.dub/packages/derelict-ft-master/lib/libDerelictFT.a ../../../../../../home/donny/.dub/packages/derelict-sdl2-master/lib/libDerelictSDL2.a ../../../../../../home/donny/.dub/packages/derelict-fi-master/lib/libDerelictFI.a ../../../../../../home/donny/.dub/packages/derelict-gl3-master/lib/libDerelictGL3.a ../../../../../../home/donny/.dub/packages/derelict-util-1.0.2/lib/libDerelictUtil.a -ldl

So, I hope I'm not wasting my time here filing this issue. Maybe the problem goes away with a more recent DMD?

the dub.json files isn't match the project structure.

main dub.json changed(so change examples dependency as "dlangui": "*" ):
{
"name": "dlangui",
"description": "Cross platform GUI for D. Layouts, styles, themes, unicode, i18n, OpenGL, widget set.",
"homepage": "https://github.com/buggins/dlangui",
"license": "Boost",
"authors": ["Vadim Lopatin"],
"buildRequirements":[
"allowWarnings"
],

"targetName": "dlangui",
"targetPath": "lib",
"targetType": "staticLibrary",

"versions-posix": ["USE_SDL", "USE_OPENGL"],
"versions-windows": ["Unicode", "USE_FREETYPE"],
"versions": ["EmbedStandardResources"],

"copyFiles-windows": ["lib/libfreetype-6.dll", "lib/zlib1.dll"],

"sourcePaths": [
    "3rdparty", "src"
],

"importPaths": [
    "3rdparty", "src"
],

"stringImportPaths": [
    "views",
    "views/res",
    "views/res/mdpi",
    "views/res/i18n"
],

"dependencies": {
    "derelict-gl3": ">=1.0.12",
    "dlib": ">=0.4.1",
    "derelict-ft": ">=1.0.0",
    "derelict-sdl2": ">=1.9.1"
},

"-ddoxFilterArgs": ["--unittest-examples", "--min-protection=Protected", "--ex", "win32.", "--ex", "src.dlangui"],

"subPackages": [
    "./examples/helloworld/",
    "./examples/example1/",
    "./examples/tetris/"
] 

}

Still can't build on Windows

Still getting "conflicting obj and ddoc generation options" when using the build instructions on windows even after issue was "fixed."

Trying to run library, getting errors

src/dlangui/core/linestream.d(141): Error: cannot implicitly convert expression (encode(d, s[cast(ulong)i])) of type ulong to int
src/dlangui/core/linestream.d(149): Error: cannot implicitly convert expression (encode(d, s[cast(ulong)i])) of type ulong to int
src/dlangui/core/linestream.d(159): Error: cannot implicitly convert expression (encode(d, s[cast(ulong)i])) of type ulong to int
src/dlangui/widgets/editors.d(489): Error: function dlangui.widgets.editors.EditableContent.updateTokenProps (int startLine, int endLine) is not callable using argument types (int, ulong)
src/dlangui/widgets/editors.d(537): Error: function dlangui.widgets.editors.EditableContent.lineEnd (int lineIndex) is not callable using argument types (ulong)
src/dlangui/widgets/editors.d(578): Error: function dlangui.widgets.editors.EditableContent.updateTokenProps (int startLine, int endLine) is not callable using argument types (int, ulong)
src/dlangui/widgets/editors.d(583): Error: function dlangui.widgets.editors.EditableContent.updateTokenProps (int startLine, int endLine) is not callable using argument types (int, ulong)
FAIL .dub/build/library-release-posix.osx-x86_64-dmd_2066-5B9F27E2A8B1C082EF974C9AAA016B0E/ dlanguilib staticLibrary
Error executing command run: dmd failed with exit code 1.

Line endings detected incorrectly

Open text file with LF line ending (unix format), then save it.
CRLF (windows) format line endings appear in saved file.
(issue #9 from dlangide project)

Replace FreeType with another library

Hey,

Would it be possible to replay FreeType with another library which doesn't have a dependency on X11? X11 is not installed by default on Mac and is very messy to use. For example, FreeType requires it to be running to get the fonts (but it isn't used for rendering).

Sorry, I haven't managed to do any research into possible replacements yet.

Thanks!

minimal size of windows and drawing issue

If to build example1, run it, and start to minimize holding of bottom, down buttons become more and more thin, and if continue, window become blank (white color).

Can't build on Astra Linux (Debian7 based distro)

Building fails with:

/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(14): Error: undefined identifier xcb_image_format_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(20): Error: undefined identifier xcb_image_order_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(21): Error: undefined identifier xcb_image_order_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(41): Error: undefined identifier xcb_image_format_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(41): Error: undefined identifier xcb_image_format_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(50): Error: undefined identifier xcb_image_format_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(142): Error: undefined identifier xcb_image_format_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(196): Error: undefined identifier xcb_image_format_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(196): Error: undefined identifier xcb_image_order_t
/usr/include/dmd/phobos/std/c/linux/X11/xcb/image.d(196): Error: undefined identifier xcb_image_order_t
../dlangui-master/src/dlangui/platforms/x11/x11app.d(39): Error: undefined identifier 'Xlib'
../dlangui-master/src/dlangui/platforms/x11/x11app.d(39): Error: std.c.linux.X11.Xlib.Display is used as a type
../dlangui-master/src/dlangui/platforms/x11/x11app.d(42): Error: undefined identifier 'Xlib'
../dlangui-master/src/dlangui/platforms/x11/x11app.d(42): Error: std.c.linux.X11.Xlib.Display is used as a type
../dlangui-master/src/dlangui/platforms/x11/x11app.d(793): Error: undefined identifier 'Xlib'
../dlangui-master/src/dlangui/platforms/x11/x11app.d(793): Error: std.c.linux.X11.Xlib.Display is used as a type
FAIL ../dlangui-master/.dub/build/library-debug-linux.posix-x86_64-dmd-273FC106E1D2945A61EEC07B540BB516 dlanguilib staticLibrary
Error executing command run: DMD compile run failed with exit code 1

Scrollbar wrongly tracks mouse

Press left mouse button over scrollbar thumb, then move mouse outside a window. Unpress button and return mouse cursor on thumb - tracking continues!

Probable solution: after mouse button pressed, capture mouse and track how far it is from scrollbar. When distance is far enough (say, 50 px), release capturing and return thumb to original place.

Can't build on Windows

Use dmd 2.066.1.
The error message like this:

Building dlib ~master configuration "library", build type release.
Running dmd...
AppData\Roaming\dub\packages\dlib-master\dlib\filesystem\windows\directory.d(77)
: Error: std.string.wcslen at E:\DeveloperTools\dmd2\dmd2\windows\bin....\src\phobos\std\string.d(42) conflicts with core.stdc.wchar_.wcslen at E:\DeveloperTools\dmd2\dmd2\windows\bin....\src\druntime\import\core\stdc\wchar_.d(102)FAIL AppData\Roaming\dub\packages\dlib-master.dub\build\library-release-windows-x86-dmd_2066-1B722BF4E0DEE69FE2B7DDC21C62E24B\ dlib staticLibrary
Error executing command run: dmd failed with exit code 1.

Custom marks in editors

Need ability to show custom marks for lines in editors.
E.g.
Bookmarks
Breakpoints
Error marks

dlangui.graphics.ftfonts.getReplacementChar typo

Current signature is

static static dchar getReplacementChar(dchar code)

which is an error. Shouldn't it be

private static dchar getReplacementChar(dchar code)

or just

static dchar getReplacementChar(dchar code)

?

Settings

We need convenient way to deal with various settings

Can't Compile on Windows

src\dlangui\platforms\windows\winapp.d(774): Error: constructor dlangui.platform
s.windows.winapp.Win32Window.this (Win32Platform platform, immutable(dchar)[] wi
ndowCaption, Window parent, uint flags) is not callable using argument types (Pl
atform, string, typeof(null))
src\dlangui\platforms\windows\winapp.d(774): Error: no constructor for Win32Wind
ow

DUB build failed on Ubuntu

Unable to build dlangui on Ubuntu 13.10:

Running dmd...
../../../.dub/packages/dlangui-master/src/dlangui/platforms/x11/x11app.d(6): Error: module xcb is in file 'std/c/linux/X11/xcb/xcb.d' which cannot be read
import path[0] = ../../../.dub/packages/dlangui-master/src
import path[1] = ../../../.dub/packages/derelict-ft-master/source
import path[2] = ../../../.dub/packages/derelict-util-1.0.0/source
import path[3] = ../../../.dub/packages/derelict-fi-master/source
import path[4] = ../../../.dub/packages/derelict-gl3-master/source
import path[5] = /usr/include/dmd/phobos
import path[6] = /usr/include/dmd/druntime/import
FAIL ../../../.dub/packages/dlangui-master/.dub/build/library-debug-linux.posix-x86_64-dmd-273FC106E1D2945A61EEC07B540BB516 dlanguilib staticLibrary
Error executing command run: DMD compile run failed with exit code 1

I think dub.json is outdated. Also it would be great if correct importPaths will be added.

Edited lines marks

Ability to show marks for lines in editors:
E.g.
Orange - modified unsaved lines
Green - modified saved lines

Dependencies versions conflict

Trying to use dlangui as a dependency:

    "dependencies": {
       "dlangui" : "~master"
    } 

Got errors:

Conflicting dependency derelict-util: Conflicting versions: 1.0.0 vs. ~master
  derelict-ft requires >=1.0.0
  derelict-sdl2 requires ~master
There are conflicts in the dependency graph.
Conflicting dependency derelict-util: Conflicting versions: 1.0.0 vs. ~master
  derelict-ft requires >=1.0.0
  derelict-sdl2 requires ~master
The dependency graph could not be filled, there are conflicts.
Conflicting dependency derelict-util: Conflicting versions: 1.0.0 vs. ~master
  derelict-ft requires >=1.0.0
  derelict-sdl2 requires ~master
The following changes will be performed:
Conflict derelict-util >=1.0.0, userWide
 -> issued by: 
    derelict-ft: >=1.0.0
    derelict-sdl2: ~master
    derelict-fi: >=1.0.0
    derelict-gl3: >=1.0.0
Error executing command build: Aborting package retrieval due to errors.

failure on access of CD-ROM

If i click on CD-Device that have not disk in шею I am getting error:

"---------------------------

Error

std.file.FileException@std\file.d(919): E:: Устройство не готово.

0x0040DF38 in pure @safe bool std.exception.enforce!(bool).enforce(bool, lazy object.Throwable) at C:\D\dmd2\windows\bin....\src\phobos\std\exception.d(498)
0x004CBD6C in uint std.file.getAttributes(const(char[]))
0x0046236B in bool dlangui.dialogs.filedlg.FileDialog.openDirectory(immutable(char)[], immutable(char)[]) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\dialogs\filedlg.d(150)
0x00462CFB in D7dlangui7dialogs7filedlg10FileDialog15createRootsListMFZ12__dgliteral1MFC7dlangui7widgets6widget6WidgetiZb at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\dialogs\filedlg.d(245)
0x0047A2DA in D7dlangui4core7signals58__T6SignalTC7dlangui7widgets5lists21OnItemSelectedHandlerZ6Signal4emitMFC7dlangui7widgets6widget6WidgetiZ14__foreachbody4MFKDFC7dlangui7widgets6widget6WidgetiZbZi at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\core\signals.d(215)
0x0047A9F5 in int dlangui.core.collections.Collection!(bool delegate(dlangui.widgets.widget.Widget, int), false).Collection.opApply(int delegate(ref bool delegate(dlangui.widgets.widget.Widget, int))) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\core\collections.d(158)
0x0047A29C in bool dlangui.core.signals.Signal!(dlangui.widgets.lists.OnItemSelectedHandler).Signal.emit(dlangui.widgets.widget.Widget, int) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\core\signals.d(214)
0x0047A254 in bool dlangui.core.signals.Signal!(dlangui.widgets.lists.OnItemSelectedHandler).Signal.opCall(dlangui.widgets.widget.Widget, int) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\core\signals.d(211)
0x004787BA in void dlangui.widgets.lists.ListWidget.itemClicked(int) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\widgets\lists.d(342)
0x0047A0E7 in bool dlangui.widgets.lists.ListWidget.onMouseEvent(dlangui.core.events.MouseEvent) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\widgets\lists.d(865)
0x0049CF97 in bool dlangui.platforms.common.platform.Window.sendAndCheckOverride(dlangui.widgets.widget.Widget, dlangui.core.events.MouseEvent) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\common\platform.d(504)
0x0049D6C3 in bool dlangui.platforms.common.platform.Window.dispatchMouseEvent(dlangui.core.events.MouseEvent) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\common\platform.d(676)
0x004A0E71 in bool dlangui.platforms.windows.winapp.Win32Window.onMouse(uint, uint, short, short) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\windows\winapp.d(597)
0x0049FF45 in WndProc at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\windows\winapp.d(1034)
0x768362FA in gapfnScSendMessage
0x76836D3A in GetThreadDesktop
0x768377C4 in CharPrevW
0x7683788A in DispatchMessageW
0x0048D011 in int dlangui.platforms.windows.winapp.Win32Platform.enterMessageLoop() at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\windows\winapp.d(694)
0x0043675C in UIAppMain at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master\src\dlangide.d(48)
0x00467E80 in int dlangui.platforms.windows.winapp.myWinMain(void_, void_, char*, int) at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\windows\winapp.d(943)
0x004452C0 in DLANGUIWinMain at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\windows\winapp.d(807)
0x00436662 in WinMain at C:\Users\bubenkov_di\Downloads\dcd\dlangide-master\dlangide-master........\AppData\Roaming\dub\packages\dlangui-master\src\dlangui\platforms\common\platform.d(946)
0x00502712 in WinMainCRTStartup
0x75FA338A in BaseThreadInitThunk
0x76F39F72 in RtlInitializeExceptionChain

0x76F39F45 in RtlInitializeExceptionChain

ОК
---------------------------"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.