Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/lib/pygame/cursors.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pygame/cursors.py')
-rwxr-xr-xlib/pygame/cursors.py300
1 files changed, 0 insertions, 300 deletions
diff --git a/lib/pygame/cursors.py b/lib/pygame/cursors.py
deleted file mode 100755
index 80e20df..0000000
--- a/lib/pygame/cursors.py
+++ /dev/null
@@ -1,300 +0,0 @@
-## pygame - Python Game Library
-## Copyright (C) 2000-2003 Pete Shinners
-##
-## This library is free software; you can redistribute it and/or
-## modify it under the terms of the GNU Library General Public
-## License as published by the Free Software Foundation; either
-## version 2 of the License, or (at your option) any later version.
-##
-## This library 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
-## Library General Public License for more details.
-##
-## You should have received a copy of the GNU Library General Public
-## License along with this library; if not, write to the Free
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-## Pete Shinners
-## pete@shinners.org
-
-"""Set of cursor resources available for use. These cursors come
-in a sequence of values that are needed as the arguments for
-pygame.mouse.set_cursor(). to dereference the sequence in place
-and create the cursor in one step, call like this;
-pygame.mouse.set_cursor(*pygame.cursors.arrow).
-
-Here is a list of available cursors; arrow, diamond, ball,
- broken_x, tri_left, tri_right
-
-There is also a sample string cursor named 'thickarrow_strings'.
-The compile() function can convert these string cursors into cursor byte data.
-"""
-
-#default pygame black arrow
-arrow = ((16, 16), (0, 0),
- (0x00,0x00,0x40,0x00,0x60,0x00,0x70,0x00,0x78,0x00,0x7C,0x00,0x7E,0x00,0x7F,0x00,
- 0x7F,0x80,0x7C,0x00,0x6C,0x00,0x46,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x00,0x00),
- (0x40,0x00,0xE0,0x00,0xF0,0x00,0xF8,0x00,0xFC,0x00,0xFE,0x00,0xFF,0x00,0xFF,0x80,
- 0xFF,0xC0,0xFF,0x80,0xFE,0x00,0xEF,0x00,0x4F,0x00,0x07,0x80,0x07,0x80,0x03,0x00))
-
-diamond = ((16, 16), (7, 7),
- (0, 0, 1, 0, 3, 128, 7, 192, 14, 224, 28, 112, 56, 56, 112, 28, 56,
- 56, 28, 112, 14, 224, 7, 192, 3, 128, 1, 0, 0, 0, 0, 0),
- (1, 0, 3, 128, 7, 192, 15, 224, 31, 240, 62, 248, 124, 124, 248, 62,
- 124, 124, 62, 248, 31, 240, 15, 224, 7, 192, 3, 128, 1, 0, 0, 0))
-
-ball = ((16, 16), (7, 7),
- (0, 0, 3, 192, 15, 240, 24, 248, 51, 252, 55, 252, 127, 254, 127, 254,
- 127, 254, 127, 254, 63, 252, 63, 252, 31, 248, 15, 240, 3, 192, 0, 0),
- (3, 192, 15, 240, 31, 248, 63, 252, 127, 254, 127, 254, 255, 255, 255,
- 255, 255, 255, 255, 255, 127, 254, 127, 254, 63, 252, 31, 248, 15, 240,
- 3, 192))
-
-broken_x = ((16, 16), (7, 7),
- (0, 0, 96, 6, 112, 14, 56, 28, 28, 56, 12, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 12, 48, 28, 56, 56, 28, 112, 14, 96, 6, 0, 0),
- (224, 7, 240, 15, 248, 31, 124, 62, 62, 124, 30, 120, 14, 112, 0, 0, 0,
- 0, 14, 112, 30, 120, 62, 124, 124, 62, 248, 31, 240, 15, 224, 7))
-
-
-tri_left = ((16, 16), (1, 1),
- (0, 0, 96, 0, 120, 0, 62, 0, 63, 128, 31, 224, 31, 248, 15, 254, 15, 254,
- 7, 128, 7, 128, 3, 128, 3, 128, 1, 128, 1, 128, 0, 0),
- (224, 0, 248, 0, 254, 0, 127, 128, 127, 224, 63, 248, 63, 254, 31, 255,
- 31, 255, 15, 254, 15, 192, 7, 192, 7, 192, 3, 192, 3, 192, 1, 128))
-
-tri_right = ((16, 16), (14, 1),
- (0, 0, 0, 6, 0, 30, 0, 124, 1, 252, 7, 248, 31, 248, 127, 240, 127, 240,
- 1, 224, 1, 224, 1, 192, 1, 192, 1, 128, 1, 128, 0, 0),
- (0, 7, 0, 31, 0, 127, 1, 254, 7, 254, 31, 252, 127, 252, 255, 248, 255,
- 248, 127, 240, 3, 240, 3, 224, 3, 224, 3, 192, 3, 192, 1, 128))
-
-
-
-#here is an example string resource cursor. to use this;
-# curs, mask = pygame.cursors.compile_cursor(pygame.cursors.thickarrow_strings, 'X', '.')
-# pygame.mouse.set_cursor((24, 24), (0, 0), curs, mask)
-
-thickarrow_strings = ( #sized 24x24
- "XX ",
- "XXX ",
- "XXXX ",
- "XX.XX ",
- "XX..XX ",
- "XX...XX ",
- "XX....XX ",
- "XX.....XX ",
- "XX......XX ",
- "XX.......XX ",
- "XX........XX ",
- "XX........XXX ",
- "XX......XXXXX ",
- "XX.XXX..XX ",
- "XXXX XX..XX ",
- "XX XX..XX ",
- " XX..XX ",
- " XX..XX ",
- " XX..XX ",
- " XXXX ",
- " XX ",
- " ",
- " ",
- " ",
-)
-
-sizer_x_strings = ( #sized 24x16
- " X X ",
- " XX XX ",
- " X.X X.X ",
- " X..X X..X ",
- " X...XXXXXXXX...X ",
- "X................X ",
- " X...XXXXXXXX...X ",
- " X..X X..X ",
- " X.X X.X ",
- " XX XX ",
- " X X ",
- " ",
- " ",
- " ",
- " ",
- " ",
-)
-sizer_y_strings = ( #sized 16x24
- " X ",
- " X.X ",
- " X...X ",
- " X.....X ",
- " X.......X ",
- "XXXXX.XXXXX ",
- " X.X ",
- " X.X ",
- " X.X ",
- " X.X ",
- " X.X ",
- " X.X ",
- " X.X ",
- "XXXXX.XXXXX ",
- " X.......X ",
- " X.....X ",
- " X...X ",
- " X.X ",
- " X ",
- " ",
- " ",
- " ",
- " ",
- " ",
-)
-sizer_xy_strings = ( #sized 24x16
- "XXXXXXXX ",
- "X.....X ",
- "X....X ",
- "X...X ",
- "X..X.X ",
- "X.X X.X ",
- "XX X.X X ",
- "X X.X XX ",
- " X.XX.X ",
- " X...X ",
- " X...X ",
- " X....X ",
- " X.....X ",
- " XXXXXXXX ",
- " ",
- " ",
-)
-textmarker_strings = ( #sized 8x16
- "ooo ooo ",
- " o ",
- " o ",
- " o ",
- " o ",
- " o ",
- " o ",
- " o ",
- " o ",
- " o ",
- " o ",
- "ooo ooo ",
- " ",
- " ",
- " ",
- " ",
-)
-
-
-
-def compile(strings, black='X', white='.',xor='o'):
- """pygame.cursors.compile(strings, black, white,xor) -> data, mask
-compile cursor strings into cursor data
-
-This takes a set of strings with equal length and computes
-the binary data for that cursor. The string widths must be
-divisible by 8.
-
-The black and white arguments are single letter strings that
-tells which characters will represent black pixels, and which
-characters represent white pixels. All other characters are
-considered clear.
-
-This returns a tuple containing the cursor data and cursor mask
-data. Both these arguments are used when setting a cursor with
-pygame.mouse.set_cursor().
-"""
-
- #first check for consistent lengths
- size = len(strings[0]), len(strings)
- if size[0] % 8 or size[1] % 8:
- raise ValueError("cursor string sizes must be divisible by 8 %s" %
- size)
- for s in strings[1:]:
- if len(s) != size[0]:
- raise ValueError("Cursor strings are inconsistent lengths")
-
- #create the data arrays.
- #this could stand a little optimizing
- maskdata = []
- filldata = []
- maskitem = fillitem = 0
- step = 8
- for s in strings:
- for c in s:
- maskitem = maskitem << 1
- fillitem = fillitem << 1
- step = step - 1
- if c == black:
- maskitem = maskitem | 1
- elif c == white:
- maskitem = maskitem | 1
- fillitem = fillitem | 1
- elif c == xor:
- fillitem = fillitem | 1
- if not step:
- maskdata.append(maskitem)
- filldata.append(fillitem)
- maskitem = fillitem = 0
- step = 8
- return tuple(filldata), tuple(maskdata)
-
-
-
-
-def load_xbm(curs, mask):
- """pygame.cursors.load_xbm(cursorfile, maskfile) -> cursor_args
-reads a pair of XBM files into set_cursor arguments
-
-Arguments can either be filenames or filelike objects
-with the readlines method. Not largely tested, but
-should work with typical XBM files.
-"""
- def bitswap(num):
- val = 0
- for x in range(8):
- b = num&(1<<x) != 0
- val = val<<1 | b
- return val
- if type(curs) is type(''): curs = open(curs)
- if type(mask) is type(''): mask = open(mask)
- curs = curs.readlines()
- mask = mask.readlines()
- #avoid comments
- for line in range(len(curs)):
- if curs[line].startswith("#define"):
- curs = curs[line:]
- break
- for line in range(len(mask)):
- if mask[line].startswith("#define"):
- mask = mask[line:]
- break
- #load width,height
- width = int(curs[0].split()[-1])
- height = int(curs[1].split()[-1])
- #load hotspot position
- if curs[2].startswith('#define'):
- hotx = int(curs[2].split()[-1])
- hoty = int(curs[3].split()[-1])
- else:
- hotx = hoty = 0
-
- info = width, height, hotx, hoty
-
- for line in range(len(curs)):
- if curs[line].startswith('static char') or curs[line].startswith('static unsigned char'):
- break
- data = ' '.join(curs[line+1:]).replace('};', '').replace(',', ' ')
- cursdata = []
- for x in data.split():
- cursdata.append(bitswap(int(x, 16)))
- cursdata = tuple(cursdata)
-
- for line in range(len(mask)):
- if mask[line].startswith('static char') or mask[line].startswith('static unsigned char'):
- break
- data = ' '.join(mask[line+1:]).replace('};', '').replace(',', ' ')
- maskdata = []
- for x in data.split():
- maskdata.append(bitswap(int(x, 16)))
- maskdata = tuple(maskdata)
- return info[:2], info[2:], cursdata, maskdata