[Sugar-devel] [PATCH Memorize] Use RadioMenuButton instead ComboBox to change the board size
Manuel Kaufmann
humitos at gmail.com
Fri Aug 24 10:27:38 EDT 2012
ComboBox doesn't work properly and this have a bad impact on touch
screen. We decided to use RadioMenuButton instead of ComboBox because
it make easier changing the board size.
Signed-off-by: Manuel Kaufmann <humitos at gmail.com>
---
icons/4 X 4.svg | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
icons/5 X 5.svg | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
icons/6 X 6.svg | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
icons/change_size.svg | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
memorizetoolbar.py | 16 ++++++----
5 files changed, 361 insertions(+), 7 deletions(-)
create mode 100644 icons/4 X 4.svg
create mode 100644 icons/5 X 5.svg
create mode 100644 icons/6 X 6.svg
create mode 100644 icons/change_size.svg
diff --git a/icons/4 X 4.svg b/icons/4 X 4.svg
new file mode 100644
index 0000000..68c8551
--- /dev/null
+++ b/icons/4 X 4.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="42"
+ height="42"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ version="1.0"
+ sodipodi:docname="4 X 4.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8.65364"
+ inkscape:cx="1.7881141"
+ inkscape:cy="16.282349"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="42px"
+ height="42px"
+ inkscape:window-width="1152"
+ inkscape:window-height="740"
+ inkscape:window-x="151"
+ inkscape:window-y="307"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <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
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect7017"
+ width="30.046175"
+ height="30.046175"
+ x="9.9769115"
+ y="1.9769124"
+ ry="4.5299301" />
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3133"
+ width="30.046175"
+ height="30.046175"
+ x="1.9769125"
+ y="9.9769125"
+ ry="4.5299301" />
+ <text
+ xml:space="preserve"
+ style="font-size:28.78175545px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+ x="7.9494867"
+ y="35.491005"
+ id="text3009"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3011"
+ x="7.9494867"
+ y="35.491005"
+ style="fill:#ffffff;stroke:none">4</tspan></text>
+ </g>
+</svg>
diff --git a/icons/5 X 5.svg b/icons/5 X 5.svg
new file mode 100644
index 0000000..b5cff16
--- /dev/null
+++ b/icons/5 X 5.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="42"
+ height="42"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ version="1.0"
+ sodipodi:docname="4 X 4.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8.65364"
+ inkscape:cx="1.7881141"
+ inkscape:cy="16.282349"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="42px"
+ height="42px"
+ inkscape:window-width="1152"
+ inkscape:window-height="740"
+ inkscape:window-x="151"
+ inkscape:window-y="307"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <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
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect7017"
+ width="30.046175"
+ height="30.046175"
+ x="9.9769115"
+ y="1.9769124"
+ ry="4.5299301" />
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3133"
+ width="30.046175"
+ height="30.046175"
+ x="1.9769125"
+ y="9.9769125"
+ ry="4.5299301" />
+ <text
+ xml:space="preserve"
+ style="font-size:28.78175545px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+ x="7.9494867"
+ y="35.491005"
+ id="text3009"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3011"
+ x="7.9494867"
+ y="35.491005"
+ style="fill:#ffffff;stroke:none">5</tspan></text>
+ </g>
+</svg>
diff --git a/icons/6 X 6.svg b/icons/6 X 6.svg
new file mode 100644
index 0000000..cda5de9
--- /dev/null
+++ b/icons/6 X 6.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="42"
+ height="42"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ version="1.0"
+ sodipodi:docname="5 X 5.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8.65364"
+ inkscape:cx="1.7881141"
+ inkscape:cy="16.282349"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="42px"
+ height="42px"
+ inkscape:window-width="1152"
+ inkscape:window-height="740"
+ inkscape:window-x="151"
+ inkscape:window-y="307"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <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
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect7017"
+ width="30.046175"
+ height="30.046175"
+ x="9.9769115"
+ y="1.9769124"
+ ry="4.5299301" />
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3133"
+ width="30.046175"
+ height="30.046175"
+ x="1.9769125"
+ y="9.9769125"
+ ry="4.5299301" />
+ <text
+ xml:space="preserve"
+ style="font-size:28.78175545px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+ x="7.9494867"
+ y="35.491005"
+ id="text3009"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3011"
+ x="7.9494867"
+ y="35.491005"
+ style="fill:#ffffff;stroke:none">6</tspan></text>
+ </g>
+</svg>
diff --git a/icons/change_size.svg b/icons/change_size.svg
new file mode 100644
index 0000000..0336d4b
--- /dev/null
+++ b/icons/change_size.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="42"
+ height="42"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ version="1.0"
+ sodipodi:docname="change_size.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8.65364"
+ inkscape:cx="2.1138261"
+ inkscape:cy="16.282349"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="42px"
+ height="42px"
+ inkscape:window-width="1152"
+ inkscape:window-height="740"
+ inkscape:window-x="151"
+ inkscape:window-y="307"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <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
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect7017"
+ width="30.046175"
+ height="30.046175"
+ x="9.9769115"
+ y="1.9769124"
+ ry="4.5299301" />
+ <rect
+ style="fill:#4c4d4f;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3133"
+ width="30.046175"
+ height="30.046175"
+ x="1.9769125"
+ y="9.9769125"
+ ry="4.5299301" />
+ <text
+ xml:space="preserve"
+ style="font-size:28.78175545px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+ x="9.333766"
+ y="35.680729"
+ id="text3009"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3011"
+ x="9.333766"
+ y="35.680729"
+ style="fill:#ffffff;stroke:none">?</tspan></text>
+ </g>
+</svg>
diff --git a/memorizetoolbar.py b/memorizetoolbar.py
index c7e4366..916c0d4 100644
--- a/memorizetoolbar.py
+++ b/memorizetoolbar.py
@@ -67,14 +67,16 @@ class MemorizeToolbarBuilder(gobject.GObject):
self.toolbar.insert(self._demo_games, -1)
# Change size combobox
- self._size_combo = ToolComboBox()
+ self._size_combo = RadioMenuButton(icon_name='change_size')
+ self._size_combo.props.tooltip = _('Change size')
self._sizes = ['4 X 4', '5 X 5', '6 X 6']
+
for i, f in enumerate(self._sizes):
- self._size_combo.combo.append_item(i, f)
- self.size_handle_id = self._size_combo.combo.connect( \
- 'changed', self._game_size_cb)
+ menu_item = MenuItem(f, icon_name=self._sizes[i])
+ menu_item.connect('activate', self._game_size_cb, i)
+ self._size_combo.props.palette.menu.append(menu_item)
+ menu_item.show()
self.toolbar.insert(self._size_combo, -1)
- self._size_combo.combo.set_active(0)
# Reset Button
self._restart_button = ToolButton('game-new')
@@ -92,8 +94,8 @@ class MemorizeToolbarBuilder(gobject.GObject):
self._demo_games.set_sensitive(active)
self._restart_button.set_sensitive(active)
- def _game_size_cb(self, widget):
- game_size = int(self._sizes[self._size_combo.combo.get_active()][0])
+ def _game_size_cb(self, widget, i):
+ game_size = int(self._sizes[i][0])
self.emit('game_changed', None, game_size, 'size', None, None)
def __activate_game_cb(self, menu, i):
--
1.7.11.4
More information about the Sugar-devel
mailing list