A library for creating cross-platform GUI applications.
Switch branches/tags
Clone or download
jacob-carlborg Change g_signal_emit_by_name to take arguments as `void*`
Previously it used `int` as the parameter type. This causes problems
on 64bit systems when the value is a pointer.
Latest commit 2a2a28b Oct 28, 2018

README.markdown

DWT - D Widget Toolkit

DWT is a library for creating cross-platform GUI applications. It's a port of the SWT Java library from Eclipse. Current supported platforms are Windows, using Win32 and Linux, using GTK.

Usage

  1. Install all the requirements

  2. Enter the following code in a file called main.d:

    /+
    dub.sdl:
        name "main"
        dependency "dwt" version="~>1.0.0"
        libs \
          "atk-1.0" \
          "cairo" \
          "dl" \
          "fontconfig" \
          "gdk-x11-2.0" \
          "gdk_pixbuf-2.0" \
          "glib-2.0" \
          "gmodule-2.0" \
          "gnomeui-2" \
          "gnomevfs-2" \
          "gobject-2.0" \
          "gthread-2.0" \
          "gtk-x11-2.0" \
          "pango-1.0" \
          "pangocairo-1.0" \
          "X11" \
          "Xcomposite" \
          "Xcursor" \
          "Xdamage" \
          "Xext" \
          "Xfixes" \
          "Xi" \
          "Xinerama" \
          "Xrandr" \
          "Xrender" \
          "Xtst" \
          platform="linux"
    +/
    module main;
    
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    
    void main ()
    {
        auto display = new Display;
        auto shell = new Shell;
        shell.open();
    
        while (!shell.isDisposed)
            if (!display.readAndDispatch())
                display.sleep();
    
        display.dispose();
    }
  3. Build and run by running: dub --single main.d

Build all the Snippets

$ dub --single tools/build_snippets.d

Documentation

For documentation, see any existing documentation or examples for SWT. See also the snippets which contains a bunch of the official SWT snippets ported to D.

Requirements

Windows

All required files are included in the repository.

Linux

For Ubuntu, use the packages below. For other systems use the corresponding packages available in the system package manager.

  • libcairo2-dev
  • libglib2.0-dev
  • libgnomeui-dev
  • libgtk2.0-dev
  • libpango1.0-dev
  • libxcomposite-dev
  • libxcursor-dev
  • libxdamage-dev
  • libxfixes-dev
  • libxi-dev
  • libxinerama-dev
  • libxrandr-dev
  • libxtst-dev