1{%mainunit appkit.pas} 2(* 3 NSFontManager.h 4 Application Kit 5 Copyright (c) 1994-2005, Apple Computer, Inc. 6 All rights reserved. 7*) 8 9{$ifdef HEADER} 10{$ifndef NSFONTMANAGER_PAS_H} 11{$define NSFONTMANAGER_PAS_H} 12 13//#import <Foundation/NSObject.h> 14type 15 NSFontTraitMask = LongWord; 16 17 // * Font Traits 18 // * 19 // * This list should be kept small since the more traits that are assigned 20 // * to a given font, the harder it will be to map it to some other family. 21 // * Some traits are mutually exclusive such as NSExpanded and NSCondensed. 22 // 23const 24 NSItalicFontMask = $00000001; 25 NSBoldFontMask = $00000002; 26 NSUnboldFontMask = $00000004; 27 NSNonStandardCharacterSetFontMask = $00000008; 28 NSNarrowFontMask = $00000010; 29 NSExpandedFontMask = $00000020; 30 NSCondensedFontMask = $00000040; 31 NSSmallCapsFontMask = $00000080; 32 NSPosterFontMask = $00000100; 33 NSCompressedFontMask = $00000200; 34 NSFixedPitchFontMask = $00000400; 35 NSUnitalicFontMask = $01000000; 36 37const 38 NSFontCollectionApplicationOnlyMask = 1 shl 0; 39 40 // And these "actions" are really tag values in Font Menu cells which send any of the 41 // action messages listed above. Normally, they're pre-defined in the font panel. 42type 43 NSFontAction = ( 44 NSNoFontChangeAction = 0, 45 NSViaPanelFontAction = 1, 46 NSAddTraitFontAction = 2, 47 NSSizeUpFontAction = 3, 48 NSSizeDownFontAction = 4, 49 NSHeavierFontAction = 5, 50 NSLighterFontAction = 6, 51 NSRemoveTraitFontAction = 7 52 ); 53 54 55 // This method is perhaps inappropriately named; it is sent to the delegate of the 56 // shared NSFontPanel instance, not to the delegate of the NSFontManager. 57 // This is the message that's propagated up the responder chain. 58 59{$endif} 60{$endif} 61 62{$ifdef FORWARD} 63 NSFontManager = class; 64 65{$endif} 66 67{$ifdef CLASSES} 68{$ifndef NSFONTMANAGER_PAS_C} 69{$define NSFONTMANAGER_PAS_C} 70 71 72 { NSFontManager } 73 74 NSFontManager = class(NSObject) 75 public 76 class function getClass: lobjc.id; override; 77 // All instance variables are private 78 class procedure setFontPanelFactory_(_factoryId: _Class); 79 class procedure setFontManagerFactory_(_factoryId: _Class); 80 constructor sharedFontManager; 81 function isMultiple: LongBool; 82 function selectedFont: lobjc.id; 83 procedure setSelectedFont_isMultiple_(_fontObj: lobjc.id; _flag: LongBool); 84 procedure setFontMenu_(_newMenu: lobjc.id); 85 function fontMenu_(_create: LongBool): lobjc.id; 86 function fontPanel_(_create: LongBool): lobjc.id; 87 function fontWithFamily_traits_weight_size_(_family: CFStringRef; _traits: NSFontTraitMask; _weight: Integer; _size: Single): lobjc.id; 88 function traitsOfFont_(_fontObj: lobjc.id): NSFontTraitMask; 89 function weightOfFont_(_fontObj: lobjc.id): Integer; 90 // Three methods for supporting app font management. The fonts and names used/returned 91 // by these functions are the same as those used by the NSFontPanel. The third method 92 // below takes as input a name as returned by "availableFontFamilies" and returns an 93 // NSArray of NSArrays. The elements of the "inner" arrays are: (0) the font's name, 94 // (1) non-family part of the name as used by NSFontPanel, (2) an NSNumber indicating 95 // the weight, and (3) an NSNumber indicating the traits. 96 function availableFonts: CFArrayRef; 97 function availableFontFamilies: CFArrayRef; 98 function availableMembersOfFontFamily_(_fam: CFStringRef): CFArrayRef; 99 function convertFont_(_fontObj: lobjc.id): lobjc.id; 100 function convertFont_toSize_(_fontObj: lobjc.id; _size: Single): lobjc.id; 101 function convertFont_toFace_(_fontObj: lobjc.id; _typeface: CFStringRef): lobjc.id; 102 function convertFont_toFamily_(_fontObj: lobjc.id; _family: CFStringRef): lobjc.id; 103 function convertFont_toHaveTrait_(_fontObj: lobjc.id; _trait: NSFontTraitMask): lobjc.id; 104 function convertFont_toNotHaveTrait_(_fontObj: lobjc.id; _trait: NSFontTraitMask): lobjc.id; 105 function convertWeight_ofFont_(_upFlag: LongBool; _fontObj: lobjc.id): lobjc.id; 106 function isEnabled: LongBool; 107 procedure setEnabled_(_flag: LongBool); 108 function action: SEL; 109 procedure setAction_(_aSelector: SEL); 110 function sendAction: LongBool; 111 procedure setDelegate_(_anObject: lobjc.id); 112 function delegate: lobjc.id; 113 function localizedNameForFamily_face_(_family: CFStringRef; _faceKey: CFStringRef): CFStringRef; 114 procedure setSelectedAttributes_isMultiple_(_attributes: CFDictionaryRef; _flag: LongBool); 115 function convertAttributes_(_attributes: CFDictionaryRef): CFDictionaryRef; 116 function availableFontNamesMatchingFontDescriptor_(_descriptor: lobjc.id): CFArrayRef; 117 function collectionNames: CFArrayRef; 118 function fontDescriptorsInCollection_(_collectionNames: CFStringRef): CFArrayRef; 119 function addCollection_options_(_collectionName: CFStringRef; _collectionOptions: Integer): LongBool; 120 function removeCollection_(_collectionName: CFStringRef): LongBool; 121 procedure addFontDescriptors_toCollection_(_descriptors: CFArrayRef; _collectionName: CFStringRef); 122 procedure removeFontDescriptor_fromCollection_(_descriptor: lobjc.id; _collection: CFStringRef); 123 function fontNamed_hasTraits_(_fName: CFStringRef; _someTraits: NSFontTraitMask): LongBool; 124 // The following is like "availableFonts", but checks traits. Returns an auto-released 125 // instance. To get fonts with "non-italic" or "non-bold" combine the flags NSUnitalicFontMask 126 // and/or NSUnboldFontMask as the argument "someTraits". 127 function availableFontNamesWithTraits_(_someTraits: NSFontTraitMask): CFArrayRef; 128 // These methods are action messages sent from Font Menu items: 129 procedure addFontTrait_(_sender: lobjc.id); 130 procedure removeFontTrait_(_sender: lobjc.id); 131 procedure modifyFontViaPanel_(_sender: lobjc.id); 132 procedure modifyFont_(_sender: lobjc.id); 133 procedure orderFrontFontPanel_(_sender: lobjc.id); 134 procedure orderFrontStylesPanel_(_sender: lobjc.id); 135 end; 136 137{$endif} 138{$endif} 139 140{$ifdef IMPLEMENTATION} 141const 142 StrNSFontManager_NSFontManager = 'NSFontManager'; 143 StrNSFontManager_setFontPanelFactory_ = 'setFontPanelFactory:'; 144 StrNSFontManager_setFontManagerFactory_ = 'setFontManagerFactory:'; 145 StrNSFontManager_sharedFontManager = 'sharedFontManager'; 146 StrNSFontManager_isMultiple = 'isMultiple'; 147 StrNSFontManager_selectedFont = 'selectedFont'; 148 StrNSFontManager_setSelectedFont_isMultiple_ = 'setSelectedFont:isMultiple:'; 149 StrNSFontManager_setFontMenu_ = 'setFontMenu:'; 150 StrNSFontManager_fontMenu_ = 'fontMenu:'; 151 StrNSFontManager_fontPanel_ = 'fontPanel:'; 152 StrNSFontManager_fontWithFamily_traits_weight_size_ = 'fontWithFamily:traits:weight:size:'; 153 StrNSFontManager_traitsOfFont_ = 'traitsOfFont:'; 154 StrNSFontManager_weightOfFont_ = 'weightOfFont:'; 155 StrNSFontManager_availableFonts = 'availableFonts'; 156 StrNSFontManager_availableFontFamilies = 'availableFontFamilies'; 157 StrNSFontManager_availableMembersOfFontFamily_ = 'availableMembersOfFontFamily:'; 158 StrNSFontManager_convertFont_ = 'convertFont:'; 159 StrNSFontManager_convertFont_toSize_ = 'convertFont:toSize:'; 160 StrNSFontManager_convertFont_toFace_ = 'convertFont:toFace:'; 161 StrNSFontManager_convertFont_toFamily_ = 'convertFont:toFamily:'; 162 StrNSFontManager_convertFont_toHaveTrait_ = 'convertFont:toHaveTrait:'; 163 StrNSFontManager_convertFont_toNotHaveTrait_ = 'convertFont:toNotHaveTrait:'; 164 StrNSFontManager_convertWeight_ofFont_ = 'convertWeight:ofFont:'; 165 StrNSFontManager_isEnabled = 'isEnabled'; 166 StrNSFontManager_setEnabled_ = 'setEnabled:'; 167 StrNSFontManager_action = 'action'; 168 StrNSFontManager_setAction_ = 'setAction:'; 169 StrNSFontManager_sendAction = 'sendAction'; 170 StrNSFontManager_setDelegate_ = 'setDelegate:'; 171 StrNSFontManager_delegate = 'delegate'; 172 StrNSFontManager_localizedNameForFamily_face_ = 'localizedNameForFamily:face:'; 173 StrNSFontManager_setSelectedAttributes_isMultiple_ = 'setSelectedAttributes:isMultiple:'; 174 StrNSFontManager_convertAttributes_ = 'convertAttributes:'; 175 StrNSFontManager_availableFontNamesMatchingFontDescriptor_ = 'availableFontNamesMatchingFontDescriptor:'; 176 StrNSFontManager_collectionNames = 'collectionNames'; 177 StrNSFontManager_fontDescriptorsInCollection_ = 'fontDescriptorsInCollection:'; 178 StrNSFontManager_addCollection_options_ = 'addCollection:options:'; 179 StrNSFontManager_removeCollection_ = 'removeCollection:'; 180 StrNSFontManager_addFontDescriptors_toCollection_ = 'addFontDescriptors:toCollection:'; 181 StrNSFontManager_removeFontDescriptor_fromCollection_ = 'removeFontDescriptor:fromCollection:'; 182 183 StrNSFontManager_fontNamed_hasTraits_ = 'fontNamed:hasTraits:'; 184 StrNSFontManager_availableFontNamesWithTraits_ = 'availableFontNamesWithTraits:'; 185 StrNSFontManager_addFontTrait_ = 'addFontTrait:'; 186 StrNSFontManager_removeFontTrait_ = 'removeFontTrait:'; 187 StrNSFontManager_modifyFontViaPanel_ = 'modifyFontViaPanel:'; 188 StrNSFontManager_modifyFont_ = 'modifyFont:'; 189 StrNSFontManager_orderFrontFontPanel_ = 'orderFrontFontPanel:'; 190 StrNSFontManager_orderFrontStylesPanel_ = 'orderFrontStylesPanel:'; 191 192{ NSFontManager } 193 194class function NSFontManager.getClass: lobjc.id; 195begin 196 Result := objc_getClass(StrNSFontManager_NSFontManager); 197end; 198 199class procedure NSFontManager.setFontPanelFactory_(_factoryId: _Class); 200type 201 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_factoryId: _Class);cdecl; 202var 203 vmethod: TmsgSendWrapper; 204begin 205 vmethod := TmsgSendWrapper(@objc_msgSend); 206 vmethod(getClass, sel_registerName(PChar(StrNSFontManager_setFontPanelFactory_)), _factoryId); 207end; 208 209class procedure NSFontManager.setFontManagerFactory_(_factoryId: _Class); 210type 211 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_factoryId: _Class);cdecl; 212var 213 vmethod: TmsgSendWrapper; 214begin 215 vmethod := TmsgSendWrapper(@objc_msgSend); 216 vmethod(getClass, sel_registerName(PChar(StrNSFontManager_setFontManagerFactory_)), _factoryId); 217end; 218 219constructor NSFontManager.sharedFontManager; 220type 221 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL): lobjc.id;cdecl; 222var 223 vmethod: TmsgSendWrapper; 224begin 225 ClassID := getClass(); 226 vmethod := TmsgSendWrapper(@objc_msgSend); 227 Handle := vmethod(ClassID, sel_registerName(PChar(StrNSFontManager_sharedFontManager))); 228end; 229 230function NSFontManager.isMultiple: LongBool; 231begin 232 Result := {%H-}LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_isMultiple)), [])); 233end; 234 235function NSFontManager.selectedFont: lobjc.id; 236begin 237 Result := lobjc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_selectedFont)), [])); 238end; 239 240procedure NSFontManager.setSelectedFont_isMultiple_(_fontObj: lobjc.id; _flag: LongBool); 241type 242 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id; _flag: LongBool);cdecl; 243var 244 vmethod: TmsgSendWrapper; 245begin 246 vmethod := TmsgSendWrapper(@objc_msgSend); 247 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_setSelectedFont_isMultiple_)), _fontObj, _flag); 248end; 249 250procedure NSFontManager.setFontMenu_(_newMenu: lobjc.id); 251type 252 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_newMenu: lobjc.id);cdecl; 253var 254 vmethod: TmsgSendWrapper; 255begin 256 vmethod := TmsgSendWrapper(@objc_msgSend); 257 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_setFontMenu_)), _newMenu); 258end; 259 260function NSFontManager.fontMenu_(_create: LongBool): lobjc.id; 261type 262 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_create: LongBool): lobjc.id;cdecl; 263var 264 vmethod: TmsgSendWrapper; 265begin 266 vmethod := TmsgSendWrapper(@objc_msgSend); 267 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_fontMenu_)), _create)); 268end; 269 270function NSFontManager.fontPanel_(_create: LongBool): lobjc.id; 271type 272 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_create: LongBool): lobjc.id;cdecl; 273var 274 vmethod: TmsgSendWrapper; 275begin 276 vmethod := TmsgSendWrapper(@objc_msgSend); 277 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_fontPanel_)), _create)); 278end; 279 280function NSFontManager.fontWithFamily_traits_weight_size_(_family: CFStringRef; _traits: NSFontTraitMask; _weight: Integer; _size: Single): lobjc.id; 281type 282 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_family: CFStringRef; _traits: NSFontTraitMask; _weight: Integer; _size: Single): lobjc.id;cdecl; 283var 284 vmethod: TmsgSendWrapper; 285begin 286 vmethod := TmsgSendWrapper(@objc_msgSend); 287 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_fontWithFamily_traits_weight_size_)), _family, _traits, _weight, _size)); 288end; 289 290function NSFontManager.traitsOfFont_(_fontObj: lobjc.id): NSFontTraitMask; 291type 292 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id): NSFontTraitMask;cdecl; 293var 294 vmethod: TmsgSendWrapper; 295begin 296 vmethod := TmsgSendWrapper(@objc_msgSend); 297 Result := NSFontTraitMask(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_traitsOfFont_)), _fontObj)); 298end; 299 300function NSFontManager.weightOfFont_(_fontObj: lobjc.id): Integer; 301type 302 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id): Integer;cdecl; 303var 304 vmethod: TmsgSendWrapper; 305begin 306 vmethod := TmsgSendWrapper(@objc_msgSend); 307 Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_weightOfFont_)), _fontObj)); 308end; 309 310function NSFontManager.availableFonts: CFArrayRef; 311begin 312 Result := CFArrayRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_availableFonts)), [])); 313end; 314 315function NSFontManager.availableFontFamilies: CFArrayRef; 316begin 317 Result := CFArrayRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_availableFontFamilies)), [])); 318end; 319 320function NSFontManager.availableMembersOfFontFamily_(_fam: CFStringRef): CFArrayRef; 321type 322 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fam: CFStringRef): CFArrayRef;cdecl; 323var 324 vmethod: TmsgSendWrapper; 325begin 326 vmethod := TmsgSendWrapper(@objc_msgSend); 327 Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_availableMembersOfFontFamily_)), _fam)); 328end; 329 330function NSFontManager.convertFont_(_fontObj: lobjc.id): lobjc.id; 331type 332 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id): lobjc.id;cdecl; 333var 334 vmethod: TmsgSendWrapper; 335begin 336 vmethod := TmsgSendWrapper(@objc_msgSend); 337 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertFont_)), _fontObj)); 338end; 339 340function NSFontManager.convertFont_toSize_(_fontObj: lobjc.id; _size: Single): lobjc.id; 341type 342 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id; _size: Single): lobjc.id;cdecl; 343var 344 vmethod: TmsgSendWrapper; 345begin 346 vmethod := TmsgSendWrapper(@objc_msgSend); 347 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertFont_toSize_)), _fontObj, _size)); 348end; 349 350function NSFontManager.convertFont_toFace_(_fontObj: lobjc.id; _typeface: CFStringRef): lobjc.id; 351type 352 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id; _typeface: CFStringRef): lobjc.id;cdecl; 353var 354 vmethod: TmsgSendWrapper; 355begin 356 vmethod := TmsgSendWrapper(@objc_msgSend); 357 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertFont_toFace_)), _fontObj, _typeface)); 358end; 359 360function NSFontManager.convertFont_toFamily_(_fontObj: lobjc.id; _family: CFStringRef): lobjc.id; 361type 362 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id; _family: CFStringRef): lobjc.id;cdecl; 363var 364 vmethod: TmsgSendWrapper; 365begin 366 vmethod := TmsgSendWrapper(@objc_msgSend); 367 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertFont_toFamily_)), _fontObj, _family)); 368end; 369 370function NSFontManager.convertFont_toHaveTrait_(_fontObj: lobjc.id; _trait: NSFontTraitMask): lobjc.id; 371type 372 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id; _trait: NSFontTraitMask): lobjc.id;cdecl; 373var 374 vmethod: TmsgSendWrapper; 375begin 376 vmethod := TmsgSendWrapper(@objc_msgSend); 377 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertFont_toHaveTrait_)), _fontObj, _trait)); 378end; 379 380function NSFontManager.convertFont_toNotHaveTrait_(_fontObj: lobjc.id; _trait: NSFontTraitMask): lobjc.id; 381type 382 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fontObj: lobjc.id; _trait: NSFontTraitMask): lobjc.id;cdecl; 383var 384 vmethod: TmsgSendWrapper; 385begin 386 vmethod := TmsgSendWrapper(@objc_msgSend); 387 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertFont_toNotHaveTrait_)), _fontObj, _trait)); 388end; 389 390function NSFontManager.convertWeight_ofFont_(_upFlag: LongBool; _fontObj: lobjc.id): lobjc.id; 391type 392 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_upFlag: LongBool; _fontObj: lobjc.id): lobjc.id;cdecl; 393var 394 vmethod: TmsgSendWrapper; 395begin 396 vmethod := TmsgSendWrapper(@objc_msgSend); 397 Result := lobjc.id(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertWeight_ofFont_)), _upFlag, _fontObj)); 398end; 399 400function NSFontManager.isEnabled: LongBool; 401begin 402 Result := {%H-}LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_isEnabled)), [])); 403end; 404 405procedure NSFontManager.setEnabled_(_flag: LongBool); 406type 407 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_flag: LongBool);cdecl; 408var 409 vmethod: TmsgSendWrapper; 410begin 411 vmethod := TmsgSendWrapper(@objc_msgSend); 412 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_setEnabled_)), _flag); 413end; 414 415function NSFontManager.action: SEL; 416begin 417 Result := SEL(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_action)), [])); 418end; 419 420procedure NSFontManager.setAction_(_aSelector: SEL); 421type 422 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_aSelector: SEL);cdecl; 423var 424 vmethod: TmsgSendWrapper; 425begin 426 vmethod := TmsgSendWrapper(@objc_msgSend); 427 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_setAction_)), _aSelector); 428end; 429 430function NSFontManager.sendAction: LongBool; 431begin 432 Result := {%H-}LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_sendAction)), [])); 433end; 434 435procedure NSFontManager.setDelegate_(_anObject: lobjc.id); 436type 437 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_anObject: lobjc.id);cdecl; 438var 439 vmethod: TmsgSendWrapper; 440begin 441 vmethod := TmsgSendWrapper(@objc_msgSend); 442 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_setDelegate_)), _anObject); 443end; 444 445function NSFontManager.delegate: lobjc.id; 446begin 447 Result := lobjc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_delegate)), [])); 448end; 449 450function NSFontManager.localizedNameForFamily_face_(_family: CFStringRef; _faceKey: CFStringRef): CFStringRef; 451type 452 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_family: CFStringRef; _faceKey: CFStringRef): CFStringRef;cdecl; 453var 454 vmethod: TmsgSendWrapper; 455begin 456 vmethod := TmsgSendWrapper(@objc_msgSend); 457 Result := CFStringRef(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_localizedNameForFamily_face_)), _family, _faceKey)); 458end; 459 460procedure NSFontManager.setSelectedAttributes_isMultiple_(_attributes: CFDictionaryRef; _flag: LongBool); 461type 462 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_attributes: CFDictionaryRef; _flag: LongBool);cdecl; 463var 464 vmethod: TmsgSendWrapper; 465begin 466 vmethod := TmsgSendWrapper(@objc_msgSend); 467 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_setSelectedAttributes_isMultiple_)), _attributes, _flag); 468end; 469 470function NSFontManager.convertAttributes_(_attributes: CFDictionaryRef): CFDictionaryRef; 471type 472 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_attributes: CFDictionaryRef): CFDictionaryRef;cdecl; 473var 474 vmethod: TmsgSendWrapper; 475begin 476 vmethod := TmsgSendWrapper(@objc_msgSend); 477 Result := CFDictionaryRef(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_convertAttributes_)), _attributes)); 478end; 479 480function NSFontManager.availableFontNamesMatchingFontDescriptor_(_descriptor: lobjc.id): CFArrayRef; 481type 482 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_descriptor: lobjc.id): CFArrayRef;cdecl; 483var 484 vmethod: TmsgSendWrapper; 485begin 486 vmethod := TmsgSendWrapper(@objc_msgSend); 487 Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_availableFontNamesMatchingFontDescriptor_)), _descriptor)); 488end; 489 490function NSFontManager.collectionNames: CFArrayRef; 491begin 492 Result := CFArrayRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSFontManager_collectionNames)), [])); 493end; 494 495function NSFontManager.fontDescriptorsInCollection_(_collectionNames: CFStringRef): CFArrayRef; 496type 497 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_collectionNames: CFStringRef): CFArrayRef;cdecl; 498var 499 vmethod: TmsgSendWrapper; 500begin 501 vmethod := TmsgSendWrapper(@objc_msgSend); 502 Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_fontDescriptorsInCollection_)), _collectionNames)); 503end; 504 505function NSFontManager.addCollection_options_(_collectionName: CFStringRef; _collectionOptions: Integer): LongBool; 506type 507 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_collectionName: CFStringRef; _collectionOptions: Integer): LongBool;cdecl; 508var 509 vmethod: TmsgSendWrapper; 510begin 511 vmethod := TmsgSendWrapper(@objc_msgSend); 512 Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_addCollection_options_)), _collectionName, _collectionOptions)); 513end; 514 515function NSFontManager.removeCollection_(_collectionName: CFStringRef): LongBool; 516type 517 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_collectionName: CFStringRef): LongBool;cdecl; 518var 519 vmethod: TmsgSendWrapper; 520begin 521 vmethod := TmsgSendWrapper(@objc_msgSend); 522 Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_removeCollection_)), _collectionName)); 523end; 524 525procedure NSFontManager.addFontDescriptors_toCollection_(_descriptors: CFArrayRef; _collectionName: CFStringRef); 526type 527 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_descriptors: CFArrayRef; _collectionName: CFStringRef);cdecl; 528var 529 vmethod: TmsgSendWrapper; 530begin 531 vmethod := TmsgSendWrapper(@objc_msgSend); 532 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_addFontDescriptors_toCollection_)), _descriptors, _collectionName); 533end; 534 535procedure NSFontManager.removeFontDescriptor_fromCollection_(_descriptor: lobjc.id; _collection: CFStringRef); 536type 537 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_descriptor: lobjc.id; _collection: CFStringRef);cdecl; 538var 539 vmethod: TmsgSendWrapper; 540begin 541 vmethod := TmsgSendWrapper(@objc_msgSend); 542 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_removeFontDescriptor_fromCollection_)), _descriptor, _collection); 543end; 544 545function NSFontManager.fontNamed_hasTraits_(_fName: CFStringRef; _someTraits: NSFontTraitMask): LongBool; 546type 547 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_fName: CFStringRef; _someTraits: NSFontTraitMask): LongBool;cdecl; 548var 549 vmethod: TmsgSendWrapper; 550begin 551 vmethod := TmsgSendWrapper(@objc_msgSend); 552 Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_fontNamed_hasTraits_)), _fName, _someTraits)); 553end; 554 555function NSFontManager.availableFontNamesWithTraits_(_someTraits: NSFontTraitMask): CFArrayRef; 556type 557 TmsgSendWrapper = function (param1: lobjc.id; param2: SEL;_someTraits: NSFontTraitMask): CFArrayRef;cdecl; 558var 559 vmethod: TmsgSendWrapper; 560begin 561 vmethod := TmsgSendWrapper(@objc_msgSend); 562 Result := CFArrayRef(vmethod(Handle, sel_registerName(PChar(StrNSFontManager_availableFontNamesWithTraits_)), _someTraits)); 563end; 564 565procedure NSFontManager.addFontTrait_(_sender: lobjc.id); 566type 567 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_sender: lobjc.id);cdecl; 568var 569 vmethod: TmsgSendWrapper; 570begin 571 vmethod := TmsgSendWrapper(@objc_msgSend); 572 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_addFontTrait_)), _sender); 573end; 574 575procedure NSFontManager.removeFontTrait_(_sender: lobjc.id); 576type 577 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_sender: lobjc.id);cdecl; 578var 579 vmethod: TmsgSendWrapper; 580begin 581 vmethod := TmsgSendWrapper(@objc_msgSend); 582 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_removeFontTrait_)), _sender); 583end; 584 585procedure NSFontManager.modifyFontViaPanel_(_sender: lobjc.id); 586type 587 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_sender: lobjc.id);cdecl; 588var 589 vmethod: TmsgSendWrapper; 590begin 591 vmethod := TmsgSendWrapper(@objc_msgSend); 592 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_modifyFontViaPanel_)), _sender); 593end; 594 595procedure NSFontManager.modifyFont_(_sender: lobjc.id); 596type 597 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_sender: lobjc.id);cdecl; 598var 599 vmethod: TmsgSendWrapper; 600begin 601 vmethod := TmsgSendWrapper(@objc_msgSend); 602 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_modifyFont_)), _sender); 603end; 604 605procedure NSFontManager.orderFrontFontPanel_(_sender: lobjc.id); 606type 607 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_sender: lobjc.id);cdecl; 608var 609 vmethod: TmsgSendWrapper; 610begin 611 vmethod := TmsgSendWrapper(@objc_msgSend); 612 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_orderFrontFontPanel_)), _sender); 613end; 614 615procedure NSFontManager.orderFrontStylesPanel_(_sender: lobjc.id); 616type 617 TmsgSendWrapper = procedure (param1: lobjc.id; param2: SEL;_sender: lobjc.id);cdecl; 618var 619 vmethod: TmsgSendWrapper; 620begin 621 vmethod := TmsgSendWrapper(@objc_msgSend); 622 vmethod(Handle, sel_registerName(PChar(StrNSFontManager_orderFrontStylesPanel_)), _sender); 623end; 624 625{$endif} 626