d-widget-toolkit / Dwt

A library for creating cross-platform GUI applications.

Programming Languages

d
599 projects

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].