view doodle/main/prog/doodler.d @ 55:4922e746dd76

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sun, 08 Aug 2010 21:37:38 +0930
parents 30ecedfe2ce2
children b190a9d9352e
line wrap: on
line source

private {
    import doodle.core.backtrace;
    import doodle.core.logging;
    import doodle.core.backtrace;

    import doodle.dia.tool_layer;
    import doodle.dia.standard_tools;
    import doodle.dia.grid_layer;
    import doodle.dia.page_layer;

    import doodle.gtk.canvas;
    import doodle.gtk.palette;

    import gtk.Main;
    import gtk.MainWindow;
    import gtk.VBox;

    import std.stdio;
}

void main(string[] args) {
    void paletteCallback(int index) {
        writefln("Callback %s", index);
    }

    Main.init(args);
    auto window = new MainWindow("Doodle");
    auto vbox = new VBox(false, 0);

    auto palette = new Palette;
    IPalette.Item[] items =
        [
        { "select.svg", "Select", &paletteCallback },
        { "rectangle.svg", "Rectangle", &paletteCallback },
        { "ellipse.svg", "Ellipse", &paletteCallback },
        { "polyline.svg", "Polyline", &paletteCallback }
        ];
        palette.configure(items);
    vbox.packStart(palette, false, false, 0);

    Tool[] tools;
    tools ~= new PanTool;
    tools ~= new ZoomTool;
    tools ~= new LassoTool;
    auto toolLayer = new ToolLayer(tools, "Tools");

    auto gridLayer = new GridLayer("Grid");

    Layer[] layers;
    layers ~= new PageLayer("Page");
    layers ~= gridLayer;
    layers ~= toolLayer;
    auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0);

    vbox.packStart(canvas, true, true, 0);
    window.add(vbox);
    window.setDefaultSize(640, 580);
    window.showAll();
    Main.run();
}