Mercurial > projects > doodle
diff doodle/main/prog/doodler.d @ 56:b190a9d9352e
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 21:56:54 +0930 |
parents | 4922e746dd76 |
children | 9960c4fbd0dd |
line wrap: on
line diff
--- a/doodle/main/prog/doodler.d Sun Aug 08 21:37:38 2010 +0930 +++ b/doodle/main/prog/doodler.d Sun Aug 08 21:56:54 2010 +0930 @@ -18,43 +18,68 @@ import std.stdio; } -void main(string[] args) { - void paletteCallback(int index) { - writefln("Callback %s", index); - } +class TopLevel { + this(string[] args) { + Main.init(args); + auto window = new MainWindow("Doodle"); + auto vbox = new VBox(false, 0); - 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 } + auto palette = new Palette; + IPalette.Item[] items = [ + { "select.svg", "Select", "Select and modify elements", &paletteCallback }, + { "rectangle.svg", "Rectangle", "Create rectangle", &paletteCallback }, + { "ellipse.svg", "Ellipse", "Create ellipse", &paletteCallback }, + { "polyline.svg", "Polyline", "Create polyline", &paletteCallback } ]; palette.configure(items); - vbox.packStart(palette, false, false, 0); + vbox.packStart(palette, false, false, 0); + + Tool[] tools; + tools ~= new PanTool; + tools ~= new ZoomTool; + tools ~= new SelectTool; + auto toolLayer = new ToolLayer(tools, "Tools"); + _toolStack = toolLayer; + + auto gridLayer = new GridLayer("Grid"); - Tool[] tools; - tools ~= new PanTool; - tools ~= new ZoomTool; - tools ~= new LassoTool; - auto toolLayer = new ToolLayer(tools, "Tools"); + Layer[] layers; + layers ~= new PageLayer("Page"); + layers ~= gridLayer; + layers ~= toolLayer; + auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0); - auto gridLayer = new GridLayer("Grid"); + vbox.packStart(canvas, true, true, 0); + window.add(vbox); + window.setDefaultSize(640, 580); + window.showAll(); + Main.run(); + } - Layer[] layers; - layers ~= new PageLayer("Page"); - layers ~= gridLayer; - layers ~= toolLayer; - auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0); + private { + ToolStack _toolStack; - vbox.packStart(canvas, true, true, 0); - window.add(vbox); - window.setDefaultSize(640, 580); - window.showAll(); - Main.run(); + void paletteCallback(int index) { + switch (index) { + case 0: + // Select + break; + case 1: + // Rectangle + break; + case 2: + // Ellipse + break; + case 3: + // Polyline + break; + default: + assert(0); + } + } + } } + +void main(string[] args) { + new TopLevel(args); +}