]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/cocoa-docs.factor
scryfall: better moxfield words
[factor.git] / basis / cocoa / cocoa-docs.factor
1 USING: cocoa.messages help.markup help.syntax strings
2 alien core-foundation ;
3 IN: cocoa
4
5 HELP: ->
6 { $syntax "-> selector" }
7 { $values { "selector" "an Objective C method name" } }
8 { $description "A sugared form of the following:" }
9 { $code "\"selector\" send" } ;
10
11 HELP: SUPER->
12 { $syntax "-> selector" }
13 { $values { "selector" "an Objective C method name" } }
14 { $description "A sugared form of the following:" }
15 { $code "\"selector\" send-super" } ;
16
17 { send super-send POSTPONE: -> POSTPONE: SUPER-> } related-words
18
19 HELP: IMPORT:
20 { $syntax "IMPORT: name" }
21 { $description "Makes an Objective C class available for use." }
22 { $examples
23     { $code "IMPORT: QTMovie" "QTMovie \"My Movie.mov\" <NSString> f -> movieWithFile:error:" }
24 } ;
25
26 ARTICLE: "objc-calling" "Calling Objective C code"
27 "Before an Objective C class can be used, it must be imported; by default, a small set of common classes are imported automatically, but additional classes can be imported as needed."
28 { $subsections POSTPONE: IMPORT: }
29 "Every imported Objective C class has as corresponding class word in the " { $vocab-link "cocoa.classes" } " vocabulary. Class words push the class object in the stack, allowing class methods to be invoked."
30 $nl
31 "Messages can be sent to classes and instances using a pair of parsing words:"
32 { $subsections
33     POSTPONE: ->
34     POSTPONE: SUPER->
35 }
36 "These parsing words are actually syntax sugar for a pair of ordinary words; they can be used instead of the parsing words if the selector name is dynamically computed:"
37 { $subsections
38     send
39     super-send
40 } ;
41
42 ARTICLE: "cocoa" "Cocoa bridge"
43 "The " { $vocab-link "cocoa" } " vocabulary implements a Factor-Cocoa bridge for Mac OS X (GNUstep is not supported)."
44 $nl
45 "The lowest layer uses the " { $link "alien" } " to define bindings for the various functions in Apple's Objective-C runtime. This is defined in the " { $vocab-link "cocoa.runtime" } " vocabulary."
46 $nl
47 "On top of this, a dynamic message send facility is built:"
48 { $subsections
49     "objc-calling"
50     "objc-subclassing"
51 }
52 "A utility library is built to facilitate the development of Cocoa applications in Factor:"
53 { $subsections
54     "cocoa-application-utils"
55     "cocoa-dialogs"
56     "cocoa-pasteboard-utils"
57     "cocoa-view-utils"
58     "cocoa-window-utils"
59 } ;
60
61 ABOUT: "cocoa"