[Sugar-devel] [PATCH] Finance: add support for new toolbars

Manuel Quiñones manuq at laptop.org
Sun Jul 31 18:28:57 EDT 2011


- I have put the period buttons in the main toolbar, because they
  affect the transaction operations being done and the views.

- I have converted the view buttons to radio buttons.

- I did custom icons for transaction operators: Add debit, Add credit,
  and Remove transaction.

The context help strings may need to be changed because of the
toolbars change, I will check.

The sensitivity of the buttons in the Transaction toolbar depend on
list view selected, maybe we can trigger a change to list view when
Transaction toolbar is selected.

Signed-off-by: Manuel Quiñones <manuq at laptop.org>
---
 finance.py                       |  143 +++++++++++++++++++++++++++----------
 icons/budget.svg                 |   22 ++++++
 icons/chart.svg                  |   21 ++++++
 icons/row-insert-credit.svg      |   49 +++++++++++++
 icons/row-insert-debit.svg       |   49 +++++++++++++
 icons/row-remove-transaction.svg |   43 +++++++++++
 icons/transaction.svg            |   31 ++++++++
 7 files changed, 319 insertions(+), 39 deletions(-)
 create mode 100644 icons/budget.svg
 create mode 100644 icons/chart.svg
 create mode 100644 icons/row-insert-credit.svg
 create mode 100644 icons/row-insert-debit.svg
 create mode 100644 icons/row-remove-transaction.svg
 create mode 100644 icons/transaction.svg

diff --git a/finance.py b/finance.py
index 3ead586..51f4abe 100644
--- a/finance.py
+++ b/finance.py
@@ -33,6 +33,16 @@ import sugar.activity.activity
 from sugar.graphics import toggletoolbutton
 from sugar.graphics import *
 
+OLD_TOOLBAR = False
+try:
+    from sugar.graphics.toolbarbox import ToolbarBox
+    from sugar.graphics.toolbarbox import ToolbarButton
+    from sugar.graphics.radiotoolbutton import RadioToolButton
+    from sugar.activity.widgets import StopButton
+    from sugar.activity.widgets import ActivityToolbarButton
+except ImportError:
+    OLD_TOOLBAR = True
+
 # Initialize logging.
 log = logging.getLogger('Finance')
 log.setLevel(logging.DEBUG)
@@ -164,40 +174,28 @@ class Finance(sugar.activity.activity.Activity):
 
         self.show_all()
 
-        # Hide the sharing button from the activity toolbar since we don't support it.
-        activity_toolbar = self.tbox.get_activity_toolbar()
-        activity_toolbar.share.props.visible = False
-
-        self.helpbtn = sugar.graphics.toggletoolbutton.ToggleToolButton('help')
-        self.helpbtn.set_active(True)
-        self.helpbtn.set_tooltip(_("Show Help"))
-        #self.helpbtn.props.accelerator = '<Ctrl>H'
-        self.helpbtn.connect('clicked', self.help_cb)
-
-        share_idx = activity_toolbar.get_item_index(activity_toolbar.share) 
-        activity_toolbar.insert(self.helpbtn, share_idx)
-        self.helpbtn.show_all()
+        if OLD_TOOLBAR:
+            # Hide the sharing button from the activity toolbar since
+            # we don't support it.
+            activity_toolbar = self.tbox.get_activity_toolbar()
+            activity_toolbar.share.props.visible = False
 
     def build_toolbox(self):
-        self.newcreditbtn = sugar.graphics.toolbutton.ToolButton('list-add')
+        self.newcreditbtn = sugar.graphics.toolbutton.ToolButton('row-insert-credit')
         self.newcreditbtn.set_tooltip(_("New Credit"))
         self.newcreditbtn.props.accelerator = '<Ctrl>A'
         self.newcreditbtn.connect('clicked', self.register.newcredit_cb)
 
-        self.newdebitbtn = sugar.graphics.toolbutton.ToolButton('list-remove')
+        self.newdebitbtn = sugar.graphics.toolbutton.ToolButton('row-insert-debit')
         self.newdebitbtn.set_tooltip(_("New Debit"))
         self.newdebitbtn.props.accelerator = '<Ctrl>D'
         self.newdebitbtn.connect('clicked', self.register.newdebit_cb)
 
-        self.eraseitembtn = sugar.graphics.toolbutton.ToolButton('dialog-cancel')
+        self.eraseitembtn = sugar.graphics.toolbutton.ToolButton('row-remove-transaction')
         self.eraseitembtn.set_tooltip(_("Erase Transaction"))
         self.eraseitembtn.props.accelerator = '<Ctrl>E'
         self.eraseitembtn.connect('clicked', self.register.eraseitem_cb)
 
-        #sep = gtk.SeparatorToolItem()
-        #sep.set_expand(True)
-        #sep.set_draw(False)
-
         transactionbar = gtk.Toolbar()
         transactionbar.insert(self.newcreditbtn, -1)
         transactionbar.insert(self.newdebitbtn, -1)
@@ -207,11 +205,11 @@ class Finance(sugar.activity.activity.Activity):
         self.thisperiodbtn.props.accelerator = '<Ctrl>Down'
         self.thisperiodbtn.connect('clicked', self.thisperiod_cb)
 
-        self.prevperiodbtn = sugar.graphics.toolbutton.ToolButton('go-previous')
+        self.prevperiodbtn = sugar.graphics.toolbutton.ToolButton('go-previous-paired')
         self.prevperiodbtn.props.accelerator = '<Ctrl>Left'
         self.prevperiodbtn.connect('clicked', self.prevperiod_cb)
 
-        self.nextperiodbtn = sugar.graphics.toolbutton.ToolButton('go-next')
+        self.nextperiodbtn = sugar.graphics.toolbutton.ToolButton('go-next-paired')
         self.nextperiodbtn.props.accelerator = '<Ctrl>Right'
         self.nextperiodbtn.connect('clicked', self.nextperiod_cb)
 
@@ -235,26 +233,29 @@ class Finance(sugar.activity.activity.Activity):
         perioditem = gtk.ToolItem()
         perioditem.add(periodcombo)
 
-        periodbar = gtk.Toolbar()
-        periodbar.insert(self.prevperiodbtn, -1)
-        periodbar.insert(self.thisperiodbtn, -1)
-        periodbar.insert(self.nextperiodbtn, -1)
-        periodbar.insert(periodsep, -1)
-        periodbar.insert(periodlabelitem, -1)
-        periodbar.insert(perioditem, -1)
-
-        registerbtn = sugar.graphics.toolbutton.ToolButton('view-list')
+        view_tool_group = None
+        registerbtn = RadioToolButton()
+        registerbtn.props.icon_name = 'view-list'
+        registerbtn.props.label = _('Register')
         registerbtn.set_tooltip(_("Register"))
+        registerbtn.props.group = view_tool_group
+        view_tool_group = registerbtn
         registerbtn.props.accelerator = '<Ctrl>1'
         registerbtn.connect('clicked', self.register_cb)
 
-        budgetbtn = sugar.graphics.toolbutton.ToolButton('view-triangle')
+        budgetbtn = RadioToolButton()
+        budgetbtn.props.icon_name = 'budget'
+        budgetbtn.props.label = _('Budget')
         budgetbtn.set_tooltip(_("Budget"))
+        budgetbtn.props.group = view_tool_group
         budgetbtn.props.accelerator = '<Ctrl>2'
         budgetbtn.connect('clicked', self.budget_cb)
 
-        chartbtn = sugar.graphics.toolbutton.ToolButton('view-radial')
+        chartbtn = RadioToolButton()
+        chartbtn.props.icon_name = 'chart'
+        chartbtn.props.label = _('Chart')
         chartbtn.set_tooltip(_("Chart"))
+        chartbtn.props.group = view_tool_group
         chartbtn.props.accelerator = '<Ctrl>3'
         chartbtn.connect('clicked', self.chart_cb)
 
@@ -263,13 +264,77 @@ class Finance(sugar.activity.activity.Activity):
         viewbar.insert(budgetbtn, -1)
         viewbar.insert(chartbtn, -1)
 
-        self.tbox = sugar.activity.activity.ActivityToolbox(self)
-        self.tbox.add_toolbar(_('Transaction'), transactionbar)
-        self.tbox.add_toolbar(_('Period'), periodbar)
-        self.tbox.add_toolbar(_('View'), viewbar)
-        self.tbox.show_all()
+        helpbtn = sugar.graphics.toggletoolbutton.ToggleToolButton('help')
+        helpbtn.set_active(True)
+        helpbtn.set_tooltip(_("Show Help"))
+        helpbtn.connect('clicked', self.help_cb)
+
+        if OLD_TOOLBAR:
+            periodbar = gtk.Toolbar()
+            periodbar.insert(self.prevperiodbtn, -1)
+            periodbar.insert(self.nextperiodbtn, -1)
+            periodbar.insert(self.thisperiodbtn, -1)
+            periodbar.insert(periodsep, -1)
+            periodbar.insert(periodlabelitem, -1)
+            periodbar.insert(perioditem, -1)
+
+            self.tbox = sugar.activity.activity.ActivityToolbox(self)
+            self.tbox.add_toolbar(_('Transaction'), transactionbar)
+            self.tbox.add_toolbar(_('Period'), periodbar)
+            self.tbox.add_toolbar(_('View'), viewbar)
+            self.tbox.show_all()
+
+            # Add help button in place of share:
+            activity_toolbar = self.tbox.get_activity_toolbar()
+            share_idx = activity_toolbar.get_item_index(activity_toolbar.share)
+            activity_toolbar.insert(helpbtn, share_idx)
+            helpbtn.show_all()
+
+            self.set_toolbox(self.tbox)
 
-        self.set_toolbox(self.tbox)
+        else:
+            self.toolbar_box = ToolbarBox()
+
+            activity_button = ActivityToolbarButton(self)
+            self.toolbar_box.toolbar.insert(activity_button, 0)
+            activity_button.show()
+
+            transaction_toolbar_button = ToolbarButton(
+                    page=transactionbar,
+                    icon_name='transaction')
+            transactionbar.show_all()
+
+            view_toolbar_button = ToolbarButton(
+                    page=viewbar,
+                    icon_name='toolbar-view')
+            viewbar.show_all()
+
+            self.toolbar_box.toolbar.insert(transaction_toolbar_button, -1)
+            transaction_toolbar_button.show()
+
+            self.toolbar_box.toolbar.view = view_toolbar_button
+            self.toolbar_box.toolbar.insert(view_toolbar_button, -1)
+            view_toolbar_button.show()
+
+            separator = gtk.SeparatorToolItem()
+            separator.set_draw(True)
+            self.toolbar_box.toolbar.insert(separator, -1)
+
+            self.toolbar_box.toolbar.insert(periodlabelitem, -1)
+            self.toolbar_box.toolbar.insert(perioditem, -1)
+            self.toolbar_box.toolbar.insert(self.prevperiodbtn, -1)
+            self.toolbar_box.toolbar.insert(self.nextperiodbtn, -1)
+            self.toolbar_box.toolbar.insert(self.thisperiodbtn, -1)
+
+            separator = gtk.SeparatorToolItem()
+            separator.props.draw = False
+            separator.set_expand(True)
+            self.toolbar_box.toolbar.insert(separator, -1)
+
+            self.toolbar_box.toolbar.insert(helpbtn, -1)
+            self.toolbar_box.toolbar.insert(StopButton(self), -1)
+            self.set_toolbar_box(self.toolbar_box)
+            self.toolbar_box.show_all()
 
     def set_help(self, text):
         if self.helplabel != None:
diff --git a/icons/budget.svg b/icons/budget.svg
new file mode 100644
index 0000000..eb7f4af
--- /dev/null
+++ b/icons/budget.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+  <!ENTITY fill_color "#FFFFFF">
+  <!ENTITY stroke_color "#010101">
+]>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="55"
+   height="55"
+   viewBox="0 0 55 55"
+   id="svg2"
+   xml:space="preserve"><path
+     d="m 6.6007253,8.2456182 25.8704757,0 3.713506,4.1775918 -3.713506,4.177592 -25.8704757,0 z"
+     id="rect4771"
+     style="fill:&fill_color;;fill-opacity:1;stroke:none" /><path
+     d="m 6.6007253,23.531778 17.0386267,0 3.713506,4.177592 -3.713506,4.177591 -17.0386267,0 z"
+     id="path4774"
+     style="fill:&fill_color;;fill-opacity:1;stroke:none" /><path
+     d="m 6.6007253,38.817937 38.1792237,0 3.713507,4.177591 -3.713507,4.177591 -38.1792237,0 z"
+     id="path4776"
+     style="fill:&fill_color;;fill-opacity:1;stroke:none" /></svg>
\ No newline at end of file
diff --git a/icons/chart.svg b/icons/chart.svg
new file mode 100644
index 0000000..a4f664b
--- /dev/null
+++ b/icons/chart.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+  <!ENTITY fill_color "#FFFFFF">
+  <!ENTITY stroke_color "#010101">
+]>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="55"
+   height="54.695999"
+   viewBox="0 0 55 54.696"
+   id="svg2"
+   xml:space="preserve"><path
+     d="m 74.938826,52.30751 a 24.183447,24.183447 0 1 1 -48.366894,0 24.183447,24.183447 0 1 1 48.366894,0 z"
+     transform="matrix(0.86419753,0,0,0.86419753,-16.362674,-17.856021)"
+     id="path4827"
+     style="fill:#b3b3b3;fill-opacity:1;stroke:none" /><path
+     d="m 56.790988,75.725677 a 24.183447,24.183447 0 1 1 14.676658,-35.9018 L 50.755379,52.30751 z"
+     transform="matrix(0.72405881,0.47177983,-0.47177983,0.72405881,15.43226,-34.46759)"
+     id="path4831"
+     style="fill:&fill_color;;fill-opacity:1;stroke:none" /></svg>
\ No newline at end of file
diff --git a/icons/row-insert-credit.svg b/icons/row-insert-credit.svg
new file mode 100644
index 0000000..56b508b
--- /dev/null
+++ b/icons/row-insert-credit.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+  <!ENTITY fill_color "#FFFFFF">
+  <!ENTITY stroke_color "#010101">
+]>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="55"
+   height="55"
+   viewBox="0 0 55 55"
+   id="svg2"
+   xml:space="preserve"><rect
+     width="29.018976"
+     height="8.0039997"
+     x="22.856024"
+     y="25.603001"
+     id="rect7"
+     style="fill:#808284;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><rect
+     width="29.018976"
+     height="7.9920001"
+     x="22.856024"
+     y="33.606003"
+     id="rect9"
+     style="fill:#c6c8ca;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><rect
+     width="29.018976"
+     height="8.0039997"
+     x="22.856024"
+     y="41.598"
+     id="rect11"
+     style="fill:#808284;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><g
+     transform="translate(4.3481076,3.1245143e-7)"
+     id="g3037"><line
+       x1="7"
+       x2="7"
+       y1="37.007"
+       y2="24.844"
+       id="line15"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /><polyline
+       transform="translate(0,10)"
+       points="     12.13,20.924 7,27.007 1.87,20.924    "
+       id="polyline17"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /></g><g
+     transform="matrix(0.40270692,0,0,0.40270692,0.26115198,0.32328443)"
+     id="list-add"
+     style="display:block"><path
+       d="M 43.467,11.644 C 34.678,2.854 20.432,2.858 11.649,11.642 2.858,20.433 2.857,34.675 11.647,43.465 c 8.79,8.789 23.031,8.788 31.822,-0.003 8.783,-8.784 8.788,-23.029 -0.002,-31.818 z M 30.768,38.767 c -0.002,1.774 -1.438,3.216 -3.214,3.214 -0.889,10e-4 -1.693,-0.359 -2.275,-0.941 -0.582,-0.581 -0.94,-1.385 -0.94,-2.27 l 0,-8.146 h -8.146 c -0.886,-10e-4 -1.689,-0.359 -2.271,-0.94 -0.582,-0.583 -0.942,-1.388 -0.942,-2.276 0,-1.773 1.439,-3.213 3.217,-3.211 h 8.143 v -8.143 c -0.003,-1.776 1.438,-3.217 3.212,-3.217 1.774,0 3.218,1.438 3.215,3.215 l 0.001,8.145 8.146,0.001 c 1.775,-0.005 3.212,1.438 3.213,3.213 0.002,1.775 -1.441,3.214 -3.215,3.215 h -8.143 v 8.141 z"
+       id="path5"
+       style="fill:&fill_color;;display:inline" /></g></svg>
\ No newline at end of file
diff --git a/icons/row-insert-debit.svg b/icons/row-insert-debit.svg
new file mode 100644
index 0000000..c1670c0
--- /dev/null
+++ b/icons/row-insert-debit.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+  <!ENTITY fill_color "#FFFFFF">
+  <!ENTITY stroke_color "#010101">
+]>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="55"
+   height="55"
+   viewBox="0 0 55 55"
+   id="svg2"
+   xml:space="preserve"><rect
+     width="29.018976"
+     height="8.0039997"
+     x="22.856024"
+     y="25.603001"
+     id="rect7"
+     style="fill:#808284;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><rect
+     width="29.018976"
+     height="7.9920001"
+     x="22.856024"
+     y="33.606003"
+     id="rect9"
+     style="fill:#c6c8ca;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><rect
+     width="29.018976"
+     height="8.0039997"
+     x="22.856024"
+     y="41.598"
+     id="rect11"
+     style="fill:#808284;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><g
+     transform="translate(4.3481076,3.1245143e-7)"
+     id="g3037"><line
+       x1="7"
+       x2="7"
+       y1="37.007"
+       y2="24.844"
+       id="line15"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /><polyline
+       transform="translate(0,10)"
+       points="     12.13,20.924 7,27.007 1.87,20.924    "
+       id="polyline17"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /></g><g
+     transform="matrix(0.4045393,0,0,0.4045393,0.210658,0.27279434)"
+     id="list-remove"
+     style="fill:&fill_color;;display:block"><path
+       d="M 43.467,11.644 C 34.678,2.854 20.432,2.858 11.649,11.642 2.858,20.433 2.857,34.675 11.647,43.465 c 8.79,8.789 23.031,8.788 31.822,-0.003 8.783,-8.784 8.788,-23.029 -0.002,-31.818 z M 16.192,30.623 c -0.886,-0.001 -1.689,-0.359 -2.271,-0.94 -0.582,-0.583 -0.942,-1.388 -0.942,-2.276 0,-1.773 1.439,-3.213 3.217,-3.211 l 22.716,0 c 1.775,-0.005 3.212,1.438 3.213,3.213 0.002,1.775 -1.441,3.214 -3.215,3.215 L 16.192,30.623 z"
+       id="path5-8"
+       style="fill:&fill_color;;display:inline" /></g></svg>
\ No newline at end of file
diff --git a/icons/row-remove-transaction.svg b/icons/row-remove-transaction.svg
new file mode 100644
index 0000000..18b5193
--- /dev/null
+++ b/icons/row-remove-transaction.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+  <!ENTITY fill_color "#FFFFFF">
+  <!ENTITY stroke_color "#010101">
+]>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="55"
+   height="55"
+   viewBox="0 0 55 55"
+   id="svg2"
+   xml:space="preserve"><rect
+     width="28.067122"
+     height="8.0039997"
+     x="23.692928"
+     y="-33.492767"
+     transform="scale(1,-1)"
+     id="rect7-8"
+     style="fill:#808284;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><rect
+     width="28.067122"
+     height="7.9920001"
+     x="23.692928"
+     y="33.492771"
+     id="rect9-8"
+     style="fill:none;stroke:&fill_color;;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:2.00000003, 2.00000003;stroke-dashoffset:0.80000001" /><rect
+     width="28.067122"
+     height="8.0039997"
+     x="23.692928"
+     y="41.483768"
+     id="rect11-6"
+     style="fill:#808284;stroke:&fill_color;;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none" /><g
+     transform="translate(4.2928405,9.889769)"
+     id="g13"><line
+       x1="7.0630002"
+       x2="7.0630002"
+       y1="27.851999"
+       y2="40.015999"
+       id="line15-8"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /><polyline
+       points="     1.934,33.936 7.063,27.852 12.194,33.936    "
+       id="polyline17-3"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /></g></svg>
\ No newline at end of file
diff --git a/icons/transaction.svg b/icons/transaction.svg
new file mode 100644
index 0000000..784e13c
--- /dev/null
+++ b/icons/transaction.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+  <!ENTITY fill_color "#FFFFFF;">
+  <!ENTITY stroke_color "#010101">
+]>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="55"
+   height="55"
+   viewBox="0 0 55 55"
+   id="svg2"
+   xml:space="preserve"><path
+     d="m 5.3989893,21.203662 c 14.2536357,3.026498 37.6915987,1.918235 44.2020257,0 l 0,26.464908 c -11.3515,4.547175 -38.003399,3.515525 -44.2020257,0 z"
+     id="rect3950"
+     style="fill:&fill_color;;fill-opacity:1;stroke:&stroke_color;;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
+     d="m 31.826568,35.200723 c -0.124647,1.441238 -0.924793,2.66249 -2.063202,3.379224 0.843146,1.62985 3.882836,2.875781 3.882836,2.875781 0,0 -2.401658,2.743546 -6.470692,2.785079 -4.069035,0.04152 -5.992209,-2.747657 -5.992209,-2.747657 0,0 2.96051,-0.859211 4.142418,-2.746178 -1.529892,-0.810058 -2.509198,-2.478963 -2.350603,-4.312794 0.211372,-2.444065 2.364455,-4.254389 4.808523,-4.043021 2.445016,0.212504 4.254298,2.365496 4.042929,4.809566 z"
+     id="President-0"
+     style="fill:&stroke_color;;stroke:none" /><g
+     transform="matrix(1.2772258,0,0,1.2772258,-16.920749,-35.948644)"
+     id="g3938"><line
+       x1="40.861088"
+       x2="28.697088"
+       y1="35.768433"
+       y2="35.768433"
+       id="line15"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /><polyline
+       transform="matrix(0,1,-1,0,68.713086,28.705433)"
+       points="     1.934,33.936 7.063,27.852 12.194,33.936    "
+       id="polyline17"
+       style="fill:none;stroke:&fill_color;;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /></g></svg>
\ No newline at end of file
-- 
1.7.4.4



More information about the Sugar-devel mailing list