Mercurial > projects > doodle
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 } |