I've attached two patches: (1) a new touchpad section for the control panel and (2) new icons for sugar-artwork used by the control panel.
The idea is that on the CL1 OLPC XO 1.0 laptops, we want to give a choice of either the resistive or capacitive touchpads on the theory that the resistive touchpad may be easier to use in situations where the capacitive touchpad is problematic. This patch looks for the existence of the node "/sys/devices/platform/i8042/serio1/ptmode" and will only appear in the Control Panel if this node is present (just the CL1 version of the XO 1.0). We still need a script t be added to olpc-utils that is executed at boot time to: (1) change the mode of /sys/devices/platform/i8042/serio1/ptmode to 666; and (2) write a 1 to that node if a flag file exists ("/home/olpc/.olpc-pentablet-mode"). I plan to make a few adjustments to the icons (e.g., use the current XO colors, for example), but wanted to make this version available for testing ASAP. enjoy. -walter --- Walter Bender Sugar Labs http://www.sugarlabs.org
From 96d9a22d2f6d85956a64cfe4c6b92cc3836d7105 Mon Sep 17 00:00:00 2001 From: Walter Bender <wal...@sugarlabs.org> Date: Tue, 18 May 2010 15:48:04 -0400 Subject: [PATCH] adding touchpad section to CP --- data/icons/Makefile.am | 1 + data/icons/module-touchpad.svg | 36 ++++++ extensions/cpsection/Makefile.am | 2 +- extensions/cpsection/touchpad/Makefile.am | 6 + extensions/cpsection/touchpad/__init__.py | 24 ++++ extensions/cpsection/touchpad/model.py | 44 +++++++ extensions/cpsection/touchpad/view.py | 185 +++++++++++++++++++++++++++++ 7 files changed, 297 insertions(+), 1 deletions(-) create mode 100644 data/icons/module-touchpad.svg create mode 100644 extensions/cpsection/touchpad/Makefile.am create mode 100644 extensions/cpsection/touchpad/__init__.py create mode 100644 extensions/cpsection/touchpad/model.py create mode 100644 extensions/cpsection/touchpad/view.py diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index a35643a..b65b34e 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -10,6 +10,7 @@ sugar_DATA = \ module-modemconfiguration.svg \ module-network.svg \ module-power.svg \ + module-touchpad.svg \ module-updater.svg EXTRA_DIST = $(sugar_DATA) diff --git a/data/icons/module-touchpad.svg b/data/icons/module-touchpad.svg new file mode 100644 index 0000000..5794fd7 --- /dev/null +++ b/data/icons/module-touchpad.svg @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="Layer_1" + xml:space="preserve"><defs + id="defs2829" /> +<g + transform="translate(0,-3.9)" + id="g2817"> +</g> + + + +<g + transform="translate(0,4.3506441)" + id="g2928"><g + transform="translate(0,-20)" + id="g2819"> +<path + d="m 2.934,28.664 0,18.209 49.391,0 0,-18.209 -49.391,0 z M 36,45.833 l -17,0 0,-16.129 17,0 0,16.129 z" + id="path2821" + style="fill:#ffffff;stroke:#666666;stroke-width:2" /> +</g><path + d="m 46.742465,3.78755 -5.095999,6.747499 -1.044001,1.3585 -1.7375,4.133 c -0.023,0.052 -0.009,0.1115 0.0345,0.1475 0.0445,0.036 0.1055,0.042 0.1535,0.01 l 3.913,-2.5185 c 0.0055,-0.004 0.0055,-0.0135 0.011,-0.0215 0.0325,-0.0245 0.071,-0.046 0.098,-0.081 0.0015,-10e-4 0.017,-0.0205 0.017,-0.0245 l 0.9155,-1.1355 2.7345,-3.527 4.005501,-5.164499 c 0.011,-0.0115 0.0745,-0.1015 0.0745,-0.1015 0.048,-0.0805 0.074,-0.1725 0.074,-0.278 0,-0.0305 0,-0.059 -0.006,-0.088 -0.0435,-0.3815 -0.357501,-0.841 -0.819501,-1.2065 -0.4615,-0.364 -0.9845,-0.5615 -1.364,-0.517 -0.163,0.021 -0.3945,0.1875 -0.3945,0.1875 l -1.5695,2.0795 z" + id="path2823" + style="fill:#ffffff;stroke:#666666;stroke-width:1.5" /><path + d="m 22.817123,44.784359 c 0,0 -3.23492,-8.766448 -3.243008,-9.837791 -0.0135,-1.797291 -2.398098,-2.342156 -2.398098,-2.342156 0,0 -0.621319,-2.249376 0,-2.770053 0.656117,-0.549837 2.934483,-0.629824 3.735004,0.330634 l 2.413094,2.895211 0,-12.75 c 0,0 0.888891,-1.589214 1.643962,-1.454545 0.745806,0.133019 1.356038,1.454545 1.356038,1.454545 l 0,10.5 0,-4.5 c 0,0 0.947828,-0.746067 1.5,-0.75 0.552172,-0.0039 1.5,0.75 1.5,0.75 l 0,4.5 0,-3.75 c 0,0 0.675747,-0.758712 1.5,-0.75 0.824253,0.0087 1.5,0.568182 1.5,0.568182 l 0,3.931818 0,-3 c 0,0 0.857274,-0.33549 1.5,-0.375 0.526597,-0.03237 1.448303,0.97351 1.5,1.575 0.220672,2.567514 0.969363,5.350927 0.823983,7.574377 -0.100086,1.53071 -0.67874,8.199778 -2.212713,8.199778 l -11.118262,0 z" + id="path2825" + style="fill:#ffffff;stroke:#666666;stroke-width:1.5" /></g></svg> \ No newline at end of file diff --git a/extensions/cpsection/Makefile.am b/extensions/cpsection/Makefile.am index a92b5dd..4cf1718 100644 --- a/extensions/cpsection/Makefile.am +++ b/extensions/cpsection/Makefile.am @@ -1,5 +1,5 @@ SUBDIRS = aboutme aboutcomputer datetime frame keyboard language \ - modemconfiguration network power updater + modemconfiguration network power touchpad updater sugardir = $(pkgdatadir)/extensions/cpsection sugar_PYTHON = __init__.py diff --git a/extensions/cpsection/touchpad/Makefile.am b/extensions/cpsection/touchpad/Makefile.am new file mode 100644 index 0000000..fd83e2f --- /dev/null +++ b/extensions/cpsection/touchpad/Makefile.am @@ -0,0 +1,6 @@ +sugardir = $(pkgdatadir)/extensions/cpsection/touchpad + +sugar_PYTHON = \ + __init__.py \ + model.py \ + view.py diff --git a/extensions/cpsection/touchpad/__init__.py b/extensions/cpsection/touchpad/__init__.py new file mode 100644 index 0000000..b06e550 --- /dev/null +++ b/extensions/cpsection/touchpad/__init__.py @@ -0,0 +1,24 @@ +# Copyright (C) 2008, OLPC +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +from gettext import gettext as _ +from os import path + +if path.exists('/sys/devices/platform/i8042/serio1/ptmode'): + CLASS = 'Touchpad' + ICON = 'module-touchpad' + TITLE = _('Touchpad') + KEYWORDS = ['touchpad'] diff --git a/extensions/cpsection/touchpad/model.py b/extensions/cpsection/touchpad/model.py new file mode 100644 index 0000000..5036211 --- /dev/null +++ b/extensions/cpsection/touchpad/model.py @@ -0,0 +1,44 @@ +# Copyright (C) 2010, Walter Bender, Sugar Labs +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +from gettext import gettext as _ +from os import system, path + +_CAPACITIVE = 0 +_RESISTIVE = 1 + +def get_touchpad(): + """Get the touchpad mode.""" + if path.exists('/home/olpc/.olpc-pentablet-mode'): + return _RESISTIVE + else: + return _CAPACITIVE + +def set_touchpad(touchpad): + """Set the touchpad mode.""" + if touchpad == _CAPACITIVE: + system("rm /home/olpc/.olpc-pentablet-mode") + else: + system("touch /home/olpc/.olpc-pentablet-mode") + return 1 + +def print_touchpad(): + """Print the future touchpad mode.""" + if get_touchpad == _CAPACITIVE: + print _('Touchpad will be set to finger mode on next reboot.') + else: + print _('Touchpad will be set to stylus mode on next reboot.') + diff --git a/extensions/cpsection/touchpad/view.py b/extensions/cpsection/touchpad/view.py new file mode 100644 index 0000000..7b5c3b4 --- /dev/null +++ b/extensions/cpsection/touchpad/view.py @@ -0,0 +1,185 @@ +# Copyright (C) 2008, OLPC +# Copyright (C) 2010, Walter Bender, Sugar Labs +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import gtk +import gobject +from gettext import gettext as _ + +from sugar.graphics.icon import Icon +from sugar.graphics import style + +from jarabe.controlpanel.sectionview import SectionView +from jarabe.controlpanel.inlinealert import InlineAlert + +_CAPACITIVE = 0 +_RESISTIVE = 1 + +class TouchpadEventIcon(gtk.EventBox): + """A subclass of the Sugar Event Icon""" + __gtype_name__ = "SugarEventIcon" + + def __init__(self, **kwargs): + """Create an extra-large, clickable icon.""" + gtk.EventBox.__init__(self) + + self.icon = Icon(pixel_size = style.XLARGE_ICON_SIZE, **kwargs) + + self.set_visible_window(False) + self.set_app_paintable(True) + self.set_events(gtk.gdk.BUTTON_PRESS_MASK) + + self.add(self.icon) + self.icon.show() + +class TouchpadPicker(TouchpadEventIcon): + """A class for the touchpad selection buttons""" + __gsignals__ = { + 'touchpad-changed': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, + ([object])) + } + + def __init__(self, touchpad_mode): + """Create icons for the touchpad mode buttons.""" + TouchpadEventIcon.__init__(self) + + if touchpad_mode == _CAPACITIVE: + self.icon.props.icon_name = 'capacitive-off' + else: + self.icon.props.icon_name = 'resistive-off' + self._touchpad_mode = touchpad_mode + + self.icon.props.pixel_size = style.XLARGE_ICON_SIZE + + self.connect('button_press_event', self.__pressed_cb, touchpad_mode) + + def update(self, touchpad): + """Update the button states.""" + if self._touchpad_mode == _CAPACITIVE: + if touchpad == _CAPACITIVE: + self.icon.props.icon_name = 'capacitive-on' + else: + self.icon.props.icon_name = 'capacitive-off' + elif self._touchpad_mode == _RESISTIVE: + if touchpad == _RESISTIVE: + self.icon.props.icon_name = 'resistive-on' + else: + self.icon.props.icon_name = 'resistive-off' + + def __pressed_cb(self, button, event, touchpad_mode): + """Callback for button click.""" + self.emit('touchpad-changed', touchpad_mode) + +class Touchpad(SectionView): + """A class for the touchpad selection panel""" + + def __init__(self, model, alerts): + """ Create the touchpad panel.""" + SectionView.__init__(self) + + self._model = model + self.restart_alerts = alerts + self._handlers = [] + + self.set_border_width(style.DEFAULT_SPACING * 2) + self.set_spacing(style.DEFAULT_SPACING) + self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) + + self._touchpad_label = gtk.HBox(spacing=style.DEFAULT_SPACING) + self._touchpad_box = gtk.HBox(spacing=style.DEFAULT_SPACING) + self._touchpad_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING) + self._touchpad_alert = None + + self._pickers = { + _CAPACITIVE: TouchpadPicker(_CAPACITIVE), + _RESISTIVE: TouchpadPicker(_RESISTIVE)} + + self._setup_touchpad() + initial_touchpad = self._model.get_touchpad() + self._update_pickers(initial_touchpad) + + self.setup() + + def _setup_touchpad(self): + """Layout the panel: label, buttons, alert""" + label_touchpad = gtk.Label(_('Click to change your touchpad:')) + label_touchpad.modify_fg(gtk.STATE_NORMAL, + style.COLOR_SELECTION_GREY.get_gdk_color()) + self._group.add_widget(label_touchpad) + self._touchpad_label.pack_start(label_touchpad, expand=False) + label_touchpad.show() + + for touchpad_mode in sorted(self._pickers.keys()): + picker = self._pickers[touchpad_mode] + picker.show() + self._touchpad_box.pack_start(picker, expand=False) + + label_touchpad_error = gtk.Label() + self._group.add_widget(label_touchpad_error) + self._touchpad_alert_box.pack_start(label_touchpad_error, expand=False) + label_touchpad_error.show() + + self._touchpad_alert = InlineAlert() + self._touchpad_alert_box.pack_start(self._touchpad_alert) + if 'color' in self.restart_alerts: + self._touchpad_alert.props.msg = self.restart_msg + self._touchpad_alert.show() + + self._center_in_panel = gtk.Alignment(0.5) + self._center_in_panel.add(self._touchpad_box) + self.pack_start(self._touchpad_label, False) + self.pack_start(self._center_in_panel, False) + self.pack_start(self._touchpad_alert_box, False) + self._touchpad_label.show() + self._touchpad_box.show() + self._touchpad_alert_box.show() + self._center_in_panel.show() + + def setup(self): + """Set up the buttons.""" + self.needs_restart = False + + def connect(widget, signal, callback): + self._handlers.append((widget, widget.connect(signal, callback))) + + for picker in self._pickers.values(): + connect(picker, 'touchpad-changed', self.__touchpad_changed_cb) + + def undo(self): + """Undo any changes.""" + for widget, handler in self._handlers: + widget.disconnect(handler) + self._model.undo() + self._touchpad_alert.hide() + + def _update_pickers(self, touchpad): + """Update the buttons to reflect selection""" + for picker in self._pickers.values(): + picker.update(touchpad) + + def __touchpad_changed_cb(self, touchpadpicker, touchpad): + """Callback for mode change.""" + self._model.set_touchpad(touchpad) + self.needs_restart = True + self._touchpad_alert.props.msg = self.restart_msg + self.restart_alerts.append('touchpad') + + self._touchpad_alert.show() + + self._update_pickers(touchpad) + + return False -- 1.7.0.4
From 2bddcbc207e187534aef693a23afa8880a11ed0f Mon Sep 17 00:00:00 2001 From: Walter Bender <wal...@sugarlabs.org> Date: Tue, 18 May 2010 15:58:11 -0400 Subject: [PATCH] icons for touchpad panel --- icons/scalable/device/capacitive-off.svg | 31 +++++++++++++++++++++++++++ icons/scalable/device/capacitive-on.svg | 31 +++++++++++++++++++++++++++ icons/scalable/device/resistive-off.svg | 34 ++++++++++++++++++++++++++++++ icons/scalable/device/resistive-on.svg | 34 ++++++++++++++++++++++++++++++ 4 files changed, 130 insertions(+), 0 deletions(-) create mode 100644 icons/scalable/device/capacitive-off.svg create mode 100644 icons/scalable/device/capacitive-on.svg create mode 100644 icons/scalable/device/resistive-off.svg create mode 100644 icons/scalable/device/resistive-on.svg diff --git a/icons/scalable/device/capacitive-off.svg b/icons/scalable/device/capacitive-off.svg new file mode 100644 index 0000000..487e1ec --- /dev/null +++ b/icons/scalable/device/capacitive-off.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="Layer_1" + xml:space="preserve"><defs + id="defs2829" /> +<g + transform="translate(0,-3.9)" + id="g2817"> +</g> + + + +<g + transform="translate(0,-15.649356)" + id="g2819"> +<path + d="m 2.934,28.664 0,18.209 49.391,0 0,-18.209 -49.391,0 z M 36,45.833 l -17,0 0,-16.129 17,0 0,16.129 z" + id="path2821" + style="fill:#ffffff;stroke:#666666;stroke-width:2" /> +</g><path + d="m 22.817123,49.135003 c 0,0 -3.23492,-8.766448 -3.243008,-9.837791 -0.0135,-1.797291 -2.398098,-2.342156 -2.398098,-2.342156 0,0 -0.621319,-2.249376 0,-2.770053 0.656117,-0.549837 2.934483,-0.629824 3.735004,0.330634 l 2.413094,2.895211 0,-12.75 c 0,0 0.888891,-1.589214 1.643962,-1.454545 0.745806,0.133019 1.356038,1.454545 1.356038,1.454545 l 0,10.5 0,-4.5 c 0,0 0.947828,-0.746067 1.5,-0.75 0.552172,-0.0039 1.5,0.75 1.5,0.75 l 0,4.5 0,-3.75 c 0,0 0.675747,-0.758712 1.5,-0.75 0.824253,0.0087 1.5,0.568182 1.5,0.568182 l 0,3.931818 0,-3 c 0,0 0.857274,-0.33549 1.5,-0.375 0.526597,-0.03237 1.448303,0.97351 1.5,1.575 0.220672,2.567514 0.969363,5.350927 0.823983,7.574377 -0.100086,1.53071 -0.67874,8.199778 -2.212713,8.199778 l -11.118262,0 z" + id="path2825" + style="fill:#ffffff;stroke:#666666;stroke-width:1.5;stroke-opacity:1" /></svg> diff --git a/icons/scalable/device/capacitive-on.svg b/icons/scalable/device/capacitive-on.svg new file mode 100644 index 0000000..e54dc0e --- /dev/null +++ b/icons/scalable/device/capacitive-on.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="Layer_1" + xml:space="preserve"><defs + id="defs2829" /> +<g + transform="translate(0,-3.9)" + id="g2817"> +</g> + + + +<g + transform="translate(0,-15.649356)" + id="g2819"> +<path + d="m 2.934,28.664 0,18.209 49.391,0 0,-18.209 -49.391,0 z M 36,45.833 l -17,0 0,-16.129 17,0 0,16.129 z" + id="path2821" + style="fill:#ffffff;stroke:#666666;stroke-width:2" /> +</g><path + d="m 22.817123,49.135003 c 0,0 -3.23492,-8.766448 -3.243008,-9.837791 -0.0135,-1.797291 -2.398098,-2.342156 -2.398098,-2.342156 0,0 -0.621319,-2.249376 0,-2.770053 0.656117,-0.549837 2.934483,-0.629824 3.735004,0.330634 l 2.413094,2.895211 0,-12.75 c 0,0 0.888891,-1.589214 1.643962,-1.454545 0.745806,0.133019 1.356038,1.454545 1.356038,1.454545 l 0,10.5 0,-4.5 c 0,0 0.947828,-0.746067 1.5,-0.75 0.552172,-0.0039 1.5,0.75 1.5,0.75 l 0,4.5 0,-3.75 c 0,0 0.675747,-0.758712 1.5,-0.75 0.824253,0.0087 1.5,0.568182 1.5,0.568182 l 0,3.931818 0,-3 c 0,0 0.857274,-0.33549 1.5,-0.375 0.526597,-0.03237 1.448303,0.97351 1.5,1.575 0.220672,2.567514 0.969363,5.350927 0.823983,7.574377 -0.100086,1.53071 -0.67874,8.199778 -2.212713,8.199778 l -11.118262,0 z" + id="path2825" + style="fill:#ffffff;stroke:#ff0000;stroke-width:1.5;stroke-opacity:1" /></svg> diff --git a/icons/scalable/device/resistive-off.svg b/icons/scalable/device/resistive-off.svg new file mode 100644 index 0000000..1e6a4a7 --- /dev/null +++ b/icons/scalable/device/resistive-off.svg @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="Layer_1" + xml:space="preserve"><defs + id="defs2829" /> +<g + transform="translate(0,-3.9)" + id="g2817"> +</g> + + + +<g + transform="translate(0,-15.649356)" + id="g2819"> +<path + d="m 2.934,28.664 0,18.209 49.391,0 0,-18.209 -49.391,0 z" + id="path2821" + style="fill:#ffffff;stroke:#666666;stroke-width:2" /> +</g><path + d="m 10.113335,17.999995 c 4.481574,10.248626 12.299223,4.823443 18.006668,1.48 3.636065,-2.130021 10.421669,1.48 10.421669,1.48" + id="path3001" + style="fill:none;stroke:#666666;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path + d="m 46.742465,8.1381941 -5.095999,6.7474989 -1.044001,1.3585 -1.7375,4.133 c -0.023,0.052 -0.009,0.1115 0.0345,0.1475 0.0445,0.036 0.1055,0.042 0.1535,0.01 l 3.913,-2.5185 c 0.0055,-0.004 0.0055,-0.0135 0.011,-0.0215 0.0325,-0.0245 0.071,-0.046 0.098,-0.081 0.0015,-10e-4 0.017,-0.0205 0.017,-0.0245 l 0.9155,-1.1355 2.7345,-3.527 4.005501,-5.1644989 c 0.011,-0.0115 0.0745,-0.1015 0.0745,-0.1015 0.048,-0.0805 0.074,-0.1725 0.074,-0.278 0,-0.0305 0,-0.059 -0.006,-0.088 -0.0435,-0.3815 -0.357501,-0.841 -0.819501,-1.2065 -0.4615,-0.364 -0.9845,-0.5615 -1.364,-0.517 -0.163,0.021 -0.3945,0.1875 -0.3945,0.1875 l -1.5695,2.0795 z" + id="path2823" + style="fill:#ffffff;stroke:#666666;stroke-width:1.5;stroke-opacity:1" /></svg> diff --git a/icons/scalable/device/resistive-on.svg b/icons/scalable/device/resistive-on.svg new file mode 100644 index 0000000..58c09fe --- /dev/null +++ b/icons/scalable/device/resistive-on.svg @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="Layer_1" + xml:space="preserve"><defs + id="defs2829" /> +<g + transform="translate(0,-3.9)" + id="g2817"> +</g> + + + +<g + transform="translate(0,-15.649356)" + id="g2819"> +<path + d="m 2.934,28.664 0,18.209 49.391,0 0,-18.209 -49.391,0 z" + id="path2821" + style="fill:#ffffff;stroke:#666666;stroke-width:2" /> +</g><path + d="m 10.113335,17.999995 c 4.481574,10.248626 12.299223,4.823443 18.006668,1.48 3.636065,-2.130021 10.421669,1.48 10.421669,1.48" + id="path3001" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path + d="m 46.742465,8.1381941 -5.095999,6.7474989 -1.044001,1.3585 -1.7375,4.133 c -0.023,0.052 -0.009,0.1115 0.0345,0.1475 0.0445,0.036 0.1055,0.042 0.1535,0.01 l 3.913,-2.5185 c 0.0055,-0.004 0.0055,-0.0135 0.011,-0.0215 0.0325,-0.0245 0.071,-0.046 0.098,-0.081 0.0015,-10e-4 0.017,-0.0205 0.017,-0.0245 l 0.9155,-1.1355 2.7345,-3.527 4.005501,-5.1644989 c 0.011,-0.0115 0.0745,-0.1015 0.0745,-0.1015 0.048,-0.0805 0.074,-0.1725 0.074,-0.278 0,-0.0305 0,-0.059 -0.006,-0.088 -0.0435,-0.3815 -0.357501,-0.841 -0.819501,-1.2065 -0.4615,-0.364 -0.9845,-0.5615 -1.364,-0.517 -0.163,0.021 -0.3945,0.1875 -0.3945,0.1875 l -1.5695,2.0795 z" + id="path2823" + style="fill:#ffffff;stroke:#ff0000;stroke-width:1.5;stroke-opacity:1" /></svg> -- 1.7.0.4
_______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel