Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/lib/pygame/mac_scrap.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pygame/mac_scrap.py')
-rwxr-xr-xlib/pygame/mac_scrap.py139
1 files changed, 0 insertions, 139 deletions
diff --git a/lib/pygame/mac_scrap.py b/lib/pygame/mac_scrap.py
deleted file mode 100755
index 678c991..0000000
--- a/lib/pygame/mac_scrap.py
+++ /dev/null
@@ -1,139 +0,0 @@
-#
-# These methods are called internally by pygame.scrap
-#
-from AppKit import *
-from Foundation import *
-
-import sys
-import tempfile
-import pygame.image
-from pygame.locals import SCRAP_TEXT, SCRAP_BMP, SCRAP_SELECTION, SCRAP_CLIPBOARD
-from cStringIO import StringIO
-from pygame.compat import unicode_
-
-ScrapPboardType = unicode_('org.pygame.scrap')
-
-
-err = "Only text has been implemented for scrap on mac. See lib/mac_scrap.py to debug."
-
-
-
-def init():
- return 1
-
-def get(scrap_type):
- board = NSPasteboard.generalPasteboard()
-
- if 0:
- print (board.types)
- print (dir(board.types))
- print (dir(board))
- print (board.__doc__)
-
- if scrap_type == SCRAP_TEXT:
- return board.stringForType_(NSStringPboardType)
- elif 1:
- raise NotImplementedError(err)
-
-
- elif 0 and scrap_type == SCRAP_BMP:
- # We could try loading directly but I don't trust pygame's TIFF
- # loading. This is slow and stupid but it does happen to work.
- if not NSImage.canInitWithPasteboard_(board):
- return None
- img = NSImage.alloc().initWithPasteboard_(board)
- data = img.TIFFRepresentation()
- rep = NSBitmapImageRep.alloc().initWithData_(data)
- if rep is None:
- return None
-
- # bug with bmp, out of memory error... so we use png.
- #data = rep.representationUsingType_properties_(NSBMPFileType, None)
- data = rep.representationUsingType_properties_(NSPNGFileType, None)
- bmp = StringIO(data)
- return pygame.image.load(bmp, "scrap.png")
- #elif scrap_type in board.types:
- elif scrap_type == SCRAP_BMP:
- return board.dataForType_(scrap_type)
- else:
- return board.stringForType_(scrap_type)
-
-def put(scrap_type, thing):
- board = NSPasteboard.generalPasteboard()
- if scrap_type == SCRAP_TEXT:
- board.declareTypes_owner_([NSStringPboardType, ScrapPboardType], None)
- if isinstance(thing, unicode):
- text_thing = thing
- else:
- text_thing = unicode(thing, 'utf-8')
- board.setString_forType_(text_thing, NSStringPboardType)
- board.setString_forType_(unicode_(''), ScrapPboardType)
- elif 1:
- raise NotImplementedError(err)
-
-
-
-
-
- elif 0 and scrap_type == SCRAP_BMP:
- # Don't use this code... we put the data in as a string.
-
- #if type(thing) != type(pygame.Surface((1,1))):
- # thing = pygame.image.fromstring(thing, len(thing) * 4, "RGBA")
-
-
- # This is pretty silly, we shouldn't have to do this...
- fh = tempfile.NamedTemporaryFile(suffix='.png')
- pygame.image.save(thing, fh.name)
- path = fh.name
- if not isinstance(path, unicode):
- path = unicode(path, sys.getfilesystemencoding())
- img = NSImage.alloc().initByReferencingFile_(path)
- tiff = img.TIFFRepresentation()
- fh.close()
- board.declareTypes_owner_([NSTIFFPboardType, ScrapPboardType], None)
- board.setData_forType_(tiff, NSTIFFPboardType)
- board.setString_forType_(unicode_(''), ScrapPboardType)
- elif scrap_type == SCRAP_BMP:
-
- other_type = scrap_type
- board.declareTypes_owner_([other_type], None)
- board.setData_forType_(thing, other_type)
-
- else:
- other_type = scrap_type
- if 0:
- board.declareTypes_owner_([NSStringPboardType, other_type], None)
- board.setString_forType_(text_thing, NSStringPboardType)
- elif 0:
- board.declareTypes_owner_([other_type], None)
- #board.setString_forType_(thing, other_type)
- board.setData_forType_(thing, other_type)
- else:
- board.declareTypes_owner_([NSStringPboardType, other_type], None)
- board.setString_forType_(thing, NSStringPboardType)
-
- #board.setData_forType_(thing, other_type)
-
-
-
-
-
-def set_mode (mode):
- # No diversion between clipboard and selection modes on MacOS X.
- if mode not in [SCRAP_SELECTION, SCRAP_CLIPBOARD]:
- raise ValueError("invalid clipboard mode")
-
-def contains (scrap_type):
- return scrap_type in NSPasteboard.generalPasteboard ().types ()
-
-def get_types ():
- typelist = []
- types = NSPasteboard.generalPasteboard ().types ()
- for t in types:
- typelist.append (t)
- return typelist
-
-def lost ():
- board = NSPasteboard.generalPasteboard ()
- return not board.availableTypeFromArray_ ([ScrapPboardType])