Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-11-20 03:35:44 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-11-20 03:35:44 (GMT)
commit60a887466371f30abcfd75ae7655f8611c835525 (patch)
tree35ebf899e58312395b8144185320b1ef981b6de6 /TurtleArt
parentf2943f9b33f37bc89299c80b30c528270fc30dc0 (diff)
moved examples to pysamples
Diffstat (limited to 'TurtleArt')
-rw-r--r--TurtleArt/tamyblock.py318
1 files changed, 0 insertions, 318 deletions
diff --git a/TurtleArt/tamyblock.py b/TurtleArt/tamyblock.py
deleted file mode 100644
index fcbebc3..0000000
--- a/TurtleArt/tamyblock.py
+++ /dev/null
@@ -1,318 +0,0 @@
-#Copyright (c) 2009-10, Walter Bender
-
-#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.
-
-#
-# This procedure is invoked when the user-definable block on the "extras"
-# palette is selected. Some examples of how to use this block are included
-# below. Try uncommenting an example or write your own Python code.
-#
-# To uncomment code, remove the '# ' in the Python code. Take care to preserve
-# the proper indentations.
-#
-#
-# NOTES:
-#
-# Turtle Art is created in object oriented Python code. This is based
-# around the definition of classes and the creation of object(s) which
-# are instance(s) of that class. These objects then have properties and
-# methods which are defined by their class.
-#
-# See http://docs.python.org/tutorial/classes.html for a description of
-# classes in Python.
-#
-# Class Defined in Instance Created in
-# TurtleArtWindow tawindow.py tw TurtleArtActivity.py
-# LogoCode talogo.py lc tawindow.py
-# TurtleGraphics tacanvas.py canvas tawindow.py
-# Turtles, Turtle taturtle.py turtles tawindow.py,
-# tacanvas.py
-# Blocks, Block tablock.py block_list tawindow.py
-#
-#
-# Class TurtleArtWindow -- useful properties and methods (from within
-# tamyblock.py, lc.tw is the class instance)
-#
-# Methods and data attributes Example
-# set_fullscreen(self) lc.tw.set_fullscreen()
-# Note: Hides the Sugar toolbar
-# set_cartesian(self, flag) lc.tw.set_cartesian(True)
-# Note: True will make the overlay visible;
-# False will make it invisible
-# set_polar(self, flag) lc.tw.set_polar(True)
-# Note: True will make the overlay visible;
-# False will make it invisible
-# hideshow_button(self, flag) lc.tw.hideshow_button()
-# Note: Toggles visibility of blocks and palettes
-# self.active_turtle lc.tw.active_turtle
-# Note: The active turtle instance
-#
-#
-# Class TurtleGraphics -- useful properties and methods (from within
-# tamyblock.py, lc.tw.canvas is the class instance)
-#
-# Methods and data attributes Example
-# clearscreen(self) lc.tw.canvas.clearscreen()
-# Note: Clears the screen and resets all turtle and
-# pen attributes to default values
-# setpen(self, flag) lc.tw.canvas.setpen(True)
-# Note: True will set the pen "down", enabling drawing;
-# False will set the pen "up"
-# forward(self, n) lc.tw.canvas.forward(100)
-# Note: Move the turtle forward 100 units
-# arc(self, a, r) lc.tw.canvas.arc(120, 50)
-# Note: Move the turtle along an arc of 120 degrees
-# (clockwise) and radius of 50 units
-# setheading(self, a) lc.tw.canvas.setheading(180)
-# Note: Set the turtle heading to 180
-# (towards the bottom of the screen)
-# self.heading lc.tw.canvas.heading
-# Note: The current heading
-# setpensize(self, n) lc.tw.canvas.setpensize(25)
-# Note: Set the turtle pensize to 25 units
-# self.pensize lc.tw.canvas.pensize
-# Note: The current pensize
-# setcolor(self, c) lc.tw.canvas.color(70)
-# Note: Set the pen color to 70 (blue)
-# self.color lc.tw.canvas.color
-# Note: The current pen color
-# setshade(self, s) lc.tw.canvas.shade(50)
-# Note: Set the pen shade to 50
-# self.shade lc.tw.canvas.shade
-# Note: The current pen shade
-# fillscreen(self, c, s) lc.tw.canvas.fillscreen(70, 90)
-# Note: Fill the screen with color 70, shade 90 (light blue)
-# setxy(self, x, y) lc.tw.canvas.setxy(100,100)
-# Note: Move the turtle to position (100, 100)
-# self.xcor lc.tw.canvas.xcor
-# Note: The current x coordinate of the turtle
-# (scaled to current units)
-# self.ycor lc.tw.canvas.ycor
-# Note: The current y coordinate of the turtle
-# (scaled to current units)
-# self.set_turtle(name) lc.tw.canvas.set_turtle(1)
-# Note: Set the current turtle to turtle '1'
-#
-#
-# Other useful Python functions
-# Module Example
-# from math import pow pow(2,3) returns 2 to the 3rd power
-# Note: See http://docs.python.org/library/math.html
-# from math import sin, pi sin(45*pi/180) returns sin of 45 (0.707)
-# Note: See http://docs.python.org/library/math.html
-# from time import localtime localtime().tm_hour returns the current hour
-# Note: See http://docs.python.org/library/time.html
-# lc.heap.append(data) adds data to the heap
-# Note: See http://docs.python.org/tutorial/datastructures.html
-# data = lc.heap.pop(-1) pops data off the heap
-# Note: See http://docs.python.org/tutorial/datastructures.html
-#
-
-def myblock(lc, x):
-
- ###########################################################################
- #
- # Set rgb color
- #
- ###########################################################################
-
- # r = int(x[0])
- # while r < 0:
- # r += 256
- # while r > 255:
- # r -= 256
- # g = int(x[1])
- # while g < 0:
- # g += 256
- # while g > 255:
- # g -= 256
- # b = int(x[2])
- # while b < 0:
- # b += 256
- # while b > 255:
- # b -= 256
- # rgb = "#%02x%02x%02x" % (r,g,b)
- # lc.tw.canvas.fgcolor = lc.tw.canvas.cm.alloc_color(rgb)
- # return
-
- ###########################################################################
- #
- # Draw a dotted line of length x.
- #
- ###########################################################################
-
- try: # make sure x is a number
- x = float(x)
- except ValueError:
- return
- if lc.tw.canvas.pendown:
- dist = 0
- while dist+lc.tw.canvas.pensize < x: # repeat drawing dots
- lc.tw.canvas.setpen(True)
- lc.tw.canvas.forward(1)
- lc.tw.canvas.setpen(False)
- lc.tw.canvas.forward((lc.tw.canvas.pensize*2)-1)
- dist += (lc.tw.canvas.pensize*2)
- lc.tw.canvas.forward(x-dist) # make sure we have moved exactly x
- lc.tw.canvas.setpen(True)
- else:
- lc.tw.canvas.forward(x)
- return
-
- ###########################################################################
- #
- # Push an uppercase version of a string onto the heap.
- # Use a 'pop' block to use the new string.
- #
- ###########################################################################
-
- # if type(x) != str:
- # X = str(x).upper()
- # else:
- # X = x.upper()
- # lc.heap.append(X)
- # return
-
- ###########################################################################
- #
- # Push hours, minutes, seconds onto the FILO.
- # Use three 'pop' blocks to retrieve these values.
- # Note: because we use a FILO (first in, last out heap),
- # the first value you will pop will be seconds.
- #
- ###########################################################################
-
- # lc.heap.append(localtime().tm_hour)
- # lc.heap.append(localtime().tm_min)
- # lc.heap.append(localtime().tm_sec)
- # return
-
- ###########################################################################
- #
- # Add a third dimension (gray) to the color model.
- #
- ###########################################################################
-
- # val = 0.3 * lc.tw.rgb[0] + 0.6 * lc.tw.rgb[1] + 0.1 * lc.tw.rgb[2]
- # if x != 100:
- # x = int(x)%100
- # r = int((val*(100-x) + lc.tw.rgb[0]*x)/100)
- # g = int((val*(100-x) + lc.tw.rgb[1]*x)/100)
- # b = int((val*(100-x) + lc.tw.rgb[2]*x)/100)
- # reallocate current color
- # rgb = "#%02x%02x%02x" % (r,g,b)
- # lc.tw.canvas.fgcolor = lc.tw.canvas.cm.alloc_color(rgb)
- # return
-
- ###########################################################################
- #
- # Save an image named x to the Sugar Journal.
- #
- ###########################################################################
-
- # lc.tw.save_as_image(str(x))
- # return
-
- ###########################################################################
- #
- # Push mouse event to stack
- #
- ###########################################################################
-
- # if lc.tw.mouse_flag == 1:
- # lc.heap.append(lc.tw.mouse_y)
- # lc.heap.append(lc.tw.mouse_x)
- # lc.heap.append(1) # mouse event
- # lc.tw.mouse_flag = 0
- # else:
- # lc.heap.append(0) # no mouse event
- # return
-
- ###########################################################################
- #
- # Copy heap to clipboard
- #
- ###########################################################################
-
- # from gtk import Clipboard
- # from tautils import data_to_string
-
- # Clipboard().set_text(data_to_string(lc.heap))
- # return
-
- ###########################################################################
- #
- # Paste from clipboard to heap
- #
- ###########################################################################
-
- # from gtk import Clipboard
- # from tautils import data_from_string
-
- # text = Clipboard().wait_for_text()
- # if text is not None:
- # for val in data_from_string(text):
- # lc.heap.append(val)
- # lc.update_label_value('pop', val)
- #
- # return
-
- ###########################################################################
- #
- # Save heap to journal
- #
- ###########################################################################
-
- # from tautils import get_path, data_to_file
- # from sugar.activity import activity
- # from gettext import gettext as _
- # import os.path
- # from sugar.datastore import datastore
- # from sugar import profile
-
- # # Save JSON-encoded heap to temporary file
- # heap_file = os.path.join(get_path(activity, 'instance'), 'heap.txt')
- # data_to_file(lc.heap, heap_file)
-
- # # Create a datastore object
- # dsobject = datastore.create()
-
- # # Write any metadata (specifically set the title of the file
- # # and specify that this is a plain text file).
- # dsobject.metadata['title'] = _('heap')
- # dsobject.metadata['icon-color'] = profile.get_color().to_string()
- # dsobject.metadata['mime_type'] = 'text/plain'
- # dsobject.set_file_path(heap_file)
- # datastore.write(dsobject)
- # dsobject.destroy()
-
- # return
-
- ###########################################################################
- #
- # Load heap from journal
- #
- ###########################################################################
-
- # from tautils import chooser
-
- # # Choose a datastore object and push data to heap (Sugar only)
- # chooser(lc.tw.parent, '', lc.push_file_data_to_heap)
-
- # return