Lightningbeam/PyGUI-2.5.3/build/lib/GUI/Files.py

44 lines
1.3 KiB
Python

#
# Python GUI - File references and types - Cocoa
#
from struct import unpack
from Foundation import NSFileTypeForHFSTypeCode, \
NSFileManager, NSFileHFSCreatorCode, NSFileHFSTypeCode
from GUI.GFiles import FileRef as GFileRef, DirRef, FileType as GFileType
class FileType(GFileType):
def _ns_file_types(self):
# Return list of Cocoa file type specifications matched
# by this file type.
result = []
mac_type = self._mac_type
if mac_type:
result.append(NSFileTypeForHFSTypeCode(mac_type))
suffix = self._suffix
if suffix:
result.append(suffix)
return result
class FileRef(GFileRef):
def _set_type(self, file_type):
creator = file_type.mac_creator
type = file_type.mac_type
if creator is not None or type is not None:
fm = NSFileManager.defaultManager()
attrs = {}
if creator is not None:
attrs[NSFileHFSCreatorCode] = four_char_code(creator)
if type is not None:
attrs[NSFileHFSTypeCode] = four_char_code(type)
#print "FileRef: Setting attributes of %r to %s" % ( ###
# self.path, attrs) ###
fm.changeFileAttributes_atPath_(attrs, self.path)
def four_char_code(chars):
return unpack(">L", chars)[0]