annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 40
diff changeset
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
01bbf3f6f966 Cleanups
daveb
parents: 44
diff changeset
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
3f6bb0bb22dc Beginnings of grid
David Bryant <bagnose@gmail.com>
parents: 33
diff changeset
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
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
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
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
12 import doodle.gtk.palette;
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 22
diff changeset
13
20
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
14 import gtk.Main;
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
15 import gtk.MainWindow;
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 22
diff changeset
16 import gtk.VBox;
20
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
17
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
18 import std.stdio;
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
19 }
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
20
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
21 void main(string[] args) {
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
22 void paletteCallback(int index) {
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
23 writefln("Callback %s", index);
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
24 }
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
25
51
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
26 Main.init(args);
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
27 auto window = new MainWindow("Doodle");
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
28 auto vbox = new VBox(false, 0);
38
452915ecd1f4 Basic logging functionality
David Bryant <bagnose@gmail.com>
parents: 35
diff changeset
29
51
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
30 auto palette = new Palette;
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
31 IPalette.Item[] items =
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
32 [
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
33 { "select.svg", "Select", &paletteCallback },
55
4922e746dd76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
34 { "rectangle.svg", "Rectangle", &paletteCallback },
4922e746dd76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
35 { "ellipse.svg", "Ellipse", &paletteCallback },
4922e746dd76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
36 { "polyline.svg", "Polyline", &paletteCallback }
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
37 ];
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 51
diff changeset
38 palette.configure(items);
51
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
39 vbox.packStart(palette, false, false, 0);
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
40
20
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
41 Tool[] tools;
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
42 tools ~= new PanTool;
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
43 tools ~= new ZoomTool;
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
44 tools ~= new LassoTool;
48
1b4c9ba58673 Stylistic overhaul.
daveb
parents: 45
diff changeset
45 auto toolLayer = new ToolLayer(tools, "Tools");
51
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
46
48
1b4c9ba58673 Stylistic overhaul.
daveb
parents: 45
diff changeset
47 auto gridLayer = new GridLayer("Grid");
51
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
48
20
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
49 Layer[] layers;
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
50 layers ~= new PageLayer("Page");
48
1b4c9ba58673 Stylistic overhaul.
daveb
parents: 45
diff changeset
51 layers ~= gridLayer;
1b4c9ba58673 Stylistic overhaul.
daveb
parents: 45
diff changeset
52 layers ~= toolLayer;
1b4c9ba58673 Stylistic overhaul.
daveb
parents: 45
diff changeset
53 auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0);
51
0eaf39fda206 First cut at palette class
daveb
parents: 48
diff changeset
54
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 22
diff changeset
55 vbox.packStart(canvas, true, true, 0);
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 22
diff changeset
56 window.add(vbox);
55
4922e746dd76 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
57 window.setDefaultSize(640, 580);
20
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
58 window.showAll();
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
59 Main.run();
d6e7a5a6f008 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents:
diff changeset
60 }