From 135760bc93abb1851879817bee42a121f505b459 Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Mon, 29 Sep 2008 02:12:46 +0000 Subject: [PATCH] Adds more classes and improves texteditor example git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@575 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- bindings/pascocoa/build/buildfoundation.sh | 1 + .../examples/texteditor/controller.pas | 15 +- bindings/pascocoa/foundation/Foundation.inc | 8 +- bindings/pascocoa/foundation/NSArray.inc | 887 +++++++++ bindings/pascocoa/foundation/NSString.inc | 1599 +++++++++++++++++ bindings/pascocoa/parser/default.ini | 10 - 6 files changed, 2504 insertions(+), 16 deletions(-) create mode 100644 bindings/pascocoa/foundation/NSArray.inc create mode 100644 bindings/pascocoa/foundation/NSString.inc diff --git a/bindings/pascocoa/build/buildfoundation.sh b/bindings/pascocoa/build/buildfoundation.sh index 7ca2d03e1..df2194726 100755 --- a/bindings/pascocoa/build/buildfoundation.sh +++ b/bindings/pascocoa/build/buildfoundation.sh @@ -7,4 +7,5 @@ FRAMEWORK="/System/Library/Frameworks/Foundation.framework/Headers" ./objcparser -ini=$DEFAULT_INI -ini=$LOCAL_INI $FRAMEWORK/NSArray.h > ../foundation/NSArray.inc #./objcparser -ini=$DEFAULT_INI -ini=$LOCAL_INI $FRAMEWORK/NSDate.h > ../foundation/NSDate.inc #./objcparser -ini=$DEFAULT_INI -ini=$LOCAL_INI $FRAMEWORK/NSRange.h > ../foundation/NSRange.inc +./objcparser -ini=$DEFAULT_INI -ini=$LOCAL_INI $FRAMEWORK/NSString.h > ../foundation/NSString.inc #./objcparser -ini=$DEFAULT_INI -ini=$LOCAL_INI $FRAMEWORK/NSValue.h > ../foundation/NSValue.inc diff --git a/bindings/pascocoa/examples/texteditor/controller.pas b/bindings/pascocoa/examples/texteditor/controller.pas index 501af97f6..77f1a81cd 100644 --- a/bindings/pascocoa/examples/texteditor/controller.pas +++ b/bindings/pascocoa/examples/texteditor/controller.pas @@ -41,6 +41,8 @@ const var myController: TMyController; + OpenPanel: NSOpenPanel; + SavePanel: NSSavePanel; implementation @@ -73,6 +75,9 @@ begin if not CreateClassDefinition(ClassName(), Str_NSObject) then WriteLn('Failed to create objc class ' + ClassName()); inherited Create; + + { Create objects } + OpenPanel := NSOpenPanel.openPanel; end; { Objective-c Methods } @@ -84,13 +89,19 @@ end; class procedure TMyController.doOpenFile(_self: objc.id; _cmd: SEL; sender: objc.id); cdecl; +var + FileContents: NSString; begin { Show dialog } + if OpenPanel.runModal = NSFileHandlingPanelOKButton then + begin + { Now move the contents of the file to the edit control } + FileContents := NSString.initWithContentsOfFile(OpenPanel.filename); - { Now move the contents of the file to the edit control } - + myView.TextField.setStringValue(CFStringRef(FileContents.Handle)); + end; end; class procedure TMyController.doSaveFile(_self: objc.id; _cmd: SEL; diff --git a/bindings/pascocoa/foundation/Foundation.inc b/bindings/pascocoa/foundation/Foundation.inc index b1a902d2a..dfd0aa911 100644 --- a/bindings/pascocoa/foundation/Foundation.inc +++ b/bindings/pascocoa/foundation/Foundation.inc @@ -12,7 +12,7 @@ {$include NSObjCRuntime.inc} {#import #import } -{.$include NSArray.inc} // Use CFArrayRef +{$include NSArray.inc} {#import } {$include NSAutoreleasePool.inc} {#import @@ -75,9 +75,9 @@ #import #import #import -#import -#import -#import +#import } +{$include NSString.inc} +{#import #import #import #import diff --git a/bindings/pascocoa/foundation/NSArray.inc b/bindings/pascocoa/foundation/NSArray.inc new file mode 100644 index 000000000..075d70274 --- /dev/null +++ b/bindings/pascocoa/foundation/NSArray.inc @@ -0,0 +1,887 @@ +{%mainunit foundation.pas} +(* NSArray.h + Copyright (c) 1994-2005, Apple, Inc. All rights reserved. +*) + +{$ifdef HEADER} +{$ifndef NSARRAY_PAS_H} +{$define NSARRAY_PAS_H} + +{$include NSObject.inc} +{$include NSRange.inc} + +{$endif} +{$endif} + +{$ifdef FORWARD} + NSArray = class; + NSMutableArray = class; + +{$endif} + +{$ifdef CLASSES} +{$ifndef NSARRAY_PAS_C} +{$define NSARRAY_PAS_C} + + TProcNSArraycomparator0 = function (_param1: objc.id; _param2: objc.id; _param3: Pointer): Integer; cdecl; + TProcNSArraycomparator1 = function (_param1: objc.id; _param2: objc.id; _param3: Pointer): Integer; cdecl; + TProcNSMutableArraycompare2 = function (_param1: objc.id; _param2: objc.id; _param3: Pointer): Integer; cdecl; + +{$include NSObject.inc} +{$include NSRange.inc} + // *************** Immutable Array *************** + + { NSArray } + + NSArray = class(NSObject) + public + class function getClass: objc.id; override; + function count: LongWord; + function objectAtIndex(__index: LongWord): objc.id; + function arrayByAddingObject(_anObject: objc.id): CFArrayRef; + function arrayByAddingObjectsFromArray(_otherArray: CFArrayRef): CFArrayRef; + function componentsJoinedByString(_separator: CFStringRef): CFStringRef; + function containsObject(_anObject: objc.id): LongBool; + function description: CFStringRef; + function descriptionWithLocale(_locale: CFDictionaryRef): CFStringRef; + function descriptionWithLocale_indent(_locale: CFDictionaryRef; _level: LongWord): CFStringRef; + function firstObjectCommonWithArray(_otherArray: CFArrayRef): objc.id; + procedure getObjects(_objects: objc.id); + procedure getObjects_range(_objects: objc.id; _range: NSRange); + function indexOfObject(_anObject: objc.id): LongWord; + function indexOfObject_inRange(_anObject: objc.id; _range: NSRange): LongWord; + function indexOfObjectIdenticalTo(_anObject: objc.id): LongWord; + function indexOfObjectIdenticalTo_inRange(_anObject: objc.id; _range: NSRange): LongWord; + function isEqualToArray(_otherArray: CFArrayRef): LongBool; + function lastObject: objc.id; + function objectEnumerator: objc.id;{NSEnumerator} + function reverseObjectEnumerator: objc.id;{NSEnumerator} + function sortedArrayHint: CFDataRef; + function sortedArrayUsingFunction_context(_comparator: TProcNSArraycomparator0; _context: Pointer): CFArrayRef; + function sortedArrayUsingFunction_context_hint(_comparator: TProcNSArraycomparator1; _context: Pointer; _hint: CFDataRef): CFArrayRef; + function sortedArrayUsingSelector(_comparator: SEL): CFArrayRef; + function subarrayWithRange(_range: NSRange): CFArrayRef; + function writeToFile_atomically(_path: CFStringRef; _useAuxiliaryFile: LongBool): LongBool; + function writeToURL_atomically(_url: CFURLRef; _atomically: LongBool): LongBool; + procedure makeObjectsPerformSelector(_aSelector: SEL); + procedure makeObjectsPerformSelector_withObject(_aSelector: SEL; _argument: objc.id); + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4} + function objectsAtIndexes(_indexes: objc.id {NSIndexSet}): CFArrayRef; + {.$endif} + constructor array_; + constructor arrayWithContentsOfFile(_path: CFStringRef); + constructor arrayWithContentsOfURL(_url: CFURLRef); + constructor arrayWithObject(_anObject: objc.id); + constructor arrayWithObjects(_firstObj: objc.id); + constructor initWithArray(__array: CFArrayRef); + {.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} + constructor initWithArray_copyItems(__array: CFArrayRef; _flag: LongBool); + {.$endif} + constructor initWithContentsOfFile(_path: CFStringRef); + constructor initWithContentsOfURL(_url: CFURLRef); + constructor initWithObjects_count(_objects: objc.id; _count: LongWord); + constructor initWithObjects(_firstObj: objc.id); + constructor arrayWithArray(__array: CFArrayRef); + constructor arrayWithObjects_count(_objs: objc.id; _cnt: LongWord); + end; + + // *************** Mutable Array *************** + + { NSMutableArray } + + NSMutableArray = class(NSArray) + public + class function getClass: objc.id; override; + procedure addObject(_anObject: objc.id); + procedure insertObject_atIndex(_anObject: objc.id; __index: LongWord); + procedure removeLastObject; + procedure removeObjectAtIndex(__index: LongWord); + procedure replaceObjectAtIndex_withObject(__index: LongWord; _anObject: objc.id); + procedure addObjectsFromArray(_otherArray: CFArrayRef); + procedure exchangeObjectAtIndex_withObjectAtIndex(_idx1: LongWord; _idx2: LongWord); + procedure removeAllObjects; + procedure removeObject_inRange(_anObject: objc.id; _range: NSRange); + procedure removeObject(_anObject: objc.id); + procedure removeObjectIdenticalTo_inRange(_anObject: objc.id; _range: NSRange); + procedure removeObjectIdenticalTo(_anObject: objc.id); + procedure removeObjectsFromIndices_numIndices(_indices: PLongWord; _count: LongWord); + procedure removeObjectsInArray(_otherArray: CFArrayRef); + procedure removeObjectsInRange(_range: NSRange); + procedure replaceObjectsInRange_withObjectsFromArray_range(_range: NSRange; _otherArray: CFArrayRef; _otherRange: NSRange); + procedure replaceObjectsInRange_withObjectsFromArray(_range: NSRange; _otherArray: CFArrayRef); + procedure setArray(_otherArray: CFArrayRef); + procedure sortUsingFunction_context(_compare: TProcNSMutableArraycompare2; _context: Pointer); + procedure sortUsingSelector(_comparator: SEL); + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4} + procedure insertObjects_atIndexes(_objects: CFArrayRef; _indexes: objc.id {NSIndexSet}); + procedure removeObjectsAtIndexes(_indexes: objc.id {NSIndexSet}); + procedure replaceObjectsAtIndexes_withObjects(_indexes: objc.id {NSIndexSet}; _objects: CFArrayRef); + {.$endif} + constructor arrayWithCapacity(_numItems: LongWord); + constructor initWithCapacity(_numItems: LongWord); + end; + +{$endif} +{$endif} + +{$ifdef IMPLEMENTATION} +const + StrNSArray_NSArray = 'NSArray'; + StrNSArray_count = 'count'; + StrNSArray_objectAtIndex = 'objectAtIndex:'; + + StrNSArray_arrayByAddingObject = 'arrayByAddingObject:'; + StrNSArray_arrayByAddingObjectsFromArray = 'arrayByAddingObjectsFromArray:'; + StrNSArray_componentsJoinedByString = 'componentsJoinedByString:'; + StrNSArray_containsObject = 'containsObject:'; + StrNSArray_description = 'description'; + StrNSArray_descriptionWithLocale = 'descriptionWithLocale:'; + StrNSArray_descriptionWithLocale_indent = 'descriptionWithLocale:indent:'; + StrNSArray_firstObjectCommonWithArray = 'firstObjectCommonWithArray:'; + StrNSArray_getObjects = 'getObjects:'; + StrNSArray_getObjects_range = 'getObjects:range:'; + StrNSArray_indexOfObject = 'indexOfObject:'; + StrNSArray_indexOfObject_inRange = 'indexOfObject:inRange:'; + StrNSArray_indexOfObjectIdenticalTo = 'indexOfObjectIdenticalTo:'; + StrNSArray_indexOfObjectIdenticalTo_inRange = 'indexOfObjectIdenticalTo:inRange:'; + StrNSArray_isEqualToArray = 'isEqualToArray:'; + StrNSArray_lastObject = 'lastObject'; + StrNSArray_objectEnumerator = 'objectEnumerator'; + StrNSArray_reverseObjectEnumerator = 'reverseObjectEnumerator'; + StrNSArray_sortedArrayHint = 'sortedArrayHint'; + StrNSArray_sortedArrayUsingFunction_context = 'sortedArrayUsingFunction:context:'; + StrNSArray_sortedArrayUsingFunction_context_hint = 'sortedArrayUsingFunction:context:hint:'; + StrNSArray_sortedArrayUsingSelector = 'sortedArrayUsingSelector:'; + StrNSArray_subarrayWithRange = 'subarrayWithRange:'; + StrNSArray_writeToFile_atomically = 'writeToFile:atomically:'; + StrNSArray_writeToURL_atomically = 'writeToURL:atomically:'; + StrNSArray_makeObjectsPerformSelector = 'makeObjectsPerformSelector:'; + StrNSArray_makeObjectsPerformSelector_withObject = 'makeObjectsPerformSelector:withObject:'; + StrNSArray_objectsAtIndexes = 'objectsAtIndexes:'; + + StrNSArray_array = 'array'; + StrNSArray_arrayWithContentsOfFile = 'arrayWithContentsOfFile:'; + StrNSArray_arrayWithContentsOfURL = 'arrayWithContentsOfURL:'; + StrNSArray_arrayWithObject = 'arrayWithObject:'; + StrNSArray_arrayWithObjects = 'arrayWithObjects:'; + StrNSArray_initWithArray = 'initWithArray:'; + StrNSArray_initWithArray_copyItems = 'initWithArray:copyItems:'; + StrNSArray_initWithContentsOfFile = 'initWithContentsOfFile:'; + StrNSArray_initWithContentsOfURL = 'initWithContentsOfURL:'; + StrNSArray_initWithObjects_count = 'initWithObjects:count:'; + StrNSArray_initWithObjects = 'initWithObjects:'; + StrNSArray_arrayWithArray = 'arrayWithArray:'; + StrNSArray_arrayWithObjects_count = 'arrayWithObjects:count:'; + + StrNSMutableArray_NSMutableArray = 'NSMutableArray'; + StrNSMutableArray_addObject = 'addObject:'; + StrNSMutableArray_insertObject_atIndex = 'insertObject:atIndex:'; + StrNSMutableArray_removeLastObject = 'removeLastObject'; + StrNSMutableArray_removeObjectAtIndex = 'removeObjectAtIndex:'; + StrNSMutableArray_replaceObjectAtIndex_withObject = 'replaceObjectAtIndex:withObject:'; + + StrNSMutableArray_addObjectsFromArray = 'addObjectsFromArray:'; + StrNSMutableArray_exchangeObjectAtIndex_withObjectAtIndex = 'exchangeObjectAtIndex:withObjectAtIndex:'; + StrNSMutableArray_removeAllObjects = 'removeAllObjects'; + StrNSMutableArray_removeObject_inRange = 'removeObject:inRange:'; + StrNSMutableArray_removeObject = 'removeObject:'; + StrNSMutableArray_removeObjectIdenticalTo_inRange = 'removeObjectIdenticalTo:inRange:'; + StrNSMutableArray_removeObjectIdenticalTo = 'removeObjectIdenticalTo:'; + StrNSMutableArray_removeObjectsFromIndices_numIndices = 'removeObjectsFromIndices:numIndices:'; + StrNSMutableArray_removeObjectsInArray = 'removeObjectsInArray:'; + StrNSMutableArray_removeObjectsInRange = 'removeObjectsInRange:'; + StrNSMutableArray_replaceObjectsInRange_withObjectsFromArray_range = 'replaceObjectsInRange:withObjectsFromArray:range:'; + StrNSMutableArray_replaceObjectsInRange_withObjectsFromArray = 'replaceObjectsInRange:withObjectsFromArray:'; + StrNSMutableArray_setArray = 'setArray:'; + StrNSMutableArray_sortUsingFunction_context = 'sortUsingFunction:context:'; + StrNSMutableArray_sortUsingSelector = 'sortUsingSelector:'; + StrNSMutableArray_insertObjects_atIndexes = 'insertObjects:atIndexes:'; + StrNSMutableArray_removeObjectsAtIndexes = 'removeObjectsAtIndexes:'; + StrNSMutableArray_replaceObjectsAtIndexes_withObjects = 'replaceObjectsAtIndexes:withObjects:'; + + StrNSMutableArray_arrayWithCapacity = 'arrayWithCapacity:'; + StrNSMutableArray_initWithCapacity = 'initWithCapacity:'; + +{ NSArray } + +class function NSArray.getClass: objc.id; +begin + Result := objc_getClass(StrNSArray_NSArray); +end; + +function NSArray.count: LongWord; +begin + Result := LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSArray_count)), [])); +end; + +function NSArray.objectAtIndex(__index: LongWord): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__index: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSArray_objectAtIndex)), __index)); +end; + +function NSArray.arrayByAddingObject(_anObject: objc.id): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_arrayByAddingObject)), _anObject)); +end; + +function NSArray.arrayByAddingObjectsFromArray(_otherArray: CFArrayRef): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_otherArray: CFArrayRef): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_arrayByAddingObjectsFromArray)), _otherArray)); +end; + +function NSArray.componentsJoinedByString(_separator: CFStringRef): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_separator: CFStringRef): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_componentsJoinedByString)), _separator)); +end; + +function NSArray.containsObject(_anObject: objc.id): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSArray_containsObject)), _anObject)); +end; + +function NSArray.description: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSArray_description)), [])); +end; + +function NSArray.descriptionWithLocale(_locale: CFDictionaryRef): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_locale: CFDictionaryRef): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_descriptionWithLocale)), _locale)); +end; + +function NSArray.descriptionWithLocale_indent(_locale: CFDictionaryRef; _level: LongWord): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_locale: CFDictionaryRef; _level: LongWord): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_descriptionWithLocale_indent)), _locale, _level)); +end; + +function NSArray.firstObjectCommonWithArray(_otherArray: CFArrayRef): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_otherArray: CFArrayRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSArray_firstObjectCommonWithArray)), _otherArray)); +end; + +procedure NSArray.getObjects(_objects: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_objects: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSArray_getObjects)), _objects); +end; + +procedure NSArray.getObjects_range(_objects: objc.id; _range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_objects: objc.id; _range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSArray_getObjects_range)), _objects, _range); +end; + +function NSArray.indexOfObject(_anObject: objc.id): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSArray_indexOfObject)), _anObject)); +end; + +function NSArray.indexOfObject_inRange(_anObject: objc.id; _range: NSRange): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id; _range: NSRange): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSArray_indexOfObject_inRange)), _anObject, _range)); +end; + +function NSArray.indexOfObjectIdenticalTo(_anObject: objc.id): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSArray_indexOfObjectIdenticalTo)), _anObject)); +end; + +function NSArray.indexOfObjectIdenticalTo_inRange(_anObject: objc.id; _range: NSRange): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id; _range: NSRange): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSArray_indexOfObjectIdenticalTo_inRange)), _anObject, _range)); +end; + +function NSArray.isEqualToArray(_otherArray: CFArrayRef): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_otherArray: CFArrayRef): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSArray_isEqualToArray)), _otherArray)); +end; + +function NSArray.lastObject: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSArray_lastObject)), [])); +end; + +function NSArray.objectEnumerator: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSArray_objectEnumerator)), [])); +end; + +function NSArray.reverseObjectEnumerator: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSArray_reverseObjectEnumerator)), [])); +end; + +function NSArray.sortedArrayHint: CFDataRef; +begin + Result := CFDataRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSArray_sortedArrayHint)), [])); +end; + +function NSArray.sortedArrayUsingFunction_context(_comparator: TProcNSArraycomparator0; _context: Pointer): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_comparator: TProcNSArraycomparator0; _context: Pointer): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_sortedArrayUsingFunction_context)), _comparator, _context)); +end; + +function NSArray.sortedArrayUsingFunction_context_hint(_comparator: TProcNSArraycomparator1; _context: Pointer; _hint: CFDataRef): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_comparator: TProcNSArraycomparator1; _context: Pointer; _hint: CFDataRef): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_sortedArrayUsingFunction_context_hint)), _comparator, _context, _hint)); +end; + +function NSArray.sortedArrayUsingSelector(_comparator: SEL): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_comparator: SEL): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_sortedArrayUsingSelector)), _comparator)); +end; + +function NSArray.subarrayWithRange(_range: NSRange): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_range: NSRange): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_subarrayWithRange)), _range)); +end; + +function NSArray.writeToFile_atomically(_path: CFStringRef; _useAuxiliaryFile: LongBool): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _useAuxiliaryFile: LongBool): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSArray_writeToFile_atomically)), _path, _useAuxiliaryFile)); +end; + +function NSArray.writeToURL_atomically(_url: CFURLRef; _atomically: LongBool): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _atomically: LongBool): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSArray_writeToURL_atomically)), _url, _atomically)); +end; + +procedure NSArray.makeObjectsPerformSelector(_aSelector: SEL); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aSelector: SEL); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSArray_makeObjectsPerformSelector)), _aSelector); +end; + +procedure NSArray.makeObjectsPerformSelector_withObject(_aSelector: SEL; _argument: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aSelector: SEL; _argument: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSArray_makeObjectsPerformSelector_withObject)), _aSelector, _argument); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4} +function NSArray.objectsAtIndexes(_indexes: objc.id {NSIndexSet}): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_indexes: objc.id {NSIndexSet}): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSArray_objectsAtIndexes)), _indexes)); +end; + +{.$endif} +constructor NSArray.array_; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_array))); +end; + +constructor NSArray.arrayWithContentsOfFile(_path: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_arrayWithContentsOfFile)), _path); +end; + +constructor NSArray.arrayWithContentsOfURL(_url: CFURLRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_arrayWithContentsOfURL)), _url); +end; + +constructor NSArray.arrayWithObject(_anObject: objc.id); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_anObject: objc.id): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_arrayWithObject)), _anObject); +end; + +constructor NSArray.arrayWithObjects(_firstObj: objc.id); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_firstObj: objc.id): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_arrayWithObjects)), _firstObj); +end; + +constructor NSArray.initWithArray(__array: CFArrayRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__array: CFArrayRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSArray_initWithArray)), __array); +end; + +{.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} +constructor NSArray.initWithArray_copyItems(__array: CFArrayRef; _flag: LongBool); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__array: CFArrayRef; _flag: LongBool): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSArray_initWithArray_copyItems)), __array, _flag); +end; + +{.$endif} +constructor NSArray.initWithContentsOfFile(_path: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSArray_initWithContentsOfFile)), _path); +end; + +constructor NSArray.initWithContentsOfURL(_url: CFURLRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSArray_initWithContentsOfURL)), _url); +end; + +constructor NSArray.initWithObjects_count(_objects: objc.id; _count: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_objects: objc.id; _count: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSArray_initWithObjects_count)), _objects, _count); +end; + +constructor NSArray.initWithObjects(_firstObj: objc.id); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_firstObj: objc.id): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSArray_initWithObjects)), _firstObj); +end; + +constructor NSArray.arrayWithArray(__array: CFArrayRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__array: CFArrayRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_arrayWithArray)), __array); +end; + +constructor NSArray.arrayWithObjects_count(_objs: objc.id; _cnt: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_objs: objc.id; _cnt: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSArray_arrayWithObjects_count)), _objs, _cnt); +end; + +{ NSMutableArray } + +class function NSMutableArray.getClass: objc.id; +begin + Result := objc_getClass(StrNSMutableArray_NSMutableArray); +end; + +procedure NSMutableArray.addObject(_anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_addObject)), _anObject); +end; + +procedure NSMutableArray.insertObject_atIndex(_anObject: objc.id; __index: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id; __index: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_insertObject_atIndex)), _anObject, __index); +end; + +procedure NSMutableArray.removeLastObject; +begin + objc_msgSend(Handle, sel_registerName(PChar(StrNSMutableArray_removeLastObject)), []); +end; + +procedure NSMutableArray.removeObjectAtIndex(__index: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;__index: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectAtIndex)), __index); +end; + +procedure NSMutableArray.replaceObjectAtIndex_withObject(__index: LongWord; _anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;__index: LongWord; _anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_replaceObjectAtIndex_withObject)), __index, _anObject); +end; + +procedure NSMutableArray.addObjectsFromArray(_otherArray: CFArrayRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_otherArray: CFArrayRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_addObjectsFromArray)), _otherArray); +end; + +procedure NSMutableArray.exchangeObjectAtIndex_withObjectAtIndex(_idx1: LongWord; _idx2: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_idx1: LongWord; _idx2: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_exchangeObjectAtIndex_withObjectAtIndex)), _idx1, _idx2); +end; + +procedure NSMutableArray.removeAllObjects; +begin + objc_msgSend(Handle, sel_registerName(PChar(StrNSMutableArray_removeAllObjects)), []); +end; + +procedure NSMutableArray.removeObject_inRange(_anObject: objc.id; _range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id; _range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObject_inRange)), _anObject, _range); +end; + +procedure NSMutableArray.removeObject(_anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObject)), _anObject); +end; + +procedure NSMutableArray.removeObjectIdenticalTo_inRange(_anObject: objc.id; _range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id; _range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectIdenticalTo_inRange)), _anObject, _range); +end; + +procedure NSMutableArray.removeObjectIdenticalTo(_anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectIdenticalTo)), _anObject); +end; + +procedure NSMutableArray.removeObjectsFromIndices_numIndices(_indices: PLongWord; _count: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_indices: PLongWord; _count: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectsFromIndices_numIndices)), _indices, _count); +end; + +procedure NSMutableArray.removeObjectsInArray(_otherArray: CFArrayRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_otherArray: CFArrayRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectsInArray)), _otherArray); +end; + +procedure NSMutableArray.removeObjectsInRange(_range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectsInRange)), _range); +end; + +procedure NSMutableArray.replaceObjectsInRange_withObjectsFromArray_range(_range: NSRange; _otherArray: CFArrayRef; _otherRange: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_range: NSRange; _otherArray: CFArrayRef; _otherRange: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_replaceObjectsInRange_withObjectsFromArray_range)), _range, _otherArray, _otherRange); +end; + +procedure NSMutableArray.replaceObjectsInRange_withObjectsFromArray(_range: NSRange; _otherArray: CFArrayRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_range: NSRange; _otherArray: CFArrayRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_replaceObjectsInRange_withObjectsFromArray)), _range, _otherArray); +end; + +procedure NSMutableArray.setArray(_otherArray: CFArrayRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_otherArray: CFArrayRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_setArray)), _otherArray); +end; + +procedure NSMutableArray.sortUsingFunction_context(_compare: TProcNSMutableArraycompare2; _context: Pointer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_compare: TProcNSMutableArraycompare2; _context: Pointer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_sortUsingFunction_context)), _compare, _context); +end; + +procedure NSMutableArray.sortUsingSelector(_comparator: SEL); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_comparator: SEL); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_sortUsingSelector)), _comparator); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4} +procedure NSMutableArray.insertObjects_atIndexes(_objects: CFArrayRef; _indexes: objc.id {NSIndexSet}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_objects: CFArrayRef; _indexes: objc.id {NSIndexSet}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_insertObjects_atIndexes)), _objects, _indexes); +end; + +procedure NSMutableArray.removeObjectsAtIndexes(_indexes: objc.id {NSIndexSet}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_indexes: objc.id {NSIndexSet}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_removeObjectsAtIndexes)), _indexes); +end; + +procedure NSMutableArray.replaceObjectsAtIndexes_withObjects(_indexes: objc.id {NSIndexSet}; _objects: CFArrayRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_indexes: objc.id {NSIndexSet}; _objects: CFArrayRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableArray_replaceObjectsAtIndexes_withObjects)), _indexes, _objects); +end; + +{.$endif} +constructor NSMutableArray.arrayWithCapacity(_numItems: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_numItems: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSMutableArray_arrayWithCapacity)), _numItems); +end; + +constructor NSMutableArray.initWithCapacity(_numItems: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_numItems: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSMutableArray_initWithCapacity)), _numItems); +end; + +{$endif} diff --git a/bindings/pascocoa/foundation/NSString.inc b/bindings/pascocoa/foundation/NSString.inc new file mode 100644 index 000000000..13b3d3058 --- /dev/null +++ b/bindings/pascocoa/foundation/NSString.inc @@ -0,0 +1,1599 @@ +{%mainunit foundation.pas} +(* NSString.h + Copyright (c) 1994-2005, Apple, Inc. All rights reserved. +*) + +{$ifdef HEADER} +{$ifndef NSSTRING_PAS_H} +{$define NSSTRING_PAS_H} + +{$include NSObject.inc} +{$include NSRange.inc} + {.$ifndef !defined(_OBJC_UNICHAR_H_)} + {.$endif} +const + NSMaximumStringLength = (High(cint)-1); + {$define _OBJC_UNICHAR_H_} + NS_UNICHAR_IS_EIGHT_BIT = 0; + {.$ifndef !defined(_OBJC_UNICHAR_H_)} + {.$endif} + +type + unichar = Word; + +//FOUNDATION_EXPORT NSString * const NSParseErrorException; // raised by -propertyList + // These options apply to the various search/find and comparison methods (except where + // noted). +const + NSCaseInsensitiveSearch = 1; + NSLiteralSearch = 2; + NSBackwardsSearch = 4; + NSAnchoredSearch = 8; + NSNumericSearch = 64; + +type + NSStringEncoding = LongWord; + +const + NSASCIIStringEncoding = 1; + NSNEXTSTEPStringEncoding = 2; + NSJapaneseEUCStringEncoding = 3; + NSUTF8StringEncoding = 4; + NSISOLatin1StringEncoding = 5; + NSSymbolStringEncoding = 6; + NSNonLossyASCIIStringEncoding = 7; + NSShiftJISStringEncoding = 8; + NSISOLatin2StringEncoding = 9; + NSUnicodeStringEncoding = 10; + NSWindowsCP1251StringEncoding = 11; + NSWindowsCP1252StringEncoding = 12; + NSWindowsCP1253StringEncoding = 13; + NSWindowsCP1254StringEncoding = 14; + NSWindowsCP1250StringEncoding = 15; + NSISO2022JPStringEncoding = 21; + NSMacOSRomanStringEncoding = 30; + NSProprietaryStringEncoding = 65536; + +//FOUNDATION_EXPORT NSString * const NSCharacterConversionException; +//extern void *_NSConstantStringClassReference; +{$endif} +{$endif} + +{$ifdef FORWARD} + NSString = class; + NSMutableString = class; + NSSimpleCString = class; + NSConstantString = class; + +{$endif} + +{$ifdef CLASSES} +{$ifndef NSSTRING_PAS_C} +{$define NSSTRING_PAS_C} + +{$include NSObject.inc} +{$include NSRange.inc} + + { NSString } + + NSString = class(NSObject) + public + class function getClass: objc.id; override; + // NSString primitive (funnel) methods. See below for the other methods. + function length: LongWord; + function characterAtIndex(__index: LongWord): unichar; + procedure getCharacters(_buffer: unichar); + procedure getCharacters_range(_buffer: unichar; _aRange: NSRange); + function substringFromIndex(_from: LongWord): CFStringRef; + function substringToIndex(__to: LongWord): CFStringRef; + function substringWithRange(_range: NSRange): CFStringRef; + function compare(__string: CFStringRef): NSComparisonResult; + function compare_options(__string: CFStringRef; _mask: LongWord): NSComparisonResult; + function compare_options_range(__string: CFStringRef; _mask: LongWord; _compareRange: NSRange): NSComparisonResult; + function compare_options_range_locale(__string: CFStringRef; _mask: LongWord; _compareRange: NSRange; _dict: CFDictionaryRef): NSComparisonResult; + function caseInsensitiveCompare(__string: CFStringRef): NSComparisonResult; + function localizedCompare(__string: CFStringRef): NSComparisonResult; + function localizedCaseInsensitiveCompare(__string: CFStringRef): NSComparisonResult; + function isEqualToString(_aString: CFStringRef): LongBool; + function hasPrefix(_aString: CFStringRef): LongBool; + function hasSuffix(_aString: CFStringRef): LongBool; + // These methods return length==0 if the target string is not found. So, to check for + // containment: ([str rangeOfString:@"target"].length > 0). Note that the length of + // the range returned by these methods might be different than the length of the target + // string, due composed characters and such. + function rangeOfString(_aString: CFStringRef): NSRange; + function rangeOfString_options(_aString: CFStringRef; _mask: LongWord): NSRange; + function rangeOfString_options_range(_aString: CFStringRef; _mask: LongWord; _searchRange: NSRange): NSRange; + // These return the range of the first character from the set in the string, not the + // range of a sequence of characters. + function rangeOfCharacterFromSet(_aSet: CFCharacterSetRef): NSRange; + function rangeOfCharacterFromSet_options(_aSet: CFCharacterSetRef; _mask: LongWord): NSRange; + function rangeOfCharacterFromSet_options_range(_aSet: CFCharacterSetRef; _mask: LongWord; _searchRange: NSRange): NSRange; + function rangeOfComposedCharacterSequenceAtIndex(__index: LongWord): NSRange; + function stringByAppendingString(_aString: CFStringRef): CFStringRef; + function stringByAppendingFormat(_format: CFStringRef): CFStringRef; + function doubleValue: double; + function floatValue: Single; + function intValue: Integer; + function componentsSeparatedByString(_separator: CFStringRef): CFArrayRef; + function commonPrefixWithString_options(_aString: CFStringRef; _mask: LongWord): CFStringRef; + function uppercaseString: CFStringRef; + function lowercaseString: CFStringRef; + function capitalizedString: CFStringRef; + {.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} + function stringByTrimmingCharactersInSet(__set: CFCharacterSetRef): CFStringRef; + function stringByPaddingToLength_withString_startingAtIndex(_newLength: LongWord; _padString: CFStringRef; _padIndex: LongWord): CFStringRef; + {.$endif} + procedure getLineStart_end_contentsEnd_forRange(_startPtr: PLongWord; _lineEndPtr: PLongWord; _contentsEndPtr: PLongWord; _range: NSRange); + function lineRangeForRange(_range: NSRange): NSRange; + {.$ifdef MAC_OS_X_VERSION_10_3 <= MAC_OS_X_VERSION_MAX_ALLOWED} + procedure getParagraphStart_end_contentsEnd_forRange(_startPtr: PLongWord; _parEndPtr: PLongWord; _contentsEndPtr: PLongWord; _range: NSRange); + function paragraphRangeForRange(_range: NSRange): NSRange; + {.$endif} + function description: CFStringRef; + function hash: LongWord; + // ** Encoding methods ** + function fastestEncoding: NSStringEncoding; + // Result in O(1) time; a rough estimate + function smallestEncoding: NSStringEncoding; + // Result in O(n) time; the encoding in which the string is most compact + function dataUsingEncoding_allowLossyConversion(_encoding: NSStringEncoding; _lossy: LongBool): CFDataRef; + function dataUsingEncoding(_encoding: NSStringEncoding): CFDataRef; + function canBeConvertedToEncoding(_encoding: NSStringEncoding): LongBool; + {.$ifdef MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED} + // Methods to convert NSString to a NULL-terminated cString using the specified encoding. + // Note, these are the "new" cString methods, and are not deprecated like the older + // cString methods which do not take encoding arguments. + function cStringUsingEncoding(_encoding: NSStringEncoding): PChar; + // "Autoreleased"; NULL return if encoding conversion not possible; for performance + // reasons, lifetime of this should not be considered longer than the lifetime of the + // receiving string (if the receiver string is freed, this might go invalid then, before + // the end of the autorelease scope) + function getCString_maxLength_encoding(_buffer: PChar; _maxBufferCount: LongWord; _encoding: NSStringEncoding): LongBool; + // NO return if conversion not possible due to encoding errors or too small of a buffer. + // The buffer should include room for maxBufferCount bytes plus the NULL termination + // character, which this method adds. (So pass in one less than the size of the buffer.) + // These return the maximum and exact number of bytes needed to store the receiver + // in the specified encoding in non-external representation. The first one is O(1), + // while the second one is O(n). These do not include space for a terminating null. + function maximumLengthOfBytesUsingEncoding(_enc: NSStringEncoding): LongWord; + // Result in O(1) time; the estimate may be way over what's needed + function lengthOfBytesUsingEncoding(_enc: NSStringEncoding): LongWord; + {.$endif} + {.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} + function decomposedStringWithCanonicalMapping: CFStringRef; + function precomposedStringWithCanonicalMapping: CFStringRef; + function decomposedStringWithCompatibilityMapping: CFStringRef; + function precomposedStringWithCompatibilityMapping: CFStringRef; + {.$endif} + function UTF8String: PChar; + // Convenience to return null-terminated UTF8 representation + // User-dependent encoding who value is derived from user's default language and potentially + // other factors. The use of this encoding might sometimes be needed when interpreting + // user documents with unknown encodings, in the absence of other hints. This encoding + // should be used rarely, if at all. Note that some potential values here might result + // in unexpected encoding conversions of even fairly straightforward NSString content + // --- for instance, punctuation characters with a bidirectional encoding. + class function defaultCStringEncoding: NSStringEncoding; + // Should be rarely used + class function availableStringEncodings: NSStringEncoding; + constructor localizedNameOfStringEncoding(_encoding: NSStringEncoding); + // ** Creation methods ** + // In general creation methods in NSString do not apply to subclassers, as subclassers + // are assumed to provide their own init methods which create the string in the way + // the subclass wishes. Designated initializers of NSString are thus init and initWithCoder:. + constructor init; + constructor initWithCharactersNoCopy_length_freeWhenDone(_characters: unichar; _length: LongWord; _freeBuffer: LongBool); + // "NoCopy" is a hint + constructor initWithCharacters_length(_characters: unichar; _length: LongWord); + constructor initWithUTF8String(_nullTerminatedCString: PChar); + constructor initWithString(_aString: CFStringRef); + constructor initWithFormat(_format: CFStringRef); +// constructor initWithFormat_arguments(_format: CFStringRef; const _argList: array of const); + constructor initWithFormat_locale(_format: CFStringRef; _dict: CFDictionaryRef); +// constructor initWithFormat_locale_arguments(_format: CFStringRef; _dict: CFDictionaryRef; const _argList: array of const); + constructor initWithData_encoding(_data: CFDataRef; _encoding: NSStringEncoding); + constructor initWithBytes_length_encoding(_bytes: Pointer; _len: LongWord; _encoding: NSStringEncoding); + {.$ifdef MAC_OS_X_VERSION_10_3 <= MAC_OS_X_VERSION_MAX_ALLOWED} + constructor initWithBytesNoCopy_length_encoding_freeWhenDone(_bytes: Pointer; _len: LongWord; _encoding: NSStringEncoding; _freeBuffer: LongBool); + {.$endif} + constructor string_; + constructor stringWithString(__string: CFStringRef); + constructor stringWithCharacters_length(_characters: unichar; _length: LongWord); + constructor stringWithUTF8String(_nullTerminatedCString: PChar); + constructor stringWithFormat(_format: CFStringRef); + constructor localizedStringWithFormat(_format: CFStringRef); + {.$ifdef MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED} + constructor initWithCString_encoding(_nullTerminatedCString: PChar; _encoding: NSStringEncoding); + constructor stringWithCString_encoding(_cString: PChar; _enc: NSStringEncoding); + // These use the specified encoding. If nil is returned, the optional error return + // indicates problem that was encountered (for instance, file system or encoding errors). + constructor initWithContentsOfURL_encoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + constructor initWithContentsOfFile_encoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + constructor stringWithContentsOfURL_encoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + constructor stringWithContentsOfFile_encoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + // These try to determine the encoding, and return the encoding which was used. Note + // that these methods might get "smarter" in subsequent releases of the system, and + // use additional techniques for recognizing encodings. If nil is returned, the optional + // error return indicates problem that was encountered (for instance, file system or + // encoding errors). + constructor initWithContentsOfURL_usedEncoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + constructor initWithContentsOfFile_usedEncoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + constructor stringWithContentsOfURL_usedEncoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + constructor stringWithContentsOfFile_usedEncoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); + // Write to specified url or path using the specified encoding. The optional error + // return is to indicate file system or encoding errors. + function writeToURL_atomically_encoding_error(_url: CFURLRef; _useAuxiliaryFile: LongBool; _enc: NSStringEncoding; _error: objc.id {NSError}): LongBool; + function writeToFile_atomically_encoding_error(_path: CFStringRef; _useAuxiliaryFile: LongBool; _enc: NSStringEncoding; _error: objc.id {NSError}): LongBool; + {.$endif} + function propertyList: objc.id; + function propertyListFromStringsFileFormat: CFDictionaryRef; + // The methods in this category are deprecated and will be removed from this header + // file in the near future. These methods use [NSString defaultCStringEncoding] as the + // encoding to convert to, which means the results depend on the user's language and + // potentially other settings. This might be appropriate in some cases, but often these + // methods are misused, resulting in issues when running in languages other then English. + // UTF8String in general is a much better choice when converting arbitrary NSStrings + // into 8-bit representations. Additional potential replacement methods are being introduced + // in NSString as appropriate. + function cString: PChar; + function lossyCString: PChar; + function cStringLength: LongWord; + procedure getCString(_bytes: PChar); + procedure getCString_maxLength(_bytes: PChar; _maxLength: LongWord); + procedure getCString_maxLength_range_remainingRange(_bytes: PChar; _maxLength: LongWord; _aRange: NSRange; _leftoverRange: NSRangePointer); + function writeToFile_atomically(_path: CFStringRef; _useAuxiliaryFile: LongBool): LongBool; + function writeToURL_atomically(_url: CFURLRef; _atomically: LongBool): LongBool; + constructor initWithContentsOfFile(_path: CFStringRef); + constructor initWithContentsOfURL(_url: CFURLRef); + constructor stringWithContentsOfFile(_path: CFStringRef); + constructor stringWithContentsOfURL(_url: CFURLRef); + constructor initWithCStringNoCopy_length_freeWhenDone(_bytes: PChar; _length: LongWord; _freeBuffer: LongBool); + constructor initWithCString_length(_bytes: PChar; _length: LongWord); + constructor initWithCString(_bytes: PChar); + constructor stringWithCString_length(_bytes: PChar; _length: LongWord); + constructor stringWithCString(_bytes: PChar); + end; + + + { NSMutableString } + + NSMutableString = class(NSString) + public + class function getClass: objc.id; override; + // NSMutableString primitive (funnel) method. See below for the other mutation methods. + procedure replaceCharactersInRange_withString(_range: NSRange; _aString: CFStringRef); + procedure insertString_atIndex(_aString: CFStringRef; _loc: LongWord); + procedure deleteCharactersInRange(_range: NSRange); + procedure appendString(_aString: CFStringRef); + procedure appendFormat(_format: CFStringRef); + procedure setString(_aString: CFStringRef); + // In addition to these two, NSMutableString responds properly to all NSString creation + // methods. + constructor initWithCapacity(_capacity: LongWord); + constructor stringWithCapacity(_capacity: LongWord); + {.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} + // This method replaces all occurrences of the target string with the replacement string, + // in the specified range of the receiver string, and returns the number of replacements. + // NSBackwardsSearch means the search is done from the end of the range (the results + // could be different); NSAnchoredSearch means only anchored (but potentially multiple) + // instances will be replaced. NSLiteralSearch and NSCaseInsensitiveSearch also apply. + // NSNumericSearch is ignored. Use NSMakeRange(0, [receiver length]) to process whole + // string. + function replaceOccurrencesOfString_withString_options_range(_target: CFStringRef; _replacement: CFStringRef; _opts: LongWord; _searchRange: NSRange): LongWord; + {.$endif} + end; + + {.$ifndef !defined(_OBJC_UNICHAR_H_)} + {.$endif} + + { NSSimpleCString } + + NSSimpleCString = class(NSString) + public + class function getClass: objc.id; override; + end; + + + { NSConstantString } + + NSConstantString = class(NSSimpleCString) + public + class function getClass: objc.id; override; + end; + +{$endif} +{$endif} + +{$ifdef IMPLEMENTATION} +const + StrNSString_NSString = 'NSString'; + StrNSString_length = 'length'; + StrNSString_characterAtIndex = 'characterAtIndex:'; + + StrNSString_getCharacters = 'getCharacters:'; + StrNSString_getCharacters_range = 'getCharacters:range:'; + StrNSString_substringFromIndex = 'substringFromIndex:'; + StrNSString_substringToIndex = 'substringToIndex:'; + StrNSString_substringWithRange = 'substringWithRange:'; + StrNSString_compare = 'compare:'; + StrNSString_compare_options = 'compare:options:'; + StrNSString_compare_options_range = 'compare:options:range:'; + StrNSString_compare_options_range_locale = 'compare:options:range:locale:'; + StrNSString_caseInsensitiveCompare = 'caseInsensitiveCompare:'; + StrNSString_localizedCompare = 'localizedCompare:'; + StrNSString_localizedCaseInsensitiveCompare = 'localizedCaseInsensitiveCompare:'; + StrNSString_isEqualToString = 'isEqualToString:'; + StrNSString_hasPrefix = 'hasPrefix:'; + StrNSString_hasSuffix = 'hasSuffix:'; + StrNSString_rangeOfString = 'rangeOfString:'; + StrNSString_rangeOfString_options = 'rangeOfString:options:'; + StrNSString_rangeOfString_options_range = 'rangeOfString:options:range:'; + StrNSString_rangeOfCharacterFromSet = 'rangeOfCharacterFromSet:'; + StrNSString_rangeOfCharacterFromSet_options = 'rangeOfCharacterFromSet:options:'; + StrNSString_rangeOfCharacterFromSet_options_range = 'rangeOfCharacterFromSet:options:range:'; + StrNSString_rangeOfComposedCharacterSequenceAtIndex = 'rangeOfComposedCharacterSequenceAtIndex:'; + StrNSString_stringByAppendingString = 'stringByAppendingString:'; + StrNSString_stringByAppendingFormat = 'stringByAppendingFormat:'; + StrNSString_doubleValue = 'doubleValue'; + StrNSString_floatValue = 'floatValue'; + StrNSString_intValue = 'intValue'; + StrNSString_componentsSeparatedByString = 'componentsSeparatedByString:'; + StrNSString_commonPrefixWithString_options = 'commonPrefixWithString:options:'; + StrNSString_uppercaseString = 'uppercaseString'; + StrNSString_lowercaseString = 'lowercaseString'; + StrNSString_capitalizedString = 'capitalizedString'; + StrNSString_stringByTrimmingCharactersInSet = 'stringByTrimmingCharactersInSet:'; + StrNSString_stringByPaddingToLength_withString_startingAtIndex = 'stringByPaddingToLength:withString:startingAtIndex:'; + StrNSString_getLineStart_end_contentsEnd_forRange = 'getLineStart:end:contentsEnd:forRange:'; + StrNSString_lineRangeForRange = 'lineRangeForRange:'; + StrNSString_getParagraphStart_end_contentsEnd_forRange = 'getParagraphStart:end:contentsEnd:forRange:'; + StrNSString_paragraphRangeForRange = 'paragraphRangeForRange:'; + StrNSString_description = 'description'; + StrNSString_hash = 'hash'; + StrNSString_fastestEncoding = 'fastestEncoding'; + StrNSString_smallestEncoding = 'smallestEncoding'; + StrNSString_dataUsingEncoding_allowLossyConversion = 'dataUsingEncoding:allowLossyConversion:'; + StrNSString_dataUsingEncoding = 'dataUsingEncoding:'; + StrNSString_canBeConvertedToEncoding = 'canBeConvertedToEncoding:'; + StrNSString_cStringUsingEncoding = 'cStringUsingEncoding:'; + StrNSString_getCString_maxLength_encoding = 'getCString:maxLength:encoding:'; + StrNSString_maximumLengthOfBytesUsingEncoding = 'maximumLengthOfBytesUsingEncoding:'; + StrNSString_lengthOfBytesUsingEncoding = 'lengthOfBytesUsingEncoding:'; + StrNSString_decomposedStringWithCanonicalMapping = 'decomposedStringWithCanonicalMapping'; + StrNSString_precomposedStringWithCanonicalMapping = 'precomposedStringWithCanonicalMapping'; + StrNSString_decomposedStringWithCompatibilityMapping = 'decomposedStringWithCompatibilityMapping'; + StrNSString_precomposedStringWithCompatibilityMapping = 'precomposedStringWithCompatibilityMapping'; + StrNSString_UTF8String = 'UTF8String'; + StrNSString_defaultCStringEncoding = 'defaultCStringEncoding'; + StrNSString_availableStringEncodings = 'availableStringEncodings'; + StrNSString_localizedNameOfStringEncoding = 'localizedNameOfStringEncoding:'; + StrNSString_init = 'init'; + StrNSString_initWithCharactersNoCopy_length_freeWhenDone = 'initWithCharactersNoCopy:length:freeWhenDone:'; + StrNSString_initWithCharacters_length = 'initWithCharacters:length:'; + StrNSString_initWithUTF8String = 'initWithUTF8String:'; + StrNSString_initWithString = 'initWithString:'; + StrNSString_initWithFormat = 'initWithFormat:'; + StrNSString_initWithFormat_arguments = 'initWithFormat:arguments:'; + StrNSString_initWithFormat_locale = 'initWithFormat:locale:'; + StrNSString_initWithFormat_locale_arguments = 'initWithFormat:locale:arguments:'; + StrNSString_initWithData_encoding = 'initWithData:encoding:'; + StrNSString_initWithBytes_length_encoding = 'initWithBytes:length:encoding:'; + StrNSString_initWithBytesNoCopy_length_encoding_freeWhenDone = 'initWithBytesNoCopy:length:encoding:freeWhenDone:'; + StrNSString_string = 'string'; + StrNSString_stringWithString = 'stringWithString:'; + StrNSString_stringWithCharacters_length = 'stringWithCharacters:length:'; + StrNSString_stringWithUTF8String = 'stringWithUTF8String:'; + StrNSString_stringWithFormat = 'stringWithFormat:'; + StrNSString_localizedStringWithFormat = 'localizedStringWithFormat:'; + StrNSString_initWithCString_encoding = 'initWithCString:encoding:'; + StrNSString_stringWithCString_encoding = 'stringWithCString:encoding:'; + StrNSString_initWithContentsOfURL_encoding_error = 'initWithContentsOfURL:encoding:error:'; + StrNSString_initWithContentsOfFile_encoding_error = 'initWithContentsOfFile:encoding:error:'; + StrNSString_stringWithContentsOfURL_encoding_error = 'stringWithContentsOfURL:encoding:error:'; + StrNSString_stringWithContentsOfFile_encoding_error = 'stringWithContentsOfFile:encoding:error:'; + StrNSString_initWithContentsOfURL_usedEncoding_error = 'initWithContentsOfURL:usedEncoding:error:'; + StrNSString_initWithContentsOfFile_usedEncoding_error = 'initWithContentsOfFile:usedEncoding:error:'; + StrNSString_stringWithContentsOfURL_usedEncoding_error = 'stringWithContentsOfURL:usedEncoding:error:'; + StrNSString_stringWithContentsOfFile_usedEncoding_error = 'stringWithContentsOfFile:usedEncoding:error:'; + StrNSString_writeToURL_atomically_encoding_error = 'writeToURL:atomically:encoding:error:'; + StrNSString_writeToFile_atomically_encoding_error = 'writeToFile:atomically:encoding:error:'; + + StrNSMutableString_NSMutableString = 'NSMutableString'; + StrNSMutableString_replaceCharactersInRange_withString = 'replaceCharactersInRange:withString:'; + + StrNSMutableString_insertString_atIndex = 'insertString:atIndex:'; + StrNSMutableString_deleteCharactersInRange = 'deleteCharactersInRange:'; + StrNSMutableString_appendString = 'appendString:'; + StrNSMutableString_appendFormat = 'appendFormat:'; + StrNSMutableString_setString = 'setString:'; + StrNSMutableString_initWithCapacity = 'initWithCapacity:'; + StrNSMutableString_stringWithCapacity = 'stringWithCapacity:'; + StrNSMutableString_replaceOccurrencesOfString_withString_options_range = 'replaceOccurrencesOfString:withString:options:range:'; + + StrNSString_propertyList = 'propertyList'; + StrNSString_propertyListFromStringsFileFormat = 'propertyListFromStringsFileFormat'; + + StrNSString_cString = 'cString'; + StrNSString_lossyCString = 'lossyCString'; + StrNSString_cStringLength = 'cStringLength'; + StrNSString_getCString = 'getCString:'; + StrNSString_getCString_maxLength = 'getCString:maxLength:'; + StrNSString_getCString_maxLength_range_remainingRange = 'getCString:maxLength:range:remainingRange:'; + StrNSString_writeToFile_atomically = 'writeToFile:atomically:'; + StrNSString_writeToURL_atomically = 'writeToURL:atomically:'; + StrNSString_initWithContentsOfFile = 'initWithContentsOfFile:'; + StrNSString_initWithContentsOfURL = 'initWithContentsOfURL:'; + StrNSString_stringWithContentsOfFile = 'stringWithContentsOfFile:'; + StrNSString_stringWithContentsOfURL = 'stringWithContentsOfURL:'; + StrNSString_initWithCStringNoCopy_length_freeWhenDone = 'initWithCStringNoCopy:length:freeWhenDone:'; + StrNSString_initWithCString_length = 'initWithCString:length:'; + StrNSString_initWithCString = 'initWithCString:'; + StrNSString_stringWithCString_length = 'stringWithCString:length:'; + StrNSString_stringWithCString = 'stringWithCString:'; + + StrNSSimpleCString_NSSimpleCString = 'NSSimpleCString'; + + StrNSConstantString_NSConstantString = 'NSConstantString'; + +{ NSString } + +class function NSString.getClass: objc.id; +begin + Result := objc_getClass(StrNSString_NSString); +end; + +function NSString.length: LongWord; +begin + Result := LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_length)), [])); +end; + +function NSString.characterAtIndex(__index: LongWord): unichar; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__index: LongWord): unichar; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := unichar(vmethod(Handle, sel_registerName(PChar(StrNSString_characterAtIndex)), __index)); +end; + +procedure NSString.getCharacters(_buffer: unichar); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_buffer: unichar); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getCharacters)), _buffer); +end; + +procedure NSString.getCharacters_range(_buffer: unichar; _aRange: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_buffer: unichar; _aRange: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getCharacters_range)), _buffer, _aRange); +end; + +function NSString.substringFromIndex(_from: LongWord): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_from: LongWord): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_substringFromIndex)), _from)); +end; + +function NSString.substringToIndex(__to: LongWord): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__to: LongWord): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_substringToIndex)), __to)); +end; + +function NSString.substringWithRange(_range: NSRange): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_range: NSRange): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_substringWithRange)), _range)); +end; + +function NSString.compare(__string: CFStringRef): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_compare)), __string)); +end; + +function NSString.compare_options(__string: CFStringRef; _mask: LongWord): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef; _mask: LongWord): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_compare_options)), __string, _mask)); +end; + +function NSString.compare_options_range(__string: CFStringRef; _mask: LongWord; _compareRange: NSRange): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef; _mask: LongWord; _compareRange: NSRange): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_compare_options_range)), __string, _mask, _compareRange)); +end; + +function NSString.compare_options_range_locale(__string: CFStringRef; _mask: LongWord; _compareRange: NSRange; _dict: CFDictionaryRef): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef; _mask: LongWord; _compareRange: NSRange; _dict: CFDictionaryRef): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_compare_options_range_locale)), __string, _mask, _compareRange, _dict)); +end; + +function NSString.caseInsensitiveCompare(__string: CFStringRef): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_caseInsensitiveCompare)), __string)); +end; + +function NSString.localizedCompare(__string: CFStringRef): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_localizedCompare)), __string)); +end; + +function NSString.localizedCaseInsensitiveCompare(__string: CFStringRef): NSComparisonResult; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef): NSComparisonResult; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := NSComparisonResult(vmethod(Handle, sel_registerName(PChar(StrNSString_localizedCaseInsensitiveCompare)), __string)); +end; + +function NSString.isEqualToString(_aString: CFStringRef): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_isEqualToString)), _aString)); +end; + +function NSString.hasPrefix(_aString: CFStringRef): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_hasPrefix)), _aString)); +end; + +function NSString.hasSuffix(_aString: CFStringRef): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_hasSuffix)), _aString)); +end; + +function NSString.rangeOfString(_aString: CFStringRef): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aString: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfString)), _aString); +end; + +function NSString.rangeOfString_options(_aString: CFStringRef; _mask: LongWord): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aString: CFStringRef; _mask: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfString_options)), _aString, _mask); +end; + +function NSString.rangeOfString_options_range(_aString: CFStringRef; _mask: LongWord; _searchRange: NSRange): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aString: CFStringRef; _mask: LongWord; _searchRange: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfString_options_range)), _aString, _mask, _searchRange); +end; + +function NSString.rangeOfCharacterFromSet(_aSet: CFCharacterSetRef): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aSet: CFCharacterSetRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfCharacterFromSet)), _aSet); +end; + +function NSString.rangeOfCharacterFromSet_options(_aSet: CFCharacterSetRef; _mask: LongWord): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aSet: CFCharacterSetRef; _mask: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfCharacterFromSet_options)), _aSet, _mask); +end; + +function NSString.rangeOfCharacterFromSet_options_range(_aSet: CFCharacterSetRef; _mask: LongWord; _searchRange: NSRange): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aSet: CFCharacterSetRef; _mask: LongWord; _searchRange: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfCharacterFromSet_options_range)), _aSet, _mask, _searchRange); +end; + +function NSString.rangeOfComposedCharacterSequenceAtIndex(__index: LongWord): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;__index: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_rangeOfComposedCharacterSequenceAtIndex)), __index); +end; + +function NSString.stringByAppendingString(_aString: CFStringRef): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_stringByAppendingString)), _aString)); +end; + +function NSString.stringByAppendingFormat(_format: CFStringRef): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_stringByAppendingFormat)), _format)); +end; + +function NSString.doubleValue: double; +begin + Result := objc_msgSend_fpret(Handle, sel_registerName(PChar(StrNSString_doubleValue)), []); +end; + +function NSString.floatValue: Single; +begin + Result := Single(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_floatValue)), [])); +end; + +function NSString.intValue: Integer; +begin + Result := Integer(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_intValue)), [])); +end; + +function NSString.componentsSeparatedByString(_separator: CFStringRef): CFArrayRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_separator: CFStringRef): CFArrayRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSString_componentsSeparatedByString)), _separator)); +end; + +function NSString.commonPrefixWithString_options(_aString: CFStringRef; _mask: LongWord): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef; _mask: LongWord): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_commonPrefixWithString_options)), _aString, _mask)); +end; + +function NSString.uppercaseString: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_uppercaseString)), [])); +end; + +function NSString.lowercaseString: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_lowercaseString)), [])); +end; + +function NSString.capitalizedString: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_capitalizedString)), [])); +end; + +{.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} +function NSString.stringByTrimmingCharactersInSet(__set: CFCharacterSetRef): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__set: CFCharacterSetRef): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_stringByTrimmingCharactersInSet)), __set)); +end; + +function NSString.stringByPaddingToLength_withString_startingAtIndex(_newLength: LongWord; _padString: CFStringRef; _padIndex: LongWord): CFStringRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_newLength: LongWord; _padString: CFStringRef; _padIndex: LongWord): CFStringRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSString_stringByPaddingToLength_withString_startingAtIndex)), _newLength, _padString, _padIndex)); +end; + +{.$endif} +procedure NSString.getLineStart_end_contentsEnd_forRange(_startPtr: PLongWord; _lineEndPtr: PLongWord; _contentsEndPtr: PLongWord; _range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_startPtr: PLongWord; _lineEndPtr: PLongWord; _contentsEndPtr: PLongWord; _range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getLineStart_end_contentsEnd_forRange)), _startPtr, _lineEndPtr, _contentsEndPtr, _range); +end; + +function NSString.lineRangeForRange(_range: NSRange): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_lineRangeForRange)), _range); +end; + +{.$ifdef MAC_OS_X_VERSION_10_3 <= MAC_OS_X_VERSION_MAX_ALLOWED} +procedure NSString.getParagraphStart_end_contentsEnd_forRange(_startPtr: PLongWord; _parEndPtr: PLongWord; _contentsEndPtr: PLongWord; _range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_startPtr: PLongWord; _parEndPtr: PLongWord; _contentsEndPtr: PLongWord; _range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getParagraphStart_end_contentsEnd_forRange)), _startPtr, _parEndPtr, _contentsEndPtr, _range); +end; + +function NSString.paragraphRangeForRange(_range: NSRange): NSRange; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSString_paragraphRangeForRange)), _range); +end; + +{.$endif} +function NSString.description: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_description)), [])); +end; + +function NSString.hash: LongWord; +begin + Result := LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_hash)), [])); +end; + +function NSString.fastestEncoding: NSStringEncoding; +begin + Result := NSStringEncoding(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_fastestEncoding)), [])); +end; + +function NSString.smallestEncoding: NSStringEncoding; +begin + Result := NSStringEncoding(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_smallestEncoding)), [])); +end; + +function NSString.dataUsingEncoding_allowLossyConversion(_encoding: NSStringEncoding; _lossy: LongBool): CFDataRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_encoding: NSStringEncoding; _lossy: LongBool): CFDataRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFDataRef(vmethod(Handle, sel_registerName(PChar(StrNSString_dataUsingEncoding_allowLossyConversion)), _encoding, _lossy)); +end; + +function NSString.dataUsingEncoding(_encoding: NSStringEncoding): CFDataRef; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_encoding: NSStringEncoding): CFDataRef; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := CFDataRef(vmethod(Handle, sel_registerName(PChar(StrNSString_dataUsingEncoding)), _encoding)); +end; + +function NSString.canBeConvertedToEncoding(_encoding: NSStringEncoding): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_encoding: NSStringEncoding): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_canBeConvertedToEncoding)), _encoding)); +end; + +{.$ifdef MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED} +function NSString.cStringUsingEncoding(_encoding: NSStringEncoding): PChar; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_encoding: NSStringEncoding): PChar; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := PChar(vmethod(Handle, sel_registerName(PChar(StrNSString_cStringUsingEncoding)), _encoding)); +end; + +function NSString.getCString_maxLength_encoding(_buffer: PChar; _maxBufferCount: LongWord; _encoding: NSStringEncoding): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_buffer: PChar; _maxBufferCount: LongWord; _encoding: NSStringEncoding): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_getCString_maxLength_encoding)), _buffer, _maxBufferCount, _encoding)); +end; + +function NSString.maximumLengthOfBytesUsingEncoding(_enc: NSStringEncoding): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_enc: NSStringEncoding): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSString_maximumLengthOfBytesUsingEncoding)), _enc)); +end; + +function NSString.lengthOfBytesUsingEncoding(_enc: NSStringEncoding): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_enc: NSStringEncoding): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSString_lengthOfBytesUsingEncoding)), _enc)); +end; + +{.$endif} +{.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} +function NSString.decomposedStringWithCanonicalMapping: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_decomposedStringWithCanonicalMapping)), [])); +end; + +function NSString.precomposedStringWithCanonicalMapping: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_precomposedStringWithCanonicalMapping)), [])); +end; + +function NSString.decomposedStringWithCompatibilityMapping: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_decomposedStringWithCompatibilityMapping)), [])); +end; + +function NSString.precomposedStringWithCompatibilityMapping: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_precomposedStringWithCompatibilityMapping)), [])); +end; + +{.$endif} +function NSString.UTF8String: PChar; +begin + Result := PChar(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_UTF8String)), [])); +end; + +class function NSString.defaultCStringEncoding: NSStringEncoding; +begin + Result := NSStringEncoding(objc_msgSend(getClass, sel_registerName(PChar(StrNSString_defaultCStringEncoding)), [])); +end; + +class function NSString.availableStringEncodings: NSStringEncoding; +begin + Result := NSStringEncoding(objc_msgSend(getClass, sel_registerName(PChar(StrNSString_availableStringEncodings)), [])); +end; + +constructor NSString.localizedNameOfStringEncoding(_encoding: NSStringEncoding); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_encoding: NSStringEncoding): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_localizedNameOfStringEncoding)), _encoding); +end; + +constructor NSString.init; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_init))); +end; + +constructor NSString.initWithCharactersNoCopy_length_freeWhenDone(_characters: unichar; _length: LongWord; _freeBuffer: LongBool); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_characters: unichar; _length: LongWord; _freeBuffer: LongBool): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithCharactersNoCopy_length_freeWhenDone)), _characters, _length, _freeBuffer); +end; + +constructor NSString.initWithCharacters_length(_characters: unichar; _length: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_characters: unichar; _length: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithCharacters_length)), _characters, _length); +end; + +constructor NSString.initWithUTF8String(_nullTerminatedCString: PChar); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_nullTerminatedCString: PChar): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithUTF8String)), _nullTerminatedCString); +end; + +constructor NSString.initWithString(_aString: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithString)), _aString); +end; + +constructor NSString.initWithFormat(_format: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithFormat)), _format); +end; + +{constructor NSString.initWithFormat_arguments(_format: CFStringRef; const _argList: array of const); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef; const _argList: array of const): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithFormat_arguments)), _format, _argList); +end;} + +constructor NSString.initWithFormat_locale(_format: CFStringRef; _dict: CFDictionaryRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef; _dict: CFDictionaryRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithFormat_locale)), _format, _dict); +end; + +{constructor NSString.initWithFormat_locale_arguments(_format: CFStringRef; _dict: CFDictionaryRef; const _argList: array of const); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef; _dict: CFDictionaryRef; const _argList: array of const): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithFormat_locale_arguments)), _format, _dict, _argList); +end;} + +constructor NSString.initWithData_encoding(_data: CFDataRef; _encoding: NSStringEncoding); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_data: CFDataRef; _encoding: NSStringEncoding): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithData_encoding)), _data, _encoding); +end; + +constructor NSString.initWithBytes_length_encoding(_bytes: Pointer; _len: LongWord; _encoding: NSStringEncoding); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: Pointer; _len: LongWord; _encoding: NSStringEncoding): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithBytes_length_encoding)), _bytes, _len, _encoding); +end; + +{.$ifdef MAC_OS_X_VERSION_10_3 <= MAC_OS_X_VERSION_MAX_ALLOWED} +constructor NSString.initWithBytesNoCopy_length_encoding_freeWhenDone(_bytes: Pointer; _len: LongWord; _encoding: NSStringEncoding; _freeBuffer: LongBool); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: Pointer; _len: LongWord; _encoding: NSStringEncoding; _freeBuffer: LongBool): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithBytesNoCopy_length_encoding_freeWhenDone)), _bytes, _len, _encoding, _freeBuffer); +end; + +{.$endif} +constructor NSString.string_; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_string))); +end; + +constructor NSString.stringWithString(__string: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__string: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithString)), __string); +end; + +constructor NSString.stringWithCharacters_length(_characters: unichar; _length: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_characters: unichar; _length: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithCharacters_length)), _characters, _length); +end; + +constructor NSString.stringWithUTF8String(_nullTerminatedCString: PChar); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_nullTerminatedCString: PChar): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithUTF8String)), _nullTerminatedCString); +end; + +constructor NSString.stringWithFormat(_format: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithFormat)), _format); +end; + +constructor NSString.localizedStringWithFormat(_format: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_format: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_localizedStringWithFormat)), _format); +end; + +{.$ifdef MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED} +constructor NSString.initWithCString_encoding(_nullTerminatedCString: PChar; _encoding: NSStringEncoding); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_nullTerminatedCString: PChar; _encoding: NSStringEncoding): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithCString_encoding)), _nullTerminatedCString, _encoding); +end; + +constructor NSString.stringWithCString_encoding(_cString: PChar; _enc: NSStringEncoding); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_cString: PChar; _enc: NSStringEncoding): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithCString_encoding)), _cString, _enc); +end; + +constructor NSString.initWithContentsOfURL_encoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithContentsOfURL_encoding_error)), _url, _enc, _error); +end; + +constructor NSString.initWithContentsOfFile_encoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithContentsOfFile_encoding_error)), _path, _enc, _error); +end; + +constructor NSString.stringWithContentsOfURL_encoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithContentsOfURL_encoding_error)), _url, _enc, _error); +end; + +constructor NSString.stringWithContentsOfFile_encoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithContentsOfFile_encoding_error)), _path, _enc, _error); +end; + +constructor NSString.initWithContentsOfURL_usedEncoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithContentsOfURL_usedEncoding_error)), _url, _enc, _error); +end; + +constructor NSString.initWithContentsOfFile_usedEncoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithContentsOfFile_usedEncoding_error)), _path, _enc, _error); +end; + +constructor NSString.stringWithContentsOfURL_usedEncoding_error(_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithContentsOfURL_usedEncoding_error)), _url, _enc, _error); +end; + +constructor NSString.stringWithContentsOfFile_usedEncoding_error(_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _enc: NSStringEncoding; _error: objc.id {NSError}): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithContentsOfFile_usedEncoding_error)), _path, _enc, _error); +end; + +function NSString.writeToURL_atomically_encoding_error(_url: CFURLRef; _useAuxiliaryFile: LongBool; _enc: NSStringEncoding; _error: objc.id {NSError}): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _useAuxiliaryFile: LongBool; _enc: NSStringEncoding; _error: objc.id {NSError}): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_writeToURL_atomically_encoding_error)), _url, _useAuxiliaryFile, _enc, _error)); +end; + +function NSString.writeToFile_atomically_encoding_error(_path: CFStringRef; _useAuxiliaryFile: LongBool; _enc: NSStringEncoding; _error: objc.id {NSError}): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _useAuxiliaryFile: LongBool; _enc: NSStringEncoding; _error: objc.id {NSError}): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_writeToFile_atomically_encoding_error)), _path, _useAuxiliaryFile, _enc, _error)); +end; + +{.$endif} +function NSString.propertyList: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_propertyList)), [])); +end; + +function NSString.propertyListFromStringsFileFormat: CFDictionaryRef; +begin + Result := CFDictionaryRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_propertyListFromStringsFileFormat)), [])); +end; + +function NSString.cString: PChar; +begin + Result := PChar(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_cString)), [])); +end; + +function NSString.lossyCString: PChar; +begin + Result := PChar(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_lossyCString)), [])); +end; + +function NSString.cStringLength: LongWord; +begin + Result := LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSString_cStringLength)), [])); +end; + +procedure NSString.getCString(_bytes: PChar); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_bytes: PChar); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getCString)), _bytes); +end; + +procedure NSString.getCString_maxLength(_bytes: PChar; _maxLength: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_bytes: PChar; _maxLength: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getCString_maxLength)), _bytes, _maxLength); +end; + +procedure NSString.getCString_maxLength_range_remainingRange(_bytes: PChar; _maxLength: LongWord; _aRange: NSRange; _leftoverRange: NSRangePointer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_bytes: PChar; _maxLength: LongWord; _aRange: NSRange; _leftoverRange: NSRangePointer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSString_getCString_maxLength_range_remainingRange)), _bytes, _maxLength, _aRange, _leftoverRange); +end; + +function NSString.writeToFile_atomically(_path: CFStringRef; _useAuxiliaryFile: LongBool): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef; _useAuxiliaryFile: LongBool): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_writeToFile_atomically)), _path, _useAuxiliaryFile)); +end; + +function NSString.writeToURL_atomically(_url: CFURLRef; _atomically: LongBool): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef; _atomically: LongBool): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSString_writeToURL_atomically)), _url, _atomically)); +end; + +constructor NSString.initWithContentsOfFile(_path: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithContentsOfFile)), _path); +end; + +constructor NSString.initWithContentsOfURL(_url: CFURLRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithContentsOfURL)), _url); +end; + +constructor NSString.stringWithContentsOfFile(_path: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_path: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithContentsOfFile)), _path); +end; + +constructor NSString.stringWithContentsOfURL(_url: CFURLRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_url: CFURLRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithContentsOfURL)), _url); +end; + +constructor NSString.initWithCStringNoCopy_length_freeWhenDone(_bytes: PChar; _length: LongWord; _freeBuffer: LongBool); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: PChar; _length: LongWord; _freeBuffer: LongBool): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithCStringNoCopy_length_freeWhenDone)), _bytes, _length, _freeBuffer); +end; + +constructor NSString.initWithCString_length(_bytes: PChar; _length: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: PChar; _length: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithCString_length)), _bytes, _length); +end; + +constructor NSString.initWithCString(_bytes: PChar); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: PChar): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSString_initWithCString)), _bytes); +end; + +constructor NSString.stringWithCString_length(_bytes: PChar; _length: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: PChar; _length: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithCString_length)), _bytes, _length); +end; + +constructor NSString.stringWithCString(_bytes: PChar); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_bytes: PChar): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSString_stringWithCString)), _bytes); +end; + +{ NSMutableString } + +class function NSMutableString.getClass: objc.id; +begin + Result := objc_getClass(StrNSMutableString_NSMutableString); +end; + +procedure NSMutableString.replaceCharactersInRange_withString(_range: NSRange; _aString: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_range: NSRange; _aString: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableString_replaceCharactersInRange_withString)), _range, _aString); +end; + +procedure NSMutableString.insertString_atIndex(_aString: CFStringRef; _loc: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aString: CFStringRef; _loc: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableString_insertString_atIndex)), _aString, _loc); +end; + +procedure NSMutableString.deleteCharactersInRange(_range: NSRange); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_range: NSRange); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableString_deleteCharactersInRange)), _range); +end; + +procedure NSMutableString.appendString(_aString: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aString: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableString_appendString)), _aString); +end; + +procedure NSMutableString.appendFormat(_format: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_format: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableString_appendFormat)), _format); +end; + +procedure NSMutableString.setString(_aString: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aString: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMutableString_setString)), _aString); +end; + +constructor NSMutableString.initWithCapacity(_capacity: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_capacity: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSMutableString_initWithCapacity)), _capacity); +end; + +constructor NSMutableString.stringWithCapacity(_capacity: LongWord); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_capacity: LongWord): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSMutableString_stringWithCapacity)), _capacity); +end; + +{.$ifdef MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED} +function NSMutableString.replaceOccurrencesOfString_withString_options_range(_target: CFStringRef; _replacement: CFStringRef; _opts: LongWord; _searchRange: NSRange): LongWord; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_target: CFStringRef; _replacement: CFStringRef; _opts: LongWord; _searchRange: NSRange): LongWord; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongWord(vmethod(Handle, sel_registerName(PChar(StrNSMutableString_replaceOccurrencesOfString_withString_options_range)), _target, _replacement, _opts, _searchRange)); +end; + +{.$endif} +{ NSSimpleCString } + +class function NSSimpleCString.getClass: objc.id; +begin + Result := objc_getClass(StrNSSimpleCString_NSSimpleCString); +end; + +{ NSConstantString } + +class function NSConstantString.getClass: objc.id; +begin + Result := objc_getClass(StrNSConstantString_NSConstantString); +end; + +{$endif} diff --git a/bindings/pascocoa/parser/default.ini b/bindings/pascocoa/parser/default.ini index 07530bb56..b96bccb77 100755 --- a/bindings/pascocoa/parser/default.ini +++ b/bindings/pascocoa/parser/default.ini @@ -11,10 +11,6 @@ NSStringRef=CFStringRef NSStringRef*=CFStringRef NSArray=CFArrayRef NSArray*=CFArrayRef -NSAttributedString=CFAttributedStringRef -NSAttributesString*=CFAttributedStringRef -NSCalendar=CFCalendarRef -NSCalendar*=CFCalendarRef NSCharacterSet=CFCharacterSetRef NSCharacterSet*=CFCharacterSetRef NSData=CFDataRef @@ -23,14 +19,8 @@ NSDate=CFDateRef NSDate*=CFDateRef NSDictionary=CFDictionaryRef NSDictionary*=CFDictionaryRef -NSError=CFErrorRef -NSError*=CFErrorRef -NSLocale=CFErrorRef -NSLocale*=CFErrorRef NSMutableArray=CFMutableArrayRef NSMutableArray*=CFMutableArrayRef -NSMutableAttributedString=CFMutableAttributedStringRef -NSMutableAttributedString*=CFMutableAttributedStringRef NSMutableCharacterSetRef=CFMutableCharacterSetRef NSMutableCharacterSetRef*=CFMutableCharacterSetRef NSMutableData = CFMutableDataRef