Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPootle daemon <pootle@pootle.sugarlabs.org>2011-08-24 04:02:43 (GMT)
committer Pootle daemon <pootle@pootle.sugarlabs.org>2011-08-24 04:02:43 (GMT)
commit85e0b04b5b3e86c7820718fb8df1a5b3489a4b10 (patch)
tree47f33d1f9f94001c664bd6cbf6a04671950b5bc0
parent1146d4d85e064be4164f82770e79c573a906648a (diff)
parent96b41d62a0d7bef95a1ae5ae07ed4feca09a7fb2 (diff)
Merge branch 'master' of git.sugarlabs.org:abacus/mainline
-rw-r--r--AbacusActivity.py74
-rw-r--r--NEWS7
-rw-r--r--abacus_window.py3
-rw-r--r--activity/activity-abacus.svg203
-rw-r--r--activity/activity.info2
-rw-r--r--icons/abacus-list.svg119
-rw-r--r--icons/new-abacus.svg120
7 files changed, 313 insertions, 215 deletions
diff --git a/AbacusActivity.py b/AbacusActivity.py
index 6e16c2d..6e54889 100644
--- a/AbacusActivity.py
+++ b/AbacusActivity.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-#Copyright (c) 2010, Walter Bender
+#Copyright (c) 2010-11, Walter Bender
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,14 +19,15 @@ import gobject
import sugar
from sugar.activity import activity
try: # 0.86+ toolbar widgets
+ from sugar.graphics.toolbarbox import ToolbarBox
+ HAS_TOOLBARBOX = True
+except ImportError:
+ HAS_TOOLBARBOX = False
+if HAS_TOOLBARBOX:
from sugar.bundle.activitybundle import ActivityBundle
from sugar.activity.widgets import ActivityToolbarButton
from sugar.activity.widgets import StopButton
- from sugar.graphics.toolbarbox import ToolbarBox
from sugar.graphics.toolbarbox import ToolbarButton
- _new_sugar_system = True
-except ImportError:
- _new_sugar_system = False
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon
@@ -98,7 +99,7 @@ class AbacusActivity(activity.Activity):
def __init__(self, handle):
""" Initiate activity. """
- super(AbacusActivity,self).__init__(handle)
+ super(AbacusActivity, self).__init__(handle)
# no sharing
self.max_participants = 1
@@ -107,7 +108,7 @@ class AbacusActivity(activity.Activity):
custom_toolbar = gtk.Toolbar()
edit_toolbar = gtk.Toolbar()
- if _new_sugar_system:
+ if HAS_TOOLBARBOX:
# Use 0.86 toolbar design
toolbox = ToolbarBox()
@@ -115,13 +116,16 @@ class AbacusActivity(activity.Activity):
toolbox.toolbar.insert(activity_button, 0)
activity_button.show()
- self._basic_abacus(toolbox.toolbar)
-
- _separator_factory(toolbox.toolbar)
+ edit_toolbar_button = ToolbarButton(label=_('Edit'),
+ page=edit_toolbar,
+ icon_name='toolbar-edit')
+ edit_toolbar_button.show()
+ toolbox.toolbar.insert(edit_toolbar_button, -1)
+ edit_toolbar_button.show()
abacus_toolbar_button = ToolbarButton(
page=abacus_toolbar,
- icon_name='list-add')
+ icon_name='abacus-list')
abacus_toolbar.show()
toolbox.toolbar.insert(abacus_toolbar_button, -1)
abacus_toolbar_button.show()
@@ -133,13 +137,6 @@ class AbacusActivity(activity.Activity):
toolbox.toolbar.insert(custom_toolbar_button, -1)
custom_toolbar_button.show()
- edit_toolbar_button = ToolbarButton(label=_('Edit'),
- page=edit_toolbar,
- icon_name='toolbar-edit')
- edit_toolbar_button.show()
- toolbox.toolbar.insert(edit_toolbar_button, -1)
- edit_toolbar_button.show()
-
_separator_factory(toolbox.toolbar, True, False)
stop_button = StopButton(self)
@@ -159,8 +156,6 @@ class AbacusActivity(activity.Activity):
toolbox.add_toolbar( _('Custom'), custom_toolbar )
toolbox.add_toolbar(_('Edit'), edit_toolbar)
- self._basic_abacus(abacus_toolbar)
-
toolbox.set_current_toolbar(1)
# no sharing
@@ -169,29 +164,49 @@ class AbacusActivity(activity.Activity):
elif hasattr(toolbox, 'props'):
toolbox.props.visible = False
- # Add the buttons and spinners to the toolbars
+ # TRANS: simple decimal abacus
+ self.decimal = _button_factory("decimal-off", _('Decimal'),
+ self._decimal_cb, abacus_toolbar)
+
# TRANS: http://en.wikipedia.org/wiki/Soroban (Japanese abacus)
self.japanese = _button_factory("soroban-off", _('Soroban'),
self._japanese_cb, abacus_toolbar)
+
+ # TRANS: http://en.wikipedia.org/wiki/Suanpan (Chinese abacus)
+ self.chinese = _button_factory("suanpan-on", _('Suanpan'),
+ self._chinese_cb, abacus_toolbar)
+
+ _separator_factory(abacus_toolbar)
+
self.mayan = _button_factory("nepohualtzintzin-off",
# TRANS: http://en.wikipedia.org/wiki/Abacus#Native_American_abaci
_('Nepohualtzintzin'),
self._mayan_cb, abacus_toolbar)
+
# TRANS: hexidecimal abacus
self.hex = _button_factory("hexadecimal-off", _('Hexadecimal'),
self._hex_cb, abacus_toolbar)
+
# TRANS: binary abacus
self.binary = _button_factory("binary-off", _('Binary'),
self._binary_cb, abacus_toolbar)
+
+ _separator_factory(abacus_toolbar)
+
# TRANS: http://en.wikipedia.org/wiki/Abacus#Russian_abacus
self.russian = _button_factory("schety-off", _('Schety'),
self._russian_cb, abacus_toolbar)
+
# TRANS: abacus for adding fractions
self.fraction = _button_factory("fraction-off", _('Fraction'),
self._fraction_cb, abacus_toolbar)
+
# TRANS: Abacus invented by teachers in Caacupé, Paraguay
self.caacupe = _button_factory("caacupe-off", _('Caacupé'),
self._caacupe_cb, abacus_toolbar)
+
+ _separator_factory(abacus_toolbar)
+
# TRANS: Cuisenaire Rods
self.cuisenaire = _button_factory("cuisenaire-off", _('Rods'),
self._cuisenaire_cb, abacus_toolbar)
@@ -218,7 +233,9 @@ class AbacusActivity(activity.Activity):
self._base_spin = _spin_factory(10, 1, 24, self._base_spin_cb,
custom_toolbar)
- self.custom = _button_factory("new-game", _('Custom'),
+ _separator_factory(custom_toolbar, False, False)
+
+ self.custom = _button_factory("new-abacus", _('Custom'),
self._custom_cb, custom_toolbar)
copy = _button_factory('edit-copy', _('Copy'), self._copy_cb,
@@ -228,9 +245,7 @@ class AbacusActivity(activity.Activity):
self.toolbox.show()
- if _new_sugar_system:
- # workaround to #2050
- edit_toolbar_button.set_expanded(True)
+ if HAS_TOOLBARBOX:
# start with abacus toolbar expanded
abacus_toolbar_button.set_expanded(True)
@@ -287,15 +302,6 @@ class AbacusActivity(activity.Activity):
except:
pass
- def _basic_abacus(self, toolbar):
- """ Add Chinese and decimal abacuses to toolbar """
- # TRANS: http://en.wikipedia.org/wiki/Suanpan (Chinese abacus)
- self.chinese = _button_factory("suanpan-on", _('Suanpan'),
- self._chinese_cb, toolbar)
- # TRANS: simple decimal abacus
- self.decimal = _button_factory("decimal-off", _('Decimal'),
- self._decimal_cb, toolbar)
-
def _all_off(self):
""" Set all icons to 'off' and hide all of the abacuses """
self.chinese.set_icon("suanpan-off")
diff --git a/NEWS b/NEWS
index a9ecf61..4296080 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+22
+
+ENHANCEMENTS
+* new translations for de, hy, ku, nah, nl, and tzm
+* updated toolbars and icons
+* label text uses ellipsis instead of shrinking
+
21
BUG FIX
diff --git a/abacus_window.py b/abacus_window.py
index e3a9499..e1070f1 100644
--- a/abacus_window.py
+++ b/abacus_window.py
@@ -300,7 +300,7 @@ class Abacus():
self.width = gtk.gdk.screen_width()
self.height = gtk.gdk.screen_height() - GRID_CELL_SIZE
self.sprites = Sprites(self.canvas)
- self.scale = gtk.gdk.screen_height() / 900.0
+ self.scale = 1.33 * gtk.gdk.screen_height() / 900.0
self.dragpos = 0
self.press = None
self.last = None
@@ -595,6 +595,7 @@ class AbacusGeneric():
_svg_str_to_pixbuf(bar))
self.bar.type = 'frame'
+ self.bar.set_label_attributes(12, rescale=False)
self.bar.set_label_color('white')
# and finally, the mark.
diff --git a/activity/activity-abacus.svg b/activity/activity-abacus.svg
index 8e4e512..1b676e0 100644
--- a/activity/activity-abacus.svg
+++ b/activity/activity-abacus.svg
@@ -1,187 +1,32 @@
<?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" [
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY fill_color "#AAAAAA">
- <!ENTITY stroke_color "#000000">
+ <!ENTITY stroke_color "#333333">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="45" height="45">
- <rect
- width="37.959229"
- height="43"
- x="-41.478813"
- y="1"
- transform="matrix(0,-1,1,0,0,0)"
- id="rect4"
- style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2" />
- <line
- y1="14"
- y2="14"
- x1="43.966454"
- x2="1.0335478"
- style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"
- id="line10-4" />
- <g
- transform="translate(82.754238,28.792372)"
- id="g3788">
- <g
- transform="translate(-14.555086,-5.2669489)"
- id="g3690">
- <line
- y1="15.974576"
- y2="-18.025423"
- x1="-50.911018"
- x2="-50.911018"
- style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2;stroke-miterlimit:0;stroke-dasharray:none"
- id="line10" />
- <g
- transform="translate(0,0.94158681)"
- id="g3684">
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,9.5844131)"
- id="path3633"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,15.084513)"
- id="path3633-7"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,20.584613)"
- id="path3633-5"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,26.084713)"
- id="path3633-3"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </g>
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,-3.4736993)"
- id="path3633-4"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <g id="g4257">
+ <rect width="36.336506" height="36.768715" x="-40.668255" y="4.1156425" transform="matrix(0, -1, 1, 0, 0, 0)" id="rect4" style="fill:&fill_color;; stroke: &stroke_color;; stroke-width: 3.5; stroke-linejoin: round; stroke-miterlimit: 1.6; stroke-dasharray: none;"/>
+ <line id="line10-4" style="fill:&fill_color;; stroke: &stroke_color;; stroke-width: 2.44068; stroke-miterlimit: 1.6; stroke-dasharray: none;" x2="4.1531162" x1="39.768688" y2="16.316952" y1="16.316952"/>
+ <g id="g4243">
+ <line y1="39.687382" y2="4.7600164" x1="22.309881" x2="22.309881" style="fill:&fill_color;; stroke: &stroke_color;; stroke-width: 2.5; stroke-miterlimit: 1.6; stroke-dasharray: none;" id="line10"/>
+ <path d="m 26.777977,23.580047 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z" id="path3633" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 26.777977,29.723792 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z" id="path3633-7" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 26.777977,35.867536 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z" id="path3633-5" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 26.777977,9.1787679 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z" id="path3633-4" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
</g>
- <g
- transform="translate(-4.1313576,-5.2669489)"
- id="g3690-5">
- <line
- y1="15.974576"
- y2="-18.025423"
- x1="-50.911018"
- x2="-50.911018"
- style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2;stroke-miterlimit:0;stroke-dasharray:none"
- id="line10-2" />
- <g
- transform="translate(0,0.94158681)"
- id="g3684-5">
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,9.5844131)"
- id="path3633-47"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,15.084513)"
- id="path3633-7-4"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,20.584613)"
- id="path3633-5-4"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,26.084713)"
- id="path3633-3-3"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </g>
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,-3.4736993)"
- id="path3633-4-0"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <g id="g4250">
+ <line y1="39.687382" y2="4.7600164" x1="32.840122" x2="32.840122" style="fill:&fill_color;; stroke: &stroke_color;; stroke-width: 2.5; stroke-miterlimit: 1.6; stroke-dasharray: none;" id="line10-2"/>
+ <path d="m 37.308212,23.580047 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z" id="path3633-47" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 37.308212,29.723792 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z" id="path3633-7-4" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 37.308212,35.867536 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z" id="path3633-5-4" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 37.308212,9.1787679 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z" id="path3633-4-0" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
</g>
- <g
- transform="translate(6.2923724,-5.2669489)"
- id="g3690-8">
- <line
- y1="15.974576"
- y2="-18.025423"
- x1="-50.911018"
- x2="-50.911018"
- style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2;stroke-miterlimit:0;stroke-dasharray:none"
- id="line10-6" />
- <g
- transform="translate(0,0.94158681)"
- id="g3684-8">
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,9.5844131)"
- id="path3633-8"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,15.084513)"
- id="path3633-7-43"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,20.584613)"
- id="path3633-5-1"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,26.084713)"
- id="path3633-3-4"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </g>
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,-3.4736993)"
- id="path3633-4-9"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </g>
- <g
- transform="translate(-24.978814,-5.2669489)"
- id="g3690-0">
- <line
- y1="15.974576"
- y2="-18.025423"
- x1="-50.911018"
- x2="-50.911018"
- style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2;stroke-miterlimit:0;stroke-dasharray:none"
- id="line10-68" />
- <g
- transform="translate(0,0.94158681)"
- id="g3684-9">
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,9.5844131)"
- id="path3633-2"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,15.084513)"
- id="path3633-7-6"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,20.584613)"
- id="path3633-5-6"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,26.084713)"
- id="path3633-3-49"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </g>
- <path
- d="m -62.542371,-12.870763 a 4.0042372,2.7648306 0 1 1 -8.008474,0 4.0042372,2.7648306 0 1 1 8.008474,0 z"
- transform="matrix(0.99894183,0,0,0.99463598,15.565173,-3.4736993)"
- id="path3633-4-5"
- style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <g id="g4236">
+ <line y1="39.687382" y2="4.7600164" x1="11.779644" x2="11.779644" style="fill:&fill_color;; stroke: &stroke_color;; stroke-width: 2.5; stroke-miterlimit: 1.6; stroke-dasharray: none;" id="line10-68"/>
+ <path d="m 16.247742,23.580047 a 4.4680964,3.0718163 0 1 1 -8.9361898,0 4.4680964,3.0718163 0 1 1 8.9361898,0 z" id="path3633-2" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 16.247742,29.723792 a 4.4680964,3.0718163 0 1 1 -8.9361898,0 4.4680964,3.0718163 0 1 1 8.9361898,0 z" id="path3633-7-6" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 16.247742,35.867536 a 4.4680964,3.0718163 0 1 1 -8.9361898,0 4.4680964,3.0718163 0 1 1 8.9361898,0 z" id="path3633-5-6" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
+ <path d="m 16.247742,9.1787679 a 4.4680964,3.0718163 0 1 1 -8.9361898,0 4.4680964,3.0718163 0 1 1 8.9361898,0 z" id="path3633-4-5" style="fill: &stroke_color;; fill-opacity: 1; fill-rule: nonzero; stroke: none;"/>
</g>
</g>
-</svg>
+</svg> \ No newline at end of file
diff --git a/activity/activity.info b/activity/activity.info
index ce00247..20201a5 100644
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -1,6 +1,6 @@
[Activity]
name = Abacus
-activity_version = 21
+activity_version = 22
license = GPLv3
bundle_id = org.sugarlabs.AbacusActivity
exec = sugar-activity AbacusActivity.AbacusActivity
diff --git a/icons/abacus-list.svg b/icons/abacus-list.svg
new file mode 100644
index 0000000..3a2c844
--- /dev/null
+++ b/icons/abacus-list.svg
@@ -0,0 +1,119 @@
+<?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"
+ version="1.1"
+ width="55.125"
+ height="55"
+ viewBox="0 0 55.125 55"
+ id="svg4477"
+ xml:space="preserve"><metadata
+ id="metadata4486"><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><defs
+ id="defs4484">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </defs><g
+ transform="matrix(1.08,0,0,1.08,-4.2400002,-0.1600003)"
+ id="g3795"><rect
+ width="22.558769"
+ height="22.827097"
+ x="-25.913549"
+ y="29.086451"
+ transform="matrix(0,-1,1,0,0,0)"
+ id="rect4-6"
+ style="fill:none;stroke:#ffffff;stroke-width:2.17290282;stroke-linejoin:round;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none" /><line
+ y1="10.795544"
+ y2="10.795544"
+ x1="51.220909"
+ x2="29.109716"
+ style="fill:#aaaaaa;stroke:#ffffff;stroke-width:1.5152458;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-4-3" /><line
+ y1="25.304594"
+ y2="3.6206589"
+ x1="40.381969"
+ x2="40.381969"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.55207336;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-8" /><path
+ d="m 43.155894,15.304686 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-56"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 43.155894,19.118904 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-7-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 43.155894,22.93312 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-5-15"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 43.155894,6.3639495 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-4-98"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><line
+ y1="25.304594"
+ y2="3.6206589"
+ x1="46.919453"
+ x2="46.919453"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.55207336;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-2-4" /><path
+ d="m 49.693373,15.304686 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-47-8"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 49.693373,19.118904 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-7-4-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 49.693373,22.93312 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-5-4-0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 49.693373,6.3639495 a 2.7739254,1.9070737 0 1 1 -5.54785,0 2.7739254,1.9070737 0 1 1 5.54785,0 z"
+ id="path3633-4-0-3"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><line
+ y1="25.304594"
+ y2="3.6206589"
+ x1="33.844486"
+ x2="33.844486"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.55207336;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-68-0" /><path
+ d="m 36.618415,15.304686 a 2.7739254,1.9070737 0 1 1 -5.547849,0 2.7739254,1.9070737 0 1 1 5.547849,0 z"
+ id="path3633-2-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 36.618415,19.118904 a 2.7739254,1.9070737 0 1 1 -5.547849,0 2.7739254,1.9070737 0 1 1 5.547849,0 z"
+ id="path3633-7-6-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 36.618415,22.93312 a 2.7739254,1.9070737 0 1 1 -5.547849,0 2.7739254,1.9070737 0 1 1 5.547849,0 z"
+ id="path3633-5-6-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
+ d="m 36.618415,6.3639495 a 2.7739254,1.9070737 0 1 1 -5.547849,0 2.7739254,1.9070737 0 1 1 5.547849,0 z"
+ id="path3633-4-5-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
+ transform="translate(-0.2743801,0.51351)"
+ id="g3036"><path
+ d="M 9.5689397,38.952218 9.3902171,32.897964 M 25.663656,50.969805 3.6345541,51.23649 3.5243801,39.2454 l 5.851406,-6.358972 21.2578909,0 -0.110174,12.124478 z M 3.6345541,39.378743 l 21.4782339,0.266685 0.33052,10.924347 m -0.306426,-11.052011 5.531132,-6.638311"
+ id="path3806"
+ style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /><g
+ transform="matrix(0,-1,-1,0,47.3087,85.9835)"
+ id="g4770"><g
+ transform="translate(34.0803,-1006.42)"
+ id="g4772"><polyline
+ id="polyline4774"
+ points="51.562,15.306 41.17,16.188 42.053,5.794"
+ style="fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(-0.469241,0.469241,-0.469241,-0.469241,66.2906,1019.03)" /><path
+ d="m 39.363241,1033.1291 -0.05636,9.9115 -8.750608,0.067"
+ id="path4776"
+ style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g></g></svg> \ No newline at end of file
diff --git a/icons/new-abacus.svg b/icons/new-abacus.svg
new file mode 100644
index 0000000..a5569cd
--- /dev/null
+++ b/icons/new-abacus.svg
@@ -0,0 +1,120 @@
+<?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"
+ version="1.1"
+ width="55"
+ height="55"
+ id="svg2">
+ <metadata
+ id="metadata9">
+ <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>
+ <defs
+ id="defs7" />
+ <g
+ transform="translate(0.88146257,0.890625)"
+ id="g3954">
+ <rect
+ width="36.336506"
+ height="36.768715"
+ x="-40.359375"
+ y="4.8685374"
+ transform="matrix(0,-1,1,0,0,0)"
+ id="rect4-6"
+ style="fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linejoin:round;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none" />
+ <line
+ y1="16.00807"
+ y2="16.00807"
+ x1="40.521584"
+ x2="4.906013"
+ style="fill:#aaaaaa;stroke:#ffffff;stroke-width:2.44068003;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-4-3" />
+ <line
+ y1="39.378502"
+ y2="4.4511342"
+ x1="23.062778"
+ x2="23.062778"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-8" />
+ <path
+ d="m 27.530873,23.271165 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z"
+ id="path3633-56"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 27.530873,29.41491 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z"
+ id="path3633-7-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 27.530873,35.558654 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z"
+ id="path3633-5-15"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 27.530873,8.8698857 a 4.4680964,3.0718163 0 1 1 -8.936192,0 4.4680964,3.0718163 0 1 1 8.936192,0 z"
+ id="path3633-4-98"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <line
+ y1="39.378502"
+ y2="4.4511342"
+ x1="33.593018"
+ x2="33.593018"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-2-4" />
+ <path
+ d="m 38.061108,23.271165 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z"
+ id="path3633-47-8"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 38.061108,29.41491 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z"
+ id="path3633-7-4-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 38.061108,35.558654 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z"
+ id="path3633-5-4-0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 38.061108,8.8698857 a 4.4680964,3.0718163 0 1 1 -8.936191,0 4.4680964,3.0718163 0 1 1 8.936191,0 z"
+ id="path3633-4-0-3"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <line
+ y1="39.378502"
+ y2="4.4511342"
+ x1="12.532538"
+ x2="12.532538"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:1.60000002;stroke-opacity:1;stroke-dasharray:none"
+ id="line10-68-0" />
+ <path
+ d="m 17.000638,23.271165 a 4.4680964,3.0718163 0 1 1 -8.93619,0 4.4680964,3.0718163 0 1 1 8.93619,0 z"
+ id="path3633-2-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 17.000638,29.41491 a 4.4680964,3.0718163 0 1 1 -8.93619,0 4.4680964,3.0718163 0 1 1 8.93619,0 z"
+ id="path3633-7-6-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 17.000638,35.558654 a 4.4680964,3.0718163 0 1 1 -8.93619,0 4.4680964,3.0718163 0 1 1 8.93619,0 z"
+ id="path3633-5-6-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 17.000638,8.8698857 a 4.4680964,3.0718163 0 1 1 -8.93619,0 4.4680964,3.0718163 0 1 1 8.93619,0 z"
+ id="path3633-4-5-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ </g>
+ <path
+ d="m 42.645186,31.124796 c -1.10877,0 -2.018763,0.909992 -2.018763,2.018761 l 0,4.629689 -3.283849,-3.283849 c -0.784855,-0.783184 -2.043082,-0.78485 -2.826264,0 -0.783183,0.784854 -0.784823,2.069998 0,2.85318 l 3.310766,3.28385 -4.683521,0 c -1.10877,0 -2.018762,0.909991 -2.018762,2.018762 0,1.108769 0.909992,1.991843 2.018762,1.991843 l 4.656605,0 -3.28385,3.283849 c -0.783181,0.784854 -0.784823,2.069999 0,2.85318 0.784855,0.783182 2.07,0.757938 2.85318,-0.02692 l 3.256933,-3.283849 0,4.683524 c 0,1.10877 0.909993,1.991844 2.018763,1.991844 1.108769,0 1.991843,-0.883074 1.991843,-1.991844 l 0,-4.71044 3.337683,3.310765 c 0.784853,0.783182 2.043082,0.784855 2.826262,0 0.783182,-0.784853 0.784858,-2.043082 0,-2.826262 l -3.310765,-3.28385 4.656607,0 c 1.10877,0 1.991844,-0.883074 1.991844,-1.991843 0,-1.108771 -0.883074,-2.018763 -1.991844,-2.018763 l -4.683523,0 3.310765,-3.337683 c 0.783182,-0.784854 0.784857,-2.016165 0,-2.799347 -0.784854,-0.78318 -2.043082,-0.811775 -2.826263,-0.02691 l -3.310766,3.337682 0,-4.656604 c 0,-1.10877 -0.883074,-2.018763 -1.991843,-2.018763 z"
+ id="rect3894"
+ style="fill:#ffffff;fill-opacity:1;stroke:#282828;stroke-width:1.72267997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+</svg>