DGui

Andrej Mitrovic andrej.mitrovich at gmail.com
Sun Apr 3 22:03:52 PDT 2011


Damn, gotta love that `with` keyword. Here's an app with a couple of
menus, icons, and a context menu:

module test;

import dgui.all;

class MyApplication : Form
{
    ToolBar bar;
    ContextMenu ctx;
    MenuBar mainMenu;

	public this()
	{
		this.text = "My App!";
		this.size = Size(500, 400);
		this.startPosition = FormStartPosition.CENTER_SCREEN;

        auto images = new ImageList();
        images.addImage(Icon.fromFile("red.ico"));
        images.addImage(Icon.fromFile("green.ico"));
        images.addImage(Icon.fromFile("blue.ico"));

        with(bar = new ToolBar)
        {
            parent = this;
            imageList = images;
            addButton(0, true);
            addButton(1, true);
            addSeparator();
        }

        with(ctx = new ContextMenu)
        {
            addItem("Context Menu 2.1");
            addItem("Context Menu 2.2", false);
            addSeparator();
            addItem("Context Menu 2.3");
            bar.addDropdownButton(2, ctx, true);
        }

        with(mainMenu = new MenuBar)
        {
            with(addItem("Menu 1"))
            {
                addItem("Menu 1.1");
                addItem("Menu 1.2");
                addItem("Menu 1.3");
            }

            with(addItem("Menu 2"))
            {
                addItem("Menu 2.1");
                addItem("Menu 2.2");
                addItem("Menu 2.3");
            }

            with(addItem("Menu 3"))
            {
                addItem("Menu 3.1");
                addItem("Menu 3.2");
                addItem("Menu 3.3");
            }
            this.menu = mainMenu;
        }
	}
}

int main(string[] args)
{
	return Application.run(new MyApplication());
}

And a screenshot:
http://i.imgur.com/ETPzq.jpg

Takes about 0.3 seconds to compile. And yeah, I'm a sucker for that
Windows 98 look. :p


More information about the Digitalmars-d mailing list