1{%mainunit foundation.pas} 2(* NSAttributedString.h 3 Copyright (c) 1994-2005, Apple, Inc. All rights reserved. 4*) 5 6{$ifdef HEADER} 7{$ifndef NSATTRIBUTEDSTRING_PAS_H} 8{$define NSATTRIBUTEDSTRING_PAS_H} 9 10var 11 NSFontAttributeName: CFStringRef; external name '_NSFontAttributeName'; // NSFont, default Helvetica 12 12 13//#import <Foundation/NSString.h> 14//#import <Foundation/NSDictionary.h> 15{$endif} 16{$endif} 17 18{$ifdef FORWARD} 19 NSAttributedString = class; 20 NSMutableAttributedString = class; 21 22{$endif} 23 24{$ifdef CLASSES} 25{$ifndef NSATTRIBUTEDSTRING_PAS_C} 26{$define NSATTRIBUTEDSTRING_PAS_C} 27 28 29 { NSAttributedString } 30 31 NSAttributedString = class(NSObject) 32 public 33 class function getClass: lobjc.id; override; 34 function string_: CFStringRef; 35 function attributesAtIndex_effectiveRange(_location: LongWord; _range: NSRangePointer): CFDictionaryRef; 36 function length: LongWord; 37 function attribute_atIndex_effectiveRange(_attrName: CFStringRef; _location: LongWord; _range: NSRangePointer): lobjc.id; 38 function attributedSubstringFromRange(_range: NSRange): lobjc.id;{NSAttributedString} 39 function attributesAtIndex_longestEffectiveRange_inRange(_location: LongWord; _range: NSRangePointer; _rangeLimit: NSRange): CFDictionaryRef; 40 function attribute_atIndex_longestEffectiveRange_inRange(_attrName: CFStringRef; _location: LongWord; _range: NSRangePointer; _rangeLimit: NSRange): lobjc.id; 41 function isEqualToAttributedString(_other: lobjc.id {NSAttributedString}): LongBool; 42 constructor initWithString(_str: CFStringRef); 43 constructor initWithString_attributes(_str: CFStringRef; _attrs: CFDictionaryRef); 44 constructor initWithAttributedString(_attrStr: lobjc.id {NSAttributedString}); 45 { Application Kit Additions } 46 constructor initWithHTML_documentAttributes(data: lobjc.id {NSData}; docAttributes: Pointer {PNSDictionary}); 47 end; 48 49 50 { NSMutableAttributedString } 51 52 NSMutableAttributedString = class(NSAttributedString) 53 public 54 class function getClass: lobjc.id; override; 55 procedure replaceCharactersInRange_withString(_range: NSRange; _str: CFStringRef); 56 procedure setAttributes_range(_attrs: CFDictionaryRef; _range: NSRange); 57 function mutableString: CFMutableStringRef; 58 procedure addAttribute_value_range(_name: CFStringRef; _value: lobjc.id; _range: NSRange); 59 procedure addAttributes_range(_attrs: CFDictionaryRef; _range: NSRange); 60 procedure removeAttribute_range(_name: CFStringRef; _range: NSRange); 61 procedure replaceCharactersInRange_withAttributedString(_range: NSRange; _attrString: lobjc.id {NSAttributedString}); 62 procedure insertAttributedString_atIndex(_attrString: lobjc.id {NSAttributedString}; _loc: LongWord); 63 procedure appendAttributedString(_attrString: lobjc.id {NSAttributedString}); 64 procedure deleteCharactersInRange(_range: NSRange); 65 procedure setAttributedString(_attrString: lobjc.id {NSAttributedString}); 66 procedure beginEditing; 67 procedure endEditing; 68 end; 69 70{$endif} 71{$endif} 72 73{$ifdef IMPLEMENTATION} 74const 75 StrNSAttributedString_NSAttributedString = 'NSAttributedString'; 76 StrNSAttributedString_string = 'string'; 77 StrNSAttributedString_attributesAtIndex_effectiveRange = 'attributesAtIndex:effectiveRange:'; 78 79 StrNSAttributedString_length = 'length'; 80 StrNSAttributedString_attribute_atIndex_effectiveRange = 'attribute:atIndex:effectiveRange:'; 81 StrNSAttributedString_attributedSubstringFromRange = 'attributedSubstringFromRange:'; 82 StrNSAttributedString_attributesAtIndex_longestEffectiveRange_inRange = 'attributesAtIndex:longestEffectiveRange:inRange:'; 83 StrNSAttributedString_attribute_atIndex_longestEffectiveRange_inRange = 'attribute:atIndex:longestEffectiveRange:inRange:'; 84 StrNSAttributedString_isEqualToAttributedString = 'isEqualToAttributedString:'; 85 StrNSAttributedString_initWithString = 'initWithString:'; 86 StrNSAttributedString_initWithString_attributes = 'initWithString:attributes:'; 87 StrNSAttributedString_initWithAttributedString = 'initWithAttributedString:'; 88 89 StrNSMutableAttributedString_NSMutableAttributedString = 'NSMutableAttributedString'; 90 StrNSMutableAttributedString_replaceCharactersInRange_withString = 'replaceCharactersInRange:withString:'; 91 StrNSMutableAttributedString_setAttributes_range = 'setAttributes:range:'; 92 93 StrNSMutableAttributedString_mutableString = 'mutableString'; 94 StrNSMutableAttributedString_addAttribute_value_range = 'addAttribute:value:range:'; 95 StrNSMutableAttributedString_addAttributes_range = 'addAttributes:range:'; 96 StrNSMutableAttributedString_removeAttribute_range = 'removeAttribute:range:'; 97 StrNSMutableAttributedString_replaceCharactersInRange_withAttributedString = 'replaceCharactersInRange:withAttributedString:'; 98 StrNSMutableAttributedString_insertAttributedString_atIndex = 'insertAttributedString:atIndex:'; 99 StrNSMutableAttributedString_appendAttributedString = 'appendAttributedString:'; 100 StrNSMutableAttributedString_deleteCharactersInRange = 'deleteCharactersInRange:'; 101 StrNSMutableAttributedString_setAttributedString = 'setAttributedString:'; 102 StrNSMutableAttributedString_beginEditing = 'beginEditing'; 103 StrNSMutableAttributedString_endEditing = 'endEditing'; 104 105 { Application Kit Additions } 106 StrNSAttributedString_initWithHTML_documentAttributes = 'initWithHTML:documentAttributes:'; 107 108{ NSAttributedString } 109 110class function NSAttributedString.getClass: lobjc.id; 111begin 112 Result := objc_getClass(StrNSAttributedString_NSAttributedString); 113end; 114 115function NSAttributedString.string_: CFStringRef; 116begin 117 Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSAttributedString_string)), [])); 118end; 119 120function NSAttributedString.attributesAtIndex_effectiveRange(_location: LongWord; _range: NSRangePointer): CFDictionaryRef; 121type 122 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_location: LongWord; _range: NSRangePointer): CFDictionaryRef; cdecl; 123var 124 vmethod: TmsgSendWrapper; 125begin 126 vmethod := TmsgSendWrapper(@objc_msgSend); 127 Result := CFDictionaryRef(vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_attributesAtIndex_effectiveRange)), _location, _range)); 128end; 129 130function NSAttributedString.length: LongWord; 131begin 132 Result := {%H-}LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSAttributedString_length)), [])); 133end; 134 135function NSAttributedString.attribute_atIndex_effectiveRange(_attrName: CFStringRef; _location: LongWord; _range: NSRangePointer): lobjc.id; 136type 137 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_attrName: CFStringRef; _location: LongWord; _range: NSRangePointer): lobjc.id; cdecl; 138var 139 vmethod: TmsgSendWrapper; 140begin 141 vmethod := TmsgSendWrapper(@objc_msgSend); 142 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_attribute_atIndex_effectiveRange)), _attrName, _location, _range)); 143end; 144 145function NSAttributedString.attributedSubstringFromRange(_range: NSRange): lobjc.id; 146type 147 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_range: NSRange): lobjc.id; cdecl; 148var 149 vmethod: TmsgSendWrapper; 150begin 151 vmethod := TmsgSendWrapper(@objc_msgSend); 152 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_attributedSubstringFromRange)), _range)); 153end; 154 155function NSAttributedString.attributesAtIndex_longestEffectiveRange_inRange(_location: LongWord; _range: NSRangePointer; _rangeLimit: NSRange): CFDictionaryRef; 156type 157 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_location: LongWord; _range: NSRangePointer; _rangeLimit: NSRange): CFDictionaryRef; cdecl; 158var 159 vmethod: TmsgSendWrapper; 160begin 161 vmethod := TmsgSendWrapper(@objc_msgSend); 162 Result := CFDictionaryRef(vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_attributesAtIndex_longestEffectiveRange_inRange)), _location, _range, _rangeLimit)); 163end; 164 165function NSAttributedString.attribute_atIndex_longestEffectiveRange_inRange(_attrName: CFStringRef; _location: LongWord; _range: NSRangePointer; _rangeLimit: NSRange): lobjc.id; 166type 167 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_attrName: CFStringRef; _location: LongWord; _range: NSRangePointer; _rangeLimit: NSRange): lobjc.id; cdecl; 168var 169 vmethod: TmsgSendWrapper; 170begin 171 vmethod := TmsgSendWrapper(@objc_msgSend); 172 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_attribute_atIndex_longestEffectiveRange_inRange)), _attrName, _location, _range, _rangeLimit)); 173end; 174 175function NSAttributedString.isEqualToAttributedString(_other: lobjc.id {NSAttributedString}): LongBool; 176type 177 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_other: lobjc.id {NSAttributedString}): LongBool; cdecl; 178var 179 vmethod: TmsgSendWrapper; 180begin 181 vmethod := TmsgSendWrapper(@objc_msgSend); 182 Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_isEqualToAttributedString)), _other)); 183end; 184 185constructor NSAttributedString.initWithString(_str: CFStringRef); 186type 187 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_str: CFStringRef): lobjc.id; cdecl; 188var 189 vmethod: TmsgSendWrapper; 190begin 191 ClassID := getClass(); 192 allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); 193 vmethod := TmsgSendWrapper(@objc_msgSend); 194 Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSAttributedString_initWithString)), _str); 195end; 196 197constructor NSAttributedString.initWithString_attributes(_str: CFStringRef; _attrs: CFDictionaryRef); 198type 199 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_str: CFStringRef; _attrs: CFDictionaryRef): lobjc.id; cdecl; 200var 201 vmethod: TmsgSendWrapper; 202begin 203 ClassID := getClass(); 204 allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); 205 vmethod := TmsgSendWrapper(@objc_msgSend); 206 Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSAttributedString_initWithString_attributes)), _str, _attrs); 207end; 208 209constructor NSAttributedString.initWithAttributedString(_attrStr: lobjc.id {NSAttributedString}); 210type 211 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_attrStr: lobjc.id {NSAttributedString}): lobjc.id; cdecl; 212var 213 vmethod: TmsgSendWrapper; 214begin 215 ClassID := getClass(); 216 allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); 217 vmethod := TmsgSendWrapper(@objc_msgSend); 218 Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSAttributedString_initWithAttributedString)), _attrStr); 219end; 220 221{ Application Kit Additions } 222 223constructor NSAttributedString.initWithHTML_documentAttributes(data: lobjc.id {NSData}; docAttributes: Pointer {PNSDictionary}); 224type 225 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL; _data: lobjc.id; _attr: Pointer): lobjc.id; cdecl; 226var 227 vmethod: TmsgSendWrapper; 228begin 229 ClassID := getClass(); 230 allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); 231 vmethod := TmsgSendWrapper(@objc_msgSend); 232 Handle := vmethod(Handle, sel_registerName(PChar(StrNSAttributedString_initWithHTML_documentAttributes)), data, docAttributes); 233end; 234 235{ NSMutableAttributedString } 236 237class function NSMutableAttributedString.getClass: lobjc.id; 238begin 239 Result := objc_getClass(StrNSMutableAttributedString_NSMutableAttributedString); 240end; 241 242procedure NSMutableAttributedString.replaceCharactersInRange_withString(_range: NSRange; _str: CFStringRef); 243type 244 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_range: NSRange; _str: CFStringRef); cdecl; 245var 246 vmethod: TmsgSendWrapper; 247begin 248 vmethod := TmsgSendWrapper(@objc_msgSend); 249 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_replaceCharactersInRange_withString)), _range, _str); 250end; 251 252procedure NSMutableAttributedString.setAttributes_range(_attrs: CFDictionaryRef; _range: NSRange); 253type 254 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_attrs: CFDictionaryRef; _range: NSRange); cdecl; 255var 256 vmethod: TmsgSendWrapper; 257begin 258 vmethod := TmsgSendWrapper(@objc_msgSend); 259 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_setAttributes_range)), _attrs, _range); 260end; 261 262function NSMutableAttributedString.mutableString: CFMutableStringRef; 263begin 264 Result := CFMutableStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMutableAttributedString_mutableString)), [])); 265end; 266 267procedure NSMutableAttributedString.addAttribute_value_range(_name: CFStringRef; _value: lobjc.id; _range: NSRange); 268type 269 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_name: CFStringRef; _value: lobjc.id; _range: NSRange); cdecl; 270var 271 vmethod: TmsgSendWrapper; 272begin 273 vmethod := TmsgSendWrapper(@objc_msgSend); 274 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_addAttribute_value_range)), _name, _value, _range); 275end; 276 277procedure NSMutableAttributedString.addAttributes_range(_attrs: CFDictionaryRef; _range: NSRange); 278type 279 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_attrs: CFDictionaryRef; _range: NSRange); cdecl; 280var 281 vmethod: TmsgSendWrapper; 282begin 283 vmethod := TmsgSendWrapper(@objc_msgSend); 284 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_addAttributes_range)), _attrs, _range); 285end; 286 287procedure NSMutableAttributedString.removeAttribute_range(_name: CFStringRef; _range: NSRange); 288type 289 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_name: CFStringRef; _range: NSRange); cdecl; 290var 291 vmethod: TmsgSendWrapper; 292begin 293 vmethod := TmsgSendWrapper(@objc_msgSend); 294 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_removeAttribute_range)), _name, _range); 295end; 296 297procedure NSMutableAttributedString.replaceCharactersInRange_withAttributedString(_range: NSRange; _attrString: lobjc.id {NSAttributedString}); 298type 299 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_range: NSRange; _attrString: lobjc.id {NSAttributedString}); cdecl; 300var 301 vmethod: TmsgSendWrapper; 302begin 303 vmethod := TmsgSendWrapper(@objc_msgSend); 304 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_replaceCharactersInRange_withAttributedString)), _range, _attrString); 305end; 306 307procedure NSMutableAttributedString.insertAttributedString_atIndex(_attrString: lobjc.id {NSAttributedString}; _loc: LongWord); 308type 309 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_attrString: lobjc.id {NSAttributedString}; _loc: LongWord); cdecl; 310var 311 vmethod: TmsgSendWrapper; 312begin 313 vmethod := TmsgSendWrapper(@objc_msgSend); 314 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_insertAttributedString_atIndex)), _attrString, _loc); 315end; 316 317procedure NSMutableAttributedString.appendAttributedString(_attrString: lobjc.id {NSAttributedString}); 318type 319 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_attrString: lobjc.id {NSAttributedString}); cdecl; 320var 321 vmethod: TmsgSendWrapper; 322begin 323 vmethod := TmsgSendWrapper(@objc_msgSend); 324 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_appendAttributedString)), _attrString); 325end; 326 327procedure NSMutableAttributedString.deleteCharactersInRange(_range: NSRange); 328type 329 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_range: NSRange); cdecl; 330var 331 vmethod: TmsgSendWrapper; 332begin 333 vmethod := TmsgSendWrapper(@objc_msgSend); 334 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_deleteCharactersInRange)), _range); 335end; 336 337procedure NSMutableAttributedString.setAttributedString(_attrString: lobjc.id {NSAttributedString}); 338type 339 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_attrString: lobjc.id {NSAttributedString}); cdecl; 340var 341 vmethod: TmsgSendWrapper; 342begin 343 vmethod := TmsgSendWrapper(@objc_msgSend); 344 vmethod(Handle, sel_registerName(PChar(StrNSMutableAttributedString_setAttributedString)), _attrString); 345end; 346 347procedure NSMutableAttributedString.beginEditing; 348begin 349 objc_msgSend(Handle, sel_registerName(PChar(StrNSMutableAttributedString_beginEditing)), []); 350end; 351 352procedure NSMutableAttributedString.endEditing; 353begin 354 objc_msgSend(Handle, sel_registerName(PChar(StrNSMutableAttributedString_endEditing)), []); 355end; 356 357{$endif} 358