From 7ad86064f443207b9e663d92cfa4059592e442a9 Mon Sep 17 00:00:00 2001 From: Ignacio Rodríguez Date: Thu, 21 Nov 2013 12:14:44 +0000 Subject: Eliminadas algunas plantillas. --- diff --git a/Accelerometer/LevelActivity.py b/Accelerometer/LevelActivity.py deleted file mode 100644 index 473976b..0000000 --- a/Accelerometer/LevelActivity.py +++ /dev/null @@ -1,189 +0,0 @@ -# LevelActivity.py -# Copyright (C) 2012 Aneesh Dogra -# -# 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 gi.repository import Gtk -from gi.repository import GObject -from sugar3.activity import widgets -from sugar3.activity.widgets import StopButton -from sugar3.activity import activity -from math import pi, sqrt -from gettext import gettext as _ -from collections import deque - -# Change the following text to change the accelerometer path -ACCELEROMETER_DEVICE = '/sys/devices/platform/lis3lv02d/position' -#ACCELEROMETER_DEVICE = 'a.txt' - -def read_accelerometer(canvas): - fh = open(ACCELEROMETER_DEVICE) - string = fh.read() - xyz = string[1:-2].split(',') - try: - x = float(xyz[0]) / (64 * 18) - y = float(xyz[1]) / (64 * 18) - fh.close() - canvas.motion_cb(x, y) - except: - pass - GObject.timeout_add(100, read_accelerometer, canvas) - -class MyCanvas(Gtk.DrawingArea): - ''' Create a GTK+ widget on which we will draw using Cairo ''' - - def __init__(self): - Gtk.DrawingArea.__init__(self) - self._draw_ruler = False - self._object = None - self.connect('draw', self._draw_cb) - self._dpi = 96 - self.cr = None - self.width = 0 - self.height = 0 - self.radius = 0 - self.x = 0 - self.y = 0 - self.center = (0, 0) - self.prev = deque([]) - self.ball_radius = 20 - - def _draw_cb(self, drawing_area, cr): - self.center = (self.width / 2, self.height / 2) - self.radius = min(self.width / 2, self.height / 2) - \ - self.ball_radius - 20 - self.cr = cr - cr.set_line_width(2) - self.width = drawing_area.get_allocated_width() - self.height = drawing_area.get_allocated_height() - - cr.set_source_rgb(1, 1, 1) - cr.rectangle(0, 0, self.width, self.height) - cr.fill() - - - cr.set_source_rgb(0.9450, 0.9450, 0.9450) - cr.arc(self.center[0], self.center[1], - self.radius, 0, - 2 * pi) - cr.fill() - - - cr.set_source_rgb(0, 0, 0) - cr.arc(self.center[0], self.center[1], - self.ball_radius + 2, 0, - 2 * pi) - cr.stroke() - - cr.arc(self.center[0], self.center[1], - self.radius / 3, 0, - 2 * pi) - cr.stroke() - - cr.arc(self.center[0], self.center[1], - self.radius * 2 / 3, 0, - 2 * pi) - cr.stroke() - - cr.arc(self.center[0], self.center[1], - self.radius, 0, - 2 * pi) - cr.stroke() - - cr.move_to(self.center[0] - self.radius, self.center[1]) - cr.line_to(self.center[0] + self.radius, self.center[1]) - cr.stroke() - - cr.move_to(self.center[0], self.center[1] - self.radius) - cr.line_to(self.center[0], self.center[1] + self.radius) - cr.stroke() - - self.update_ball_and_text() - - def update_ball_and_text(self): - # Build the ball - self.cr.set_source_rgb(0.3012, 0.6, 1) # blue - self.cr.arc(self.x, self.y, self.ball_radius, 0, 2 * pi) - self.cr.fill() - - # Now update the text - - # 1. Clear Text - self.cr.set_source_rgb(1, 1, 1) # white - self.cr.rectangle(self.width - 110, self.height - 110, - self.width, self.height) - self.cr.fill() - - # 2. Update Text - self.cr.set_source_rgb(0, 0, 0) # black - self.cr.move_to(self.width - 100, self.height - 80) - self.cr.set_font_size(20) - - # TRANS: X is for X axis - self.cr.show_text(_("X: %.2f") % (self.x - self.width / 2,)) - - self.cr.move_to(self.width - 99, self.height - 60) - self.cr.set_font_size(20) - - # TRANS: Y is for Y axis - self.cr.show_text(_("Y: %.2f") % (self.y - self.height / 2,)) - - - def motion_cb(self, x, y): - if len(self.prev) >= 2: - self.x = self.prev[-2][0] * 0.25 + self.prev[-1][0] * 0.5 + \ - self.radius * x * 0.25 - self.y = self.prev[-2][1] * 0.25 + self.prev[-1][1] * 0.5 + \ - self.radius * y * 0.25 - self.prev.popleft() - self.prev.append([self.x, self.y]) - else: - self.x = self.radius * x - self.y = self.radius * y - self.prev.append([self.x, self.y]) - - if self.x and self.y: - r = sqrt((self.x * self.x) + (self.y * self.y)) - r1 = min(r, self.radius) - scale = r1 / r - self.x *= scale - self.y *= scale - - self.x += self.center[0] - self.y += self.center[1] - - self.queue_draw() - -class LevelActivity(activity.Activity): - def __init__(self, handle): - "The entry point to the Activity" - activity.Activity.__init__(self, handle) - - toolbox = widgets.ActivityToolbar(self) - toolbox.share.props.visible = False - - stop_button = StopButton(self) - stop_button.show() - toolbox.insert(stop_button, -1) - - self.set_toolbar_box(toolbox) - toolbox.show() - - # Draw the canvas - self._canvas = MyCanvas() - self.set_canvas(self._canvas) - self._canvas.show() - - GObject.timeout_add(100, read_accelerometer, self._canvas) diff --git a/Accelerometer/activity/Level.svg b/Accelerometer/activity/Level.svg deleted file mode 100644 index 10c53b0..0000000 --- a/Accelerometer/activity/Level.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - -]> - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/Accelerometer/activity/activity.info b/Accelerometer/activity/activity.info deleted file mode 100644 index 99973cf..0000000 --- a/Accelerometer/activity/activity.info +++ /dev/null @@ -1,9 +0,0 @@ -[Activity] -name = Level -bundle_id = net.flossmanuals.LevelActivity -icon = Level -exec = sugar-activity LevelActivity.LevelActivity -show_launcher = yes -mime_types = text/plain;application/zip -activity_version = 1 -license = GPLv2+ diff --git a/Accelerometer/setup.py b/Accelerometer/setup.py deleted file mode 100755 index d4b5aa0..0000000 --- a/Accelerometer/setup.py +++ /dev/null @@ -1,2 +0,0 @@ -from sugar3.activity import bundlebuilder -bundlebuilder.start() diff --git a/Touch/activity.py b/Touch/activity.py deleted file mode 100644 index 3769329..0000000 --- a/Touch/activity.py +++ /dev/null @@ -1,189 +0,0 @@ -# Copyright (c) 2012 Bert Freudenberg -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -""" -Activity: TestMultiTouch -Shows multi-touch events -""" - -from gi.repository import Gtk -from gi.repository import Gdk -from random import random -from math import pi as M_PI - -from sugar3.activity import activity -from sugar3.graphics.toolbarbox import ToolbarBox -from sugar3.activity.widgets import ActivityButton -from sugar3.activity.widgets import TitleEntry -from sugar3.activity.widgets import StopButton -from sugar3.activity.widgets import ShareButton -from sugar3.activity.widgets import DescriptionItem - -class TestMultiTouchActivity(activity.Activity): - - def __init__(self, handle): - activity.Activity.__init__(self, handle) - # Change the following number to change max participants - self.max_participants = 1 - - toolbar_box = ToolbarBox() - - activity_button = ActivityButton(self) - toolbar_box.toolbar.insert(activity_button, 0) - activity_button.show() - - title_entry = TitleEntry(self) - toolbar_box.toolbar.insert(title_entry, -1) - title_entry.show() - - description_item = DescriptionItem(self) - toolbar_box.toolbar.insert(description_item, -1) - description_item.show() - - share_button = ShareButton(self) - toolbar_box.toolbar.insert(share_button, -1) - share_button.show() - - separator = Gtk.SeparatorToolItem() - separator.props.draw = False - separator.set_expand(True) - toolbar_box.toolbar.insert(separator, -1) - separator.show() - - stop_button = StopButton(self) - toolbar_box.toolbar.insert(stop_button, -1) - stop_button.show() - - self.set_toolbar_box(toolbar_box) - toolbar_box.show() - - # main view - touch_area = TouchArea() - self.set_canvas(touch_area) - touch_area.show() - - -class TouchArea(Gtk.DrawingArea): - - def __init__(self): - Gtk.DrawingArea.__init__(self) - self.fingers = {} - self.set_events(Gdk.EventMask.TOUCH_MASK) - self.connect('draw', self.__draw_cb) - self.connect('event', self.__event_cb) - - def __event_cb(self, widget, event): - if event.type in ( - Gdk.EventType.TOUCH_BEGIN, - Gdk.EventType.TOUCH_UPDATE, - Gdk.EventType.TOUCH_CANCEL, - Gdk.EventType.TOUCH_END): - # sequence is a void ptr object identifying the finger - # we make it a string for use as dict key - seq = str(event.touch.sequence) - if event.type == Gdk.EventType.TOUCH_BEGIN: - new_finger = Finger(event) - self.fingers[seq] = new_finger - self.remove_inactive_fingers(new_finger) - else: - self.fingers[seq].update(event) - self.queue_draw() - - def __draw_cb(self, widget, ctx): - alloc = self.get_allocation() - ctx.set_source_rgb(1, 1, 1) - ctx.paint() - for f in self.fingers: - self.fingers[f].draw(ctx, alloc.width, alloc.height) - - def remove_inactive_fingers(self, new_finger): - for f,old_finger in list(self.fingers.items()): - if not old_finger.active: - del self.fingers[f] - if new_finger.time - old_finger.time < 300: - new_finger.remember(old_finger) - - -class Finger: - - def __init__(self, event): - self.trail = [ Point(event.touch.x, event.touch.y) ] - self.color = (random(), random(), random()) - self.time = event.touch.time - self.active = True - self.other = None - - def update(self, event): - self.time = event.touch.time - if event.type == Gdk.EventType.TOUCH_UPDATE: - self.trail.append( Point(event.touch.x, event.touch.y) ) - elif event.type == Gdk.EventType.TOUCH_END: - self.active = False - elif event.type == Gdk.EventType.TOUCH_CANCEL: - self.active = False - self.color = (1, 0, 0) - - def remember(self, finger): - if self.other: - finger.remember(self.other) - self.other = finger - - def draw(self, ctx, width, height): - if self.other: - self.other.draw(ctx, width, height) - (r, g, b) = self.color - ctx.set_source_rgb(r, g, b) - self.draw_trail(ctx) - if self.active: - self.draw_touch(ctx) - ctx.set_source_rgb(0.5, 0.5, 0.5) - self.draw_crosshair(ctx, width, height) - - def draw_crosshair(self, ctx, width, height): - p = self.trail[-1] - ctx.set_line_width(1) - ctx.move_to(p.x, 0) - ctx.line_to(p.x, height) - ctx.move_to(0, p.y) - ctx.line_to(width, p.y) - ctx.stroke() - - def draw_touch(self, ctx): - p = self.trail[-1] - ctx.set_line_width(10) - ctx.arc(p.x, p.y, 30, 0, 2 * M_PI) - ctx.stroke() - - def draw_trail(self, ctx): - ctx.set_line_width(5) - p = self.trail[0] - ctx.move_to(p.x, p.y) - for p in self.trail: - ctx.line_to(p.x, p.y) - ctx.stroke() - - -class Point: - - def __init__(self, x, y): - self.x = x - self.y = y diff --git a/Touch/activity/activity-testmultitouch.svg b/Touch/activity/activity-testmultitouch.svg deleted file mode 100644 index c74ac2b..0000000 --- a/Touch/activity/activity-testmultitouch.svg +++ /dev/null @@ -1,9 +0,0 @@ - - -]> - - - - - diff --git a/Touch/activity/activity.info b/Touch/activity/activity.info deleted file mode 100644 index 025c591..0000000 --- a/Touch/activity/activity.info +++ /dev/null @@ -1,7 +0,0 @@ -[Activity] -name = TestMultiTouch -activity_version = 5 -bundle_id = org.sugarlabs.TestMultiTouch -exec = sugar-activity activity.TestMultiTouchActivity -icon = activity-testmultitouch -license = MIT diff --git a/Touch/setup.py b/Touch/setup.py deleted file mode 100755 index 9a141b3..0000000 --- a/Touch/setup.py +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env python -from sugar3.activity import bundlebuilder -bundlebuilder.start() -- cgit v0.9.1