42 _CPSmartPboardType =
@"_CPSmartPboardType";
63 unsigned _changeCount;
83 + (id)generalPasteboard
95 var pasteboard = [CPPasteboards objectForKey:aName];
101 [CPPasteboards setObject:pasteboard forKey:aName];
131 - (unsigned)addTypes:(CPArray)types owner:(
id)anOwner
134 count = types.length;
136 for (; i < count; ++i)
140 if (![_owners objectForKey:type])
142 [_types addObject:type];
143 [_provided removeObjectForKey:type];
146 [_owners setObject:anOwner forKey:type];
149 return ++_changeCount;
158 - (unsigned)declareTypes:(CPArray)types owner:(
id)anOwner
160 [_types setArray:types];
167 var count = _types.length;
169 [_owners setObject:anOwner forKey:_types[count]];
172 return ++_changeCount;
183 [_provided setObject:aData forKey:aType];
197 - (BOOL)setPropertyList:(
id)aPropertyList forType:(
CPString)aType
211 if (aString && aString.isa && ![aString isKindOfClass:
CPString])
212 [
CPException raise:CPInvalidArgumentException
reason:"CPPasteboard setString:forType: must be called with a string."];
224 - (
CPString)availableTypeFromArray:(CPArray)anArray
226 return [anArray firstObjectCommonWithArray:[
self types]];
241 - (unsigned)changeCount
253 var data = [_provided objectForKey:aType];
258 var owner = [_owners objectForKey:aType];
262 [owner pasteboard:self provideDataForType:aType];
263 return [_provided objectForKey:aType];
305 _stateUID += FLOOR(RAND() * 16.0).
toString(16).toUpperCase();
320 var DOMDataTransferPasteboard = nil;
322 @implementation _CPDOMDataTransferPasteboard :
CPPasteboard 324 DataTransfer _dataTransfer;
327 + (_CPDOMDataTransferPasteboard)DOMDataTransferPasteboard
329 if (!DOMDataTransferPasteboard)
330 DOMDataTransferPasteboard = [[_CPDOMDataTransferPasteboard alloc] init];
332 return DOMDataTransferPasteboard;
335 - (void)_setDataTransfer:(DataTransfer)aDataTransfer
337 _dataTransfer = aDataTransfer;
342 _dataTransfer.clearData();
344 var types = [aPasteboard
types],
345 count = types.length;
349 var type = types[count];
352 _dataTransfer.setData(type, [aPasteboard stringForType:type]);
354 _dataTransfer.setData(type, [[aPasteboard dataForType:type] rawString]);
360 return Array.prototype.slice.apply(_dataTransfer.types);
365 var dataString = _dataTransfer.getData(aType);
368 return [
CPData dataFromPropertyList:dataString format:kCFPropertyList280NorthFormat_v1_0];
373 - (id)propertyListForType:(
CPString)aType
376 return _dataTransfer.getData(aType);
ThemeState prototype toString
Used to implement exception handling (creating & raising).
CPData dataFromPropertyList:format:(id aPlist, [format] CPPropertyListFormat aFormat)
BOOL setData:forType:(CPData aData, [forType] CPString aType)
A Cappuccino wrapper for any data type.
void raise:reason:(CPString aName, [reason] CPString aReason)
BOOL setPropertyList:forType:(id aPropertyList, [forType] CPString aType)
A mutable key-value pair collection.
id propertyListFromData:format:(CPData data, [format] CPPropertyListFormat aFormat)
An immutable string (collection of characters).
CPData dataWithRawString:(CPString aString)
id propertyListForType:(CPString aType)
void setVersion:(int aVersion)
DataTransfer CPGeneralPboard
CPData dataForType:(CPString aType)
id pasteboardWithName:(CPString aName)