[Sugar-devel] [PATCH Memorize] Use RadioMenuButton instead ComboBox to change the board size

Gonzalo Odiard gonzalo at laptop.org
Mon Sep 3 10:56:42 EDT 2012


Pushed and published

Gonzalo

On Fri, Aug 24, 2012 at 11:27 AM, Manuel Kaufmann <humitos at gmail.com> wrote:

> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20120903/d7510da7/attachment-0001.html>


More information about the Sugar-devel mailing list