changeset 55:4922e746dd76

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sun, 08 Aug 2010 21:37:38 +0930
parents 30ecedfe2ce2
children b190a9d9352e
files doodle/gtk/data/ellipse.svg doodle/gtk/data/polyline.svg doodle/gtk/data/rectangle.svg doodle/gtk/data/select.png doodle/gtk/palette.d doodle/gtk/toolbar.d doodle/main/prog/doodler.d
diffstat 7 files changed, 492 insertions(+), 81 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doodle/gtk/data/ellipse.svg	Sun Aug 08 21:37:38 2010 +0930
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="ellipse.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/daveb/source/d/doodle/doodle/gtk/data/rectangle.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   version="1.1">
+  <defs
+     id="defs2385">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3262">
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:1;"
+         offset="0"
+         id="stop3264" />
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:0;"
+         offset="1"
+         id="stop3266" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3254">
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:1;"
+         offset="0"
+         id="stop3256" />
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:0;"
+         offset="1"
+         id="stop3258" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective2391" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3268"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3254"
+       id="linearGradient3733"
+       x1="-27.526884"
+       y1="28.079714"
+       x2="-0.38405609"
+       y2="0.43171197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0147,0,0,0.98124597,30.160614,2.0116389)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3830"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(-8.3353943,21.091074)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3832"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(7.1987497,17.807433)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3834"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(-39.024801,26.395415)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3254"
+       id="linearGradient4747"
+       x1="-32.444584"
+       y1="16.40271"
+       x2="-1.6547594"
+       y2="16.40271"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9180417"
+     inkscape:cx="-4.0005236"
+     inkscape:cy="17.592423"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1196"
+     inkscape:window-height="880"
+     inkscape:window-x="157"
+     inkscape:window-y="98"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#linearGradient4747);fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path4221"
+       sodipodi:cx="-17.049671"
+       sodipodi:cy="16.40271"
+       sodipodi:rx="14.144912"
+       sodipodi:ry="13.324001"
+       d="m -2.9047594,16.40271 a 14.144912,13.324001 0 1 1 -28.2898236,0 14.144912,13.324001 0 1 1 28.2898236,0 z"
+       transform="matrix(1.0059759,0,0,0.86416394,33.151558,1.8253695)" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doodle/gtk/data/polyline.svg	Sun Aug 08 21:37:38 2010 +0930
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="polyline.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/daveb/source/d/doodle/doodle/gtk/data/ellipse.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   version="1.1">
+  <defs
+     id="defs2385">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3262">
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:1;"
+         offset="0"
+         id="stop3264" />
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:0;"
+         offset="1"
+         id="stop3266" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3254">
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:1;"
+         offset="0"
+         id="stop3256" />
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:0;"
+         offset="1"
+         id="stop3258" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective2391" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3268"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3254"
+       id="linearGradient3733"
+       x1="-27.526884"
+       y1="28.079714"
+       x2="-0.38405609"
+       y2="0.43171197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0147,0,0,0.98124597,30.160614,2.0116389)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3830"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(-8.3353943,21.091074)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3832"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(7.1987497,17.807433)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3834"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(-39.024801,26.395415)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3254"
+       id="linearGradient4747"
+       x1="-32.444584"
+       y1="16.40271"
+       x2="-1.6547594"
+       y2="16.40271"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9180417"
+     inkscape:cx="-26.607123"
+     inkscape:cy="17.592423"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1196"
+     inkscape:window-height="880"
+     inkscape:window-x="157"
+     inkscape:window-y="98"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 2.3995834,29.979298 10.356096,13.939979 17.554845,24.043487 28.037235,3.0787075"
+       id="path4892"
+       sodipodi:nodetypes="cccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doodle/gtk/data/rectangle.svg	Sun Aug 08 21:37:38 2010 +0930
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="rectangle.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/daveb/source/d/doodle/doodle/gtk/data/rectangle.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   version="1.1">
+  <defs
+     id="defs2385">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3262">
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:1;"
+         offset="0"
+         id="stop3264" />
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:0;"
+         offset="1"
+         id="stop3266" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3254">
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:1;"
+         offset="0"
+         id="stop3256" />
+      <stop
+         style="stop-color:#6bfff4;stop-opacity:0;"
+         offset="1"
+         id="stop3258" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 16 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 16 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective2391" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3268"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3254"
+       id="linearGradient3733"
+       x1="-27.526884"
+       y1="28.079714"
+       x2="-0.38405609"
+       y2="0.43171197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0147,0,0,0.98124597,30.160614,2.0116389)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3830"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(-8.3353943,21.091074)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3832"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(7.1987497,17.807433)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3262"
+       id="linearGradient3834"
+       gradientUnits="userSpaceOnUse"
+       x1="1.1039745"
+       y1="15.925417"
+       x2="30.955889"
+       y2="15.925417"
+       gradientTransform="translate(-39.024801,26.395415)" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9180417"
+     inkscape:cx="-10.567804"
+     inkscape:cy="15.571721"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1196"
+     inkscape:window-height="880"
+     inkscape:window-x="346"
+     inkscape:window-y="89"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:url(#linearGradient3733);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.49458194;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect2938"
+       width="26.527128"
+       height="26.148245"
+       x="2.7364359"
+       y="2.9258776"
+       ry="0" />
+  </g>
+</svg>
Binary file doodle/gtk/data/select.png has changed
--- a/doodle/gtk/palette.d	Sun Aug 08 21:07:47 2010 +0930
+++ b/doodle/gtk/palette.d	Sun Aug 08 21:37:38 2010 +0930
@@ -10,27 +10,44 @@
     import gtk.ToolButton;
     import gtk.RadioToolButton;
     import gtk.Image;
+    import gtk.Label;
     import glib.ListSG;
     import std.stdio;
 }
 
 class Palette : Toolbar, IPalette {
     this() {
+        // INVALID, MENU, SMALL_TOOLBAR, LARGE_TOOLBAR,
+        // BUTTON, DND, DIALOG
         setIconSize(GtkIconSize.LARGE_TOOLBAR);
+	// ICONS, TEXT, BOTH, BOTH_HORIZ
         setStyle(GtkToolbarStyle.ICONS);
+	// HORIZONTAL, VERTICAL
         setOrientation(GtkOrientation.HORIZONTAL);
         setTooltips(true);
     }
 
     override void configure(in Item[] items) {
         _items = items.dup;
-        ListSG group;
+
+        RadioToolButton group;
 
         foreach(index, item; _items) {
-            auto button = new RadioToolButton(group);
-            if (index == 0) group = button.getGroup;
+            RadioToolButton button;
+
+            if (index == 0) {
+                ListSG list;
+                button = new RadioToolButton(list);
+                group = button;
+            }
+            else {
+                button = new RadioToolButton(group);
+            }
+
             auto image = new Image(_iconBase ~ "/" ~ item.iconPath);
-            button.setLabelWidget(image);
+            auto label = new Label(item.tooltipText);
+            button.setIconWidget(image);
+            button.setLabelWidget(label);
             button.setTooltipText(item.tooltipText);
 
             int * i = new int;
--- a/doodle/gtk/toolbar.d	Sun Aug 08 21:07:47 2010 +0930
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-module doodle.gtk.toolbar;
-
-public {
-    import gtk.Toolbar;
-}
-
-private {
-    import gtk.ToolButton;
-    import gtk.SeparatorToolItem;
-    import gtk.RadioToolButton;
-    import gtk.Image;
-
-    import glib.ListSG;
-
-    import std.stdio;
-}
-
-class ToolBar : Toolbar {
-    this() {
-        // INVALID, MENU, SMALL_TOOLBAR, LARGE_TOOLBAR,
-        // BUTTON, DND, DIALOG
-        setIconSize(GtkIconSize.LARGE_TOOLBAR);
-	// ICONS, TEXT, BOTH, BOTH_HORIZ
-        setStyle(GtkToolbarStyle.ICONS);
-	// HORIZONTAL, VERTICAL
-        setOrientation(GtkOrientation.HORIZONTAL);
-        setTooltips(true);
-
-        Image image;
-        ListSG group;
-
-        image = new Image("icons/select.svg");
-        button1 = new RadioToolButton(group);
-        button1.setLabelWidget(image);
-        insert(button1);
-
-        image = new Image("icons/select.png");
-        button2 = new RadioToolButton(group);
-        button2.setGroup(button1.getGroup);
-        button2.setLabelWidget(image);
-        button2.addOnClicked(&onClicked);
-        insert(button2);
-
-        insert(new SeparatorToolItem);
-
-        image = new Image("icons/select.png");
-        button3 = new RadioToolButton(group);
-        button3.setGroup(button1.getGroup);
-        button3.setLabelWidget(image);
-        insert(button3);
-    }
-
-    private {
-
-        void onClicked(ToolButton tool_button) {
-            writefln("Clicked!");
-        }
-
-        RadioToolButton button1;
-        RadioToolButton button2;
-        RadioToolButton button3;
-    }
-}
--- a/doodle/main/prog/doodler.d	Sun Aug 08 21:07:47 2010 +0930
+++ b/doodle/main/prog/doodler.d	Sun Aug 08 21:37:38 2010 +0930
@@ -9,7 +9,6 @@
     import doodle.dia.page_layer;
 
     import doodle.gtk.canvas;
-    import doodle.gtk.toolbar;
     import doodle.gtk.palette;
 
     import gtk.Main;
@@ -27,25 +26,16 @@
     Main.init(args);
     auto window = new MainWindow("Doodle");
     auto vbox = new VBox(false, 0);
-    /+
-    auto toolBar = new ToolBar;
-    vbox.packStart(toolBar, false, false, 0);
-    +/
 
     auto palette = new Palette;
     IPalette.Item[] items =
         [
         { "select.svg", "Select", &paletteCallback },
-        { "select.svg", "Select", &paletteCallback }
+        { "rectangle.svg", "Rectangle", &paletteCallback },
+        { "ellipse.svg", "Ellipse", &paletteCallback },
+        { "polyline.svg", "Polyline", &paletteCallback }
         ];
         palette.configure(items);
-    /*
-    palette.add("select.svg", "tooltip-text", (int i){ writefln("Wow %s", i); });
-    palette.add("select.svg", "tooltip-text", (int i){ writefln("Wow %s", i); });
-    palette.add("select.svg", "tooltip-text", (int i){ writefln("Wow %s", i); });
-    palette.add("select.svg", "tooltip-text", (int i){ writefln("Wow %s", i); });
-    palette.add("select.svg", "tooltip-text", (int i){ writefln("Wow %s", i); });
-    */
     vbox.packStart(palette, false, false, 0);
 
     Tool[] tools;
@@ -64,7 +54,7 @@
 
     vbox.packStart(canvas, true, true, 0);
     window.add(vbox);
-    window.setDefaultSize(380, 380);
+    window.setDefaultSize(640, 580);
     window.showAll();
     Main.run();
 }