comparison 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
comparison
equal deleted inserted replaced
55:4922e746dd76 56:b190a9d9352e
16 import gtk.VBox; 16 import gtk.VBox;
17 17
18 import std.stdio; 18 import std.stdio;
19 } 19 }
20 20
21 void main(string[] args) { 21 class TopLevel {
22 void paletteCallback(int index) { 22 this(string[] args) {
23 writefln("Callback %s", index); 23 Main.init(args);
24 auto window = new MainWindow("Doodle");
25 auto vbox = new VBox(false, 0);
26
27 auto palette = new Palette;
28 IPalette.Item[] items = [
29 { "select.svg", "Select", "Select and modify elements", &paletteCallback },
30 { "rectangle.svg", "Rectangle", "Create rectangle", &paletteCallback },
31 { "ellipse.svg", "Ellipse", "Create ellipse", &paletteCallback },
32 { "polyline.svg", "Polyline", "Create polyline", &paletteCallback }
33 ];
34 palette.configure(items);
35 vbox.packStart(palette, false, false, 0);
36
37 Tool[] tools;
38 tools ~= new PanTool;
39 tools ~= new ZoomTool;
40 tools ~= new SelectTool;
41 auto toolLayer = new ToolLayer(tools, "Tools");
42 _toolStack = toolLayer;
43
44 auto gridLayer = new GridLayer("Grid");
45
46 Layer[] layers;
47 layers ~= new PageLayer("Page");
48 layers ~= gridLayer;
49 layers ~= toolLayer;
50 auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0);
51
52 vbox.packStart(canvas, true, true, 0);
53 window.add(vbox);
54 window.setDefaultSize(640, 580);
55 window.showAll();
56 Main.run();
24 } 57 }
25 58
26 Main.init(args); 59 private {
27 auto window = new MainWindow("Doodle"); 60 ToolStack _toolStack;
28 auto vbox = new VBox(false, 0);
29 61
30 auto palette = new Palette; 62 void paletteCallback(int index) {
31 IPalette.Item[] items = 63 switch (index) {
32 [ 64 case 0:
33 { "select.svg", "Select", &paletteCallback }, 65 // Select
34 { "rectangle.svg", "Rectangle", &paletteCallback }, 66 break;
35 { "ellipse.svg", "Ellipse", &paletteCallback }, 67 case 1:
36 { "polyline.svg", "Polyline", &paletteCallback } 68 // Rectangle
37 ]; 69 break;
38 palette.configure(items); 70 case 2:
39 vbox.packStart(palette, false, false, 0); 71 // Ellipse
72 break;
73 case 3:
74 // Polyline
75 break;
76 default:
77 assert(0);
78 }
79 }
80 }
81 }
40 82
41 Tool[] tools; 83 void main(string[] args) {
42 tools ~= new PanTool; 84 new TopLevel(args);
43 tools ~= new ZoomTool;
44 tools ~= new LassoTool;
45 auto toolLayer = new ToolLayer(tools, "Tools");
46
47 auto gridLayer = new GridLayer("Grid");
48
49 Layer[] layers;
50 layers ~= new PageLayer("Page");
51 layers ~= gridLayer;
52 layers ~= toolLayer;
53 auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0);
54
55 vbox.packStart(canvas, true, true, 0);
56 window.add(vbox);
57 window.setDefaultSize(640, 580);
58 window.showAll();
59 Main.run();
60 } 85 }