diff options
author | Agustin Zubiaga <aguz@sugarlabs.org> | 2012-05-10 02:23:40 (GMT) |
---|---|---|
committer | Agustin Zubiaga <aguz@sugarlabs.org> | 2012-05-10 02:23:40 (GMT) |
commit | d1c87cfdc444d15692421b207ae87384aeac1815 (patch) | |
tree | 73aabee95b2bc9c3cafd8683af3ab09027d3f191 | |
parent | c7185090f153c089d530a6596c120f1e272cd813 (diff) |
Toolbar redesign, Illustrate pallete
-rw-r--r-- | icons/alert-icon.svg | 71 | ||||
-rw-r--r-- | icons/dialog-icon.svg | 6 | ||||
-rw-r--r-- | icons/notify-alert-icon.svg | 105 | ||||
-rw-r--r-- | illustrate.py | 51 |
4 files changed, 226 insertions, 7 deletions
diff --git a/icons/alert-icon.svg b/icons/alert-icon.svg new file mode 100644 index 0000000..75fac6a --- /dev/null +++ b/icons/alert-icon.svg @@ -0,0 +1,71 @@ +<?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" + version="1.1" + width="55px" + height="55px" + id="svg2" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="dialog-icon.svg"> + <metadata + id="metadata14"> + <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="defs12" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="744" + id="namedview10" + showgrid="false" + inkscape:zoom="4.0014917" + inkscape:cx="30.944886" + inkscape:cy="25.607541" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + showguides="true" + inkscape:guide-bbox="true" + fit-margin-top="5" + fit-margin-left="5" + fit-margin-bottom="5" + fit-margin-right="5" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:3.05415082;stroke-linejoin:round;stroke-opacity:1" + d="m 48.06953,27.769832 a 21.079598,19.666916 0 0 1 -42.1591911,0 21.079598,19.666916 0 1 1 42.1591911,0 z" + id="path4" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:5.14514017;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 27.161618,15.154553 0.209126,17.372124 z" + id="path3801" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.89009589;stroke-opacity:1" + d="m 24.746663,39.080393 a 2.9093511,2.4508687 0 1 1 5.818701,0 2.9093511,2.4508687 0 0 1 -5.818701,0 z" + id="path3863" /> +</svg> diff --git a/icons/dialog-icon.svg b/icons/dialog-icon.svg index 2c273b3..1a45505 100644 --- a/icons/dialog-icon.svg +++ b/icons/dialog-icon.svg @@ -40,9 +40,9 @@ inkscape:window-height="744" id="namedview10" showgrid="false" - inkscape:zoom="4.2909091" - inkscape:cx="-11.807142" - inkscape:cy="25.602905" + inkscape:zoom="4.0014917" + inkscape:cx="30.944886" + inkscape:cy="25.607541" inkscape:window-x="0" inkscape:window-y="27" inkscape:window-maximized="1" diff --git a/icons/notify-alert-icon.svg b/icons/notify-alert-icon.svg new file mode 100644 index 0000000..4f5d52b --- /dev/null +++ b/icons/notify-alert-icon.svg @@ -0,0 +1,105 @@ +<?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" + version="1.1" + width="55px" + height="55px" + id="svg2" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="notify-alert-icon.svg"> + <metadata + id="metadata14"> + <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="defs12" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="744" + id="namedview10" + showgrid="false" + inkscape:zoom="4.0014917" + inkscape:cx="30.944886" + inkscape:cy="25.607541" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + showguides="true" + inkscape:guide-bbox="true" + fit-margin-top="5" + fit-margin-left="5" + fit-margin-bottom="5" + fit-margin-right="5" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.48807835999999982;stroke-linejoin:round;stroke-opacity:1" + d="m 39.855769,23.894545 a 17.114252,16.076363 0 0 1 -34.2285005,0 17.114252,16.076363 0 1 1 34.2285005,0 z" + id="path4" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:4.19151258000000038;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 22.880906,13.582415 0.169787,14.200527 z" + id="path3801" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.72512078000000002;stroke-opacity:1;fill-opacity:1" + d="m 20.920236,33.140158 a 2.3620644,2.0034181 0 1 1 4.724128,0 2.3620644,2.0034181 0 0 1 -4.724128,0 z" + id="path3863" /> + <path + sodipodi:type="arc" + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:3.02743053;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path2186" + sodipodi:cx="21.976866" + sodipodi:cy="21.815269" + sodipodi:rx="19.606812" + sodipodi:ry="19.768406" + d="m 41.583677,21.815269 a 19.606812,19.768406 0 1 1 -39.2136228,0 19.606812,19.768406 0 1 1 39.2136228,0 z" + transform="matrix(0.62306881,0,0,0.56656002,26.791801,24.600376)" /> + <path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1.19915104;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 30.927163,27.079711 -1.835494,1.883218" + id="path2188" + sodipodi:nodetypes="cc" /> + <path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1.19915104;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 40.349406,37.269799 8.729064,5.3932" + id="path4130" + sodipodi:nodetypes="cc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + id="path2211" + d="m 50.50573,27.415881 1.83549,1.88322" + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1.19915104;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + <path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1.19915104;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 37.598624,24.054168 6.235642,6.87e-4" + id="path2213" + sodipodi:nodetypes="cc" /> +</svg> diff --git a/illustrate.py b/illustrate.py index 5dc6a7d..c8fe839 100644 --- a/illustrate.py +++ b/illustrate.py @@ -35,7 +35,7 @@ from sugar.graphics.colorbutton import ColorToolButton from sugar.graphics.toolbarbox import ToolbarBox from sugar.graphics.toolbutton import ToolButton from sugar.graphics.objectchooser import ObjectChooser -from sugar.graphics.alert import NotifyAlert +from sugar.graphics.alert import Alert, NotifyAlert from helpbutton import HelpButton from dialogs import ExampleDialog @@ -78,15 +78,20 @@ class IllustrateActivity(activity.Activity): toolbarbox.toolbar.insert(activity_button, 0) separator = gtk.SeparatorToolItem() - separator.set_expand(True) - separator.set_draw(False) + separator.set_expand(False) + separator.set_draw(True) toolbarbox.toolbar.insert(separator, -1) dialog_btn = ToolButton("dialog-icon") - dialog_btn.set_tooltip(_("Show an example of a dialog")) + dialog_btn.set_tooltip(_("Dialog example")) dialog_btn.connect("clicked", self._show_example_dialog) toolbarbox.toolbar.insert(dialog_btn, -1) + alert_btn = ToolButton("alert-icon") + alert_btn.set_tooltip(_("Alert example")) + alert_btn.connect("clicked", self._show_example_alert) + toolbarbox.toolbar.insert(alert_btn, -1) + options_button = ToolbarButton(icon_name='preferences-system') options_toolbar = gtk.Toolbar() @@ -136,6 +141,24 @@ class IllustrateActivity(activity.Activity): self.show_all() self._create_canvas(canvas) + self._create_alert_btn_palette(alert_btn) + + def _create_alert_btn_palette(self, button): + palette = button.get_palette() + hbox = gtk.HBox() + + simple = ToolButton("alert-icon") + simple.connect("clicked", self._show_example_alert, False) + + notify = ToolButton("notify-alert-icon") + notify.connect("clicked", self._show_example_alert, True) + + hbox.pack_start(simple, False, True, 0) + hbox.pack_start(notify, False, True, 0) + + hbox.show_all() + + palette.set_content(hbox) def load_objectchooser(self, widget): chooser = ObjectChooser(parent=self, @@ -157,6 +180,26 @@ class IllustrateActivity(activity.Activity): def _show_example_dialog(self, widget): ExampleDialog() + def _show_example_alert(self, widget, notify=False): + if notify: + alert = NotifyAlert(10) + alert.props.title = _('Notify Alert') + + elif not notify: + alert = Alert() + ok_icon = Icon(icon_name='dialog-ok') + alert.add_button(gtk.RESPONSE_OK, _('Ok'), ok_icon) + ok_icon.show() + alert.props.title = _('Simple Alert') + + alert.props.msg = _('Message') + + alert.connect('response', lambda a, r: self.remove_alert(a)) + + self.add_alert(alert) + + alert.show() + def _set_fill_color(self, widget, pspec): self._icon.props.fill_color = rgb2html(widget.get_color()) |