Mercurial > projects > doodle
annotate 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 |
rev | line source |
---|---|
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
27
diff
changeset
|
1 private { |
44 | 2 import doodle.core.backtrace; |
38
452915ecd1f4
Basic logging functionality
David Bryant <bagnose@gmail.com>
parents:
35
diff
changeset
|
3 import doodle.core.logging; |
45 | 4 import doodle.core.backtrace; |
38
452915ecd1f4
Basic logging functionality
David Bryant <bagnose@gmail.com>
parents:
35
diff
changeset
|
5 |
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
27
diff
changeset
|
6 import doodle.dia.tool_layer; |
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
27
diff
changeset
|
7 import doodle.dia.standard_tools; |
35 | 8 import doodle.dia.grid_layer; |
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
27
diff
changeset
|
9 import doodle.dia.page_layer; |
20 | 10 |
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
27
diff
changeset
|
11 import doodle.gtk.canvas; |
51 | 12 import doodle.gtk.palette; |
27 | 13 |
20 | 14 import gtk.Main; |
15 import gtk.MainWindow; | |
27 | 16 import gtk.VBox; |
20 | 17 |
18 import std.stdio; | |
19 } | |
20 | |
56 | 21 class TopLevel { |
22 this(string[] args) { | |
23 Main.init(args); | |
24 auto window = new MainWindow("Doodle"); | |
25 auto vbox = new VBox(false, 0); | |
54 | 26 |
56 | 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 } | |
54 | 33 ]; |
34 palette.configure(items); | |
56 | 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"); | |
51 | 45 |
56 | 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 | 51 |
56 | 52 vbox.packStart(canvas, true, true, 0); |
53 window.add(vbox); | |
54 window.setDefaultSize(640, 580); | |
55 window.showAll(); | |
56 Main.run(); | |
57 } | |
51 | 58 |
56 | 59 private { |
60 ToolStack _toolStack; | |
51 | 61 |
56 | 62 void paletteCallback(int index) { |
63 switch (index) { | |
64 case 0: | |
65 // Select | |
66 break; | |
67 case 1: | |
68 // Rectangle | |
69 break; | |
70 case 2: | |
71 // Ellipse | |
72 break; | |
73 case 3: | |
74 // Polyline | |
75 break; | |
76 default: | |
77 assert(0); | |
78 } | |
79 } | |
80 } | |
20 | 81 } |
56 | 82 |
83 void main(string[] args) { | |
84 new TopLevel(args); | |
85 } |