diff options
Diffstat (limited to 'lib/pygame/mac_scrap.py')
-rwxr-xr-x | lib/pygame/mac_scrap.py | 139 |
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]) |