update cocoa bridge to use c-type words
parent
c5dd8d0b20
commit
cc5f9ff98a
|
@ -16,11 +16,11 @@ CLASS: {
|
|||
{ +superclass+ "NSObject" }
|
||||
}
|
||||
|
||||
{ "perform:" "void" { "id" "SEL" "id" }
|
||||
{ "perform:" void { id SEL id }
|
||||
[ 2drop callbacks get at try ]
|
||||
}
|
||||
|
||||
{ "dealloc" "void" { "id" "SEL" }
|
||||
{ "dealloc" void { id SEL }
|
||||
[
|
||||
drop
|
||||
dup callbacks get delete-at
|
||||
|
|
|
@ -8,8 +8,8 @@ CLASS: {
|
|||
{ +name+ "Foo" }
|
||||
} {
|
||||
"foo:"
|
||||
"void"
|
||||
{ "id" "SEL" "NSRect" }
|
||||
void
|
||||
{ id SEL NSRect }
|
||||
[ gc "x" set 2drop ]
|
||||
} ;
|
||||
|
||||
|
@ -30,8 +30,8 @@ CLASS: {
|
|||
{ +name+ "Bar" }
|
||||
} {
|
||||
"bar"
|
||||
"NSRect"
|
||||
{ "id" "SEL" }
|
||||
NSRect
|
||||
{ id SEL }
|
||||
[ 2drop test-foo "x" get ]
|
||||
} ;
|
||||
|
||||
|
@ -52,13 +52,13 @@ CLASS: {
|
|||
{ +name+ "Bar" }
|
||||
} {
|
||||
"bar"
|
||||
"NSRect"
|
||||
{ "id" "SEL" }
|
||||
NSRect
|
||||
{ id SEL }
|
||||
[ 2drop test-foo "x" get ]
|
||||
} {
|
||||
"babb"
|
||||
"int"
|
||||
{ "id" "SEL" "int" }
|
||||
int
|
||||
{ id SEL int }
|
||||
[ 2nip sq ]
|
||||
} ;
|
||||
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien alien.c-types alien.strings arrays assocs
|
||||
classes.struct continuations combinators compiler compiler.alien
|
||||
stack-checker kernel math namespaces make quotations sequences
|
||||
strings words cocoa.runtime io macros memoize io.encodings.utf8
|
||||
effects libc libc.private lexer init core-foundation fry
|
||||
generalizations specialized-arrays ;
|
||||
core-graphics.types stack-checker kernel math namespaces make
|
||||
quotations sequences strings words cocoa.runtime cocoa.types io
|
||||
macros memoize io.encodings.utf8 effects layouts libc
|
||||
libc.private lexer init core-foundation fry generalizations
|
||||
specialized-arrays ;
|
||||
QUALIFIED-WITH: alien.c-types c
|
||||
IN: cocoa.messages
|
||||
|
||||
SPECIALIZED-ARRAY: void*
|
||||
|
@ -98,75 +100,84 @@ class-init-hooks [ H{ } clone ] initialize
|
|||
SYMBOL: objc>alien-types
|
||||
|
||||
H{
|
||||
{ "c" "char" }
|
||||
{ "i" "int" }
|
||||
{ "s" "short" }
|
||||
{ "C" "uchar" }
|
||||
{ "I" "uint" }
|
||||
{ "S" "ushort" }
|
||||
{ "f" "float" }
|
||||
{ "d" "double" }
|
||||
{ "B" "bool" }
|
||||
{ "v" "void" }
|
||||
{ "*" "char*" }
|
||||
{ "?" "unknown_type" }
|
||||
{ "@" "id" }
|
||||
{ "#" "Class" }
|
||||
{ ":" "SEL" }
|
||||
{ "c" c:char }
|
||||
{ "i" c:int }
|
||||
{ "s" c:short }
|
||||
{ "C" c:uchar }
|
||||
{ "I" c:uint }
|
||||
{ "S" c:ushort }
|
||||
{ "f" c:float }
|
||||
{ "d" c:double }
|
||||
{ "B" c:bool }
|
||||
{ "v" c:void }
|
||||
{ "*" c:char* }
|
||||
{ "?" unknown_type }
|
||||
{ "@" id }
|
||||
{ "#" Class }
|
||||
{ ":" SEL }
|
||||
}
|
||||
"ptrdiff_t" heap-size {
|
||||
cell {
|
||||
{ 4 [ H{
|
||||
{ "l" "long" }
|
||||
{ "q" "longlong" }
|
||||
{ "L" "ulong" }
|
||||
{ "Q" "ulonglong" }
|
||||
{ "l" c:long }
|
||||
{ "q" c:longlong }
|
||||
{ "L" c:ulong }
|
||||
{ "Q" c:ulonglong }
|
||||
} ] }
|
||||
{ 8 [ H{
|
||||
{ "l" "long32" }
|
||||
{ "q" "long" }
|
||||
{ "L" "ulong32" }
|
||||
{ "Q" "ulong" }
|
||||
{ "l" long32 }
|
||||
{ "q" long }
|
||||
{ "L" ulong32 }
|
||||
{ "Q" ulong }
|
||||
} ] }
|
||||
} case
|
||||
assoc-union objc>alien-types set-global
|
||||
|
||||
SYMBOL: objc>struct-types
|
||||
|
||||
H{
|
||||
{ "_NSPoint" NSPoint }
|
||||
{ "NSPoint" NSPoint }
|
||||
{ "CGPoint" NSPoint }
|
||||
{ "_NSRect" NSRect }
|
||||
{ "NSRect" NSRect }
|
||||
{ "CGRect" NSRect }
|
||||
{ "_NSSize" NSSize }
|
||||
{ "NSSize" NSSize }
|
||||
{ "CGSize" NSSize }
|
||||
{ "_NSRange" NSRange }
|
||||
{ "NSRange" NSRange }
|
||||
} objc>struct-types set-global
|
||||
|
||||
! The transpose of the above map
|
||||
SYMBOL: alien>objc-types
|
||||
|
||||
objc>alien-types get [ swap ] assoc-map
|
||||
! A hack...
|
||||
"ptrdiff_t" heap-size {
|
||||
cell {
|
||||
{ 4 [ H{
|
||||
{ "NSPoint" "{_NSPoint=ff}" }
|
||||
{ "NSRect" "{_NSRect={_NSPoint=ff}{_NSSize=ff}}" }
|
||||
{ "NSSize" "{_NSSize=ff}" }
|
||||
{ "NSRange" "{_NSRange=II}" }
|
||||
{ "NSInteger" "i" }
|
||||
{ "NSUInteger" "I" }
|
||||
{ "CGFloat" "f" }
|
||||
{ NSPoint "{_NSPoint=ff}" }
|
||||
{ NSRect "{_NSRect={_NSPoint=ff}{_NSSize=ff}}" }
|
||||
{ NSSize "{_NSSize=ff}" }
|
||||
{ NSRange "{_NSRange=II}" }
|
||||
{ NSInteger "i" }
|
||||
{ NSUInteger "I" }
|
||||
{ CGFloat "f" }
|
||||
} ] }
|
||||
{ 8 [ H{
|
||||
{ "NSPoint" "{CGPoint=dd}" }
|
||||
{ "NSRect" "{CGRect={CGPoint=dd}{CGSize=dd}}" }
|
||||
{ "NSSize" "{CGSize=dd}" }
|
||||
{ "NSRange" "{_NSRange=QQ}" }
|
||||
{ "NSInteger" "q" }
|
||||
{ "NSUInteger" "Q" }
|
||||
{ "CGFloat" "d" }
|
||||
{ NSPoint "{CGPoint=dd}" }
|
||||
{ NSRect "{CGRect={CGPoint=dd}{CGSize=dd}}" }
|
||||
{ NSSize "{CGSize=dd}" }
|
||||
{ NSRange "{_NSRange=QQ}" }
|
||||
{ NSInteger "q" }
|
||||
{ NSUInteger "Q" }
|
||||
{ CGFloat "d" }
|
||||
} ] }
|
||||
} case
|
||||
assoc-union alien>objc-types set-global
|
||||
|
||||
: internal-cocoa-type? ( c-type -- ? )
|
||||
[ "?" = ] [ first CHAR: _ = ] bi or ;
|
||||
|
||||
: warn-c-type ( c-type -- )
|
||||
dup internal-cocoa-type?
|
||||
[ drop ] [ "Warning: no such C type: " write print ] if ;
|
||||
|
||||
: objc-struct-type ( i string -- ctype )
|
||||
[ CHAR: = ] 2keep index-from swap subseq
|
||||
dup c-types get key? [ warn-c-type "void*" ] unless ;
|
||||
objc>struct-types get at* [ drop void* ] unless ;
|
||||
|
||||
ERROR: no-objc-type name ;
|
||||
|
||||
|
@ -177,9 +188,9 @@ ERROR: no-objc-type name ;
|
|||
: (parse-objc-type) ( i string -- ctype )
|
||||
[ [ 1 + ] dip ] [ nth ] 2bi {
|
||||
{ [ dup "rnNoORV" member? ] [ drop (parse-objc-type) ] }
|
||||
{ [ dup CHAR: ^ = ] [ 3drop "void*" ] }
|
||||
{ [ dup CHAR: ^ = ] [ 3drop void* ] }
|
||||
{ [ dup CHAR: { = ] [ drop objc-struct-type ] }
|
||||
{ [ dup CHAR: [ = ] [ 3drop "void*" ] }
|
||||
{ [ dup CHAR: [ = ] [ 3drop void* ] }
|
||||
[ 2nip decode-type ]
|
||||
} cond ;
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ CLASS: {
|
|||
{ +name+ "Bar" }
|
||||
} {
|
||||
"bar:"
|
||||
"float"
|
||||
{ "id" "SEL" "NSRect" }
|
||||
float
|
||||
{ id SEL NSRect }
|
||||
[
|
||||
[ origin>> [ x>> ] [ y>> ] bi + ]
|
||||
[ size>> [ w>> ] [ h>> ] bi + ]
|
||||
|
|
|
@ -218,7 +218,7 @@ CLASS: {
|
|||
{ +name+ "FactorApplicationDelegate" }
|
||||
}
|
||||
|
||||
{ "applicationDidUpdate:" "void" { "id" "SEL" "id" }
|
||||
{ "applicationDidUpdate:" void { id SEL id }
|
||||
[ 3drop reset-run-loop ]
|
||||
} ;
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
! Copyright (C) 2006, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.syntax cocoa cocoa.nibs cocoa.application
|
||||
cocoa.classes cocoa.dialogs cocoa.pasteboard cocoa.subclassing
|
||||
core-foundation core-foundation.strings help.topics kernel
|
||||
memory namespaces parser system ui ui.tools.browser
|
||||
ui.tools.listener ui.backend.cocoa eval locals
|
||||
vocabs.refresh ;
|
||||
cocoa.classes cocoa.dialogs cocoa.pasteboard cocoa.runtime
|
||||
cocoa.subclassing core-foundation core-foundation.strings
|
||||
help.topics kernel memory namespaces parser system ui
|
||||
ui.tools.browser ui.tools.listener ui.backend.cocoa eval
|
||||
locals vocabs.refresh ;
|
||||
FROM: alien.c-types => int void ;
|
||||
IN: ui.backend.cocoa.tools
|
||||
|
||||
: finder-run-files ( alien -- )
|
||||
|
@ -25,43 +26,43 @@ CLASS: {
|
|||
{ +name+ "FactorWorkspaceApplicationDelegate" }
|
||||
}
|
||||
|
||||
{ "application:openFiles:" "void" { "id" "SEL" "id" "id" }
|
||||
{ "application:openFiles:" void { id SEL id id }
|
||||
[ [ 3drop ] dip finder-run-files ]
|
||||
}
|
||||
|
||||
{ "applicationShouldHandleReopen:hasVisibleWindows:" "int" { "id" "SEL" "id" "int" }
|
||||
{ "applicationShouldHandleReopen:hasVisibleWindows:" int { id SEL id int }
|
||||
[ [ 3drop ] dip 0 = [ show-listener ] when 1 ]
|
||||
}
|
||||
|
||||
{ "factorListener:" "id" { "id" "SEL" "id" }
|
||||
{ "factorListener:" id { id SEL id }
|
||||
[ 3drop show-listener f ]
|
||||
}
|
||||
|
||||
{ "factorBrowser:" "id" { "id" "SEL" "id" }
|
||||
{ "factorBrowser:" id { id SEL id }
|
||||
[ 3drop show-browser f ]
|
||||
}
|
||||
|
||||
{ "newFactorListener:" "id" { "id" "SEL" "id" }
|
||||
{ "newFactorListener:" id { id SEL id }
|
||||
[ 3drop listener-window f ]
|
||||
}
|
||||
|
||||
{ "newFactorBrowser:" "id" { "id" "SEL" "id" }
|
||||
{ "newFactorBrowser:" id { id SEL id }
|
||||
[ 3drop browser-window f ]
|
||||
}
|
||||
|
||||
{ "runFactorFile:" "id" { "id" "SEL" "id" }
|
||||
{ "runFactorFile:" id { id SEL id }
|
||||
[ 3drop menu-run-files f ]
|
||||
}
|
||||
|
||||
{ "saveFactorImage:" "id" { "id" "SEL" "id" }
|
||||
{ "saveFactorImage:" id { id SEL id }
|
||||
[ 3drop save f ]
|
||||
}
|
||||
|
||||
{ "saveFactorImageAs:" "id" { "id" "SEL" "id" }
|
||||
{ "saveFactorImageAs:" id { id SEL id }
|
||||
[ 3drop menu-save-image f ]
|
||||
}
|
||||
|
||||
{ "refreshAll:" "id" { "id" "SEL" "id" }
|
||||
{ "refreshAll:" id { id SEL id }
|
||||
[ 3drop [ refresh-all ] \ refresh-all call-listener f ]
|
||||
} ;
|
||||
|
||||
|
@ -79,13 +80,13 @@ CLASS: {
|
|||
{ +name+ "FactorServiceProvider" }
|
||||
} {
|
||||
"evalInListener:userData:error:"
|
||||
"void"
|
||||
{ "id" "SEL" "id" "id" "id" }
|
||||
void
|
||||
{ id SEL id id id }
|
||||
[ nip [ eval-listener f ] do-service 2drop ]
|
||||
} {
|
||||
"evalToString:userData:error:"
|
||||
"void"
|
||||
{ "id" "SEL" "id" "id" "id" }
|
||||
void
|
||||
{ id SEL id id id }
|
||||
[ nip [ eval>string ] do-service 2drop ]
|
||||
} ;
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
USING: accessors alien alien.c-types alien.data alien.strings
|
||||
arrays assocs cocoa kernel math cocoa.messages cocoa.subclassing
|
||||
cocoa.classes cocoa.views cocoa.application cocoa.pasteboard
|
||||
cocoa.types cocoa.windows sequences io.encodings.utf8 ui ui.private
|
||||
ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures
|
||||
cocoa.runtime cocoa.types cocoa.windows sequences io.encodings.utf8
|
||||
ui ui.private ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures
|
||||
core-foundation.strings core-graphics core-graphics.types threads
|
||||
combinators math.rectangles ;
|
||||
IN: ui.backend.cocoa.views
|
||||
|
@ -148,76 +148,76 @@ CLASS: {
|
|||
}
|
||||
|
||||
! Rendering
|
||||
{ "drawRect:" "void" { "id" "SEL" "NSRect" }
|
||||
{ "drawRect:" void { id SEL NSRect }
|
||||
[ 2drop window relayout-1 yield ]
|
||||
}
|
||||
|
||||
! Events
|
||||
{ "acceptsFirstMouse:" "char" { "id" "SEL" "id" }
|
||||
{ "acceptsFirstMouse:" char { id SEL id }
|
||||
[ 3drop 1 ]
|
||||
}
|
||||
|
||||
{ "mouseEntered:" "void" { "id" "SEL" "id" }
|
||||
{ "mouseEntered:" void { id SEL id }
|
||||
[ nip send-mouse-moved ]
|
||||
}
|
||||
|
||||
{ "mouseExited:" "void" { "id" "SEL" "id" }
|
||||
{ "mouseExited:" void { id SEL id }
|
||||
[ 3drop forget-rollover ]
|
||||
}
|
||||
|
||||
{ "mouseMoved:" "void" { "id" "SEL" "id" }
|
||||
{ "mouseMoved:" void { id SEL id }
|
||||
[ nip send-mouse-moved ]
|
||||
}
|
||||
|
||||
{ "mouseDragged:" "void" { "id" "SEL" "id" }
|
||||
{ "mouseDragged:" void { id SEL id }
|
||||
[ nip send-mouse-moved ]
|
||||
}
|
||||
|
||||
{ "rightMouseDragged:" "void" { "id" "SEL" "id" }
|
||||
{ "rightMouseDragged:" void { id SEL id }
|
||||
[ nip send-mouse-moved ]
|
||||
}
|
||||
|
||||
{ "otherMouseDragged:" "void" { "id" "SEL" "id" }
|
||||
{ "otherMouseDragged:" void { id SEL id }
|
||||
[ nip send-mouse-moved ]
|
||||
}
|
||||
|
||||
{ "mouseDown:" "void" { "id" "SEL" "id" }
|
||||
{ "mouseDown:" void { id SEL id }
|
||||
[ nip send-button-down$ ]
|
||||
}
|
||||
|
||||
{ "mouseUp:" "void" { "id" "SEL" "id" }
|
||||
{ "mouseUp:" void { id SEL id }
|
||||
[ nip send-button-up$ ]
|
||||
}
|
||||
|
||||
{ "rightMouseDown:" "void" { "id" "SEL" "id" }
|
||||
{ "rightMouseDown:" void { id SEL id }
|
||||
[ nip send-button-down$ ]
|
||||
}
|
||||
|
||||
{ "rightMouseUp:" "void" { "id" "SEL" "id" }
|
||||
{ "rightMouseUp:" void { id SEL id }
|
||||
[ nip send-button-up$ ]
|
||||
}
|
||||
|
||||
{ "otherMouseDown:" "void" { "id" "SEL" "id" }
|
||||
{ "otherMouseDown:" void { id SEL id }
|
||||
[ nip send-button-down$ ]
|
||||
}
|
||||
|
||||
{ "otherMouseUp:" "void" { "id" "SEL" "id" }
|
||||
{ "otherMouseUp:" void { id SEL id }
|
||||
[ nip send-button-up$ ]
|
||||
}
|
||||
|
||||
{ "scrollWheel:" "void" { "id" "SEL" "id" }
|
||||
{ "scrollWheel:" void { id SEL id }
|
||||
[ nip send-wheel$ ]
|
||||
}
|
||||
|
||||
{ "keyDown:" "void" { "id" "SEL" "id" }
|
||||
{ "keyDown:" void { id SEL id }
|
||||
[ nip send-key-down-event ]
|
||||
}
|
||||
|
||||
{ "keyUp:" "void" { "id" "SEL" "id" }
|
||||
{ "keyUp:" void { id SEL id }
|
||||
[ nip send-key-up-event ]
|
||||
}
|
||||
|
||||
{ "validateUserInterfaceItem:" "char" { "id" "SEL" "id" }
|
||||
{ "validateUserInterfaceItem:" char { id SEL id }
|
||||
[
|
||||
nip -> action
|
||||
2dup [ window ] [ utf8 alien>string ] bi* validate-action
|
||||
|
@ -225,57 +225,57 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
{ "undo:" "id" { "id" "SEL" "id" }
|
||||
{ "undo:" id { id SEL id }
|
||||
[ nip undo-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "redo:" "id" { "id" "SEL" "id" }
|
||||
{ "redo:" id { id SEL id }
|
||||
[ nip redo-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "cut:" "id" { "id" "SEL" "id" }
|
||||
{ "cut:" id { id SEL id }
|
||||
[ nip cut-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "copy:" "id" { "id" "SEL" "id" }
|
||||
{ "copy:" id { id SEL id }
|
||||
[ nip copy-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "paste:" "id" { "id" "SEL" "id" }
|
||||
{ "paste:" id { id SEL id }
|
||||
[ nip paste-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "delete:" "id" { "id" "SEL" "id" }
|
||||
{ "delete:" id { id SEL id }
|
||||
[ nip delete-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "selectAll:" "id" { "id" "SEL" "id" }
|
||||
{ "selectAll:" id { id SEL id }
|
||||
[ nip select-all-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "newDocument:" "id" { "id" "SEL" "id" }
|
||||
{ "newDocument:" id { id SEL id }
|
||||
[ nip new-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "openDocument:" "id" { "id" "SEL" "id" }
|
||||
{ "openDocument:" id { id SEL id }
|
||||
[ nip open-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "saveDocument:" "id" { "id" "SEL" "id" }
|
||||
{ "saveDocument:" id { id SEL id }
|
||||
[ nip save-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "saveDocumentAs:" "id" { "id" "SEL" "id" }
|
||||
{ "saveDocumentAs:" id { id SEL id }
|
||||
[ nip save-as-action send-action$ ]
|
||||
}
|
||||
|
||||
{ "revertDocumentToSaved:" "id" { "id" "SEL" "id" }
|
||||
{ "revertDocumentToSaved:" id { id SEL id }
|
||||
[ nip revert-action send-action$ ]
|
||||
}
|
||||
|
||||
! Multi-touch gestures: this is undocumented.
|
||||
! http://cocoadex.com/2008/02/nsevent-modifications-swipe-ro.html
|
||||
{ "magnifyWithEvent:" "void" { "id" "SEL" "id" }
|
||||
{ "magnifyWithEvent:" void { id SEL id }
|
||||
[
|
||||
nip
|
||||
dup -> deltaZ sgn {
|
||||
|
@ -286,7 +286,7 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
{ "swipeWithEvent:" "void" { "id" "SEL" "id" }
|
||||
{ "swipeWithEvent:" void { id SEL id }
|
||||
[
|
||||
nip
|
||||
dup -> deltaX sgn {
|
||||
|
@ -305,14 +305,14 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
! "rotateWithEvent:" "void" { "id" "SEL" "id" }}
|
||||
! "rotateWithEvent:" void { id SEL id }}
|
||||
|
||||
{ "acceptsFirstResponder" "char" { "id" "SEL" }
|
||||
{ "acceptsFirstResponder" char { id SEL }
|
||||
[ 2drop 1 ]
|
||||
}
|
||||
|
||||
! Services
|
||||
{ "validRequestorForSendType:returnType:" "id" { "id" "SEL" "id" "id" }
|
||||
{ "validRequestorForSendType:returnType:" id { id SEL id id }
|
||||
[
|
||||
! We return either self or nil
|
||||
[ over window-focus ] 2dip
|
||||
|
@ -320,7 +320,7 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
{ "writeSelectionToPasteboard:types:" "char" { "id" "SEL" "id" "id" }
|
||||
{ "writeSelectionToPasteboard:types:" char { id SEL id id }
|
||||
[
|
||||
CF>string-array NSStringPboardType swap member? [
|
||||
[ drop window-focus gadget-selection ] dip over
|
||||
|
@ -329,7 +329,7 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
{ "readSelectionFromPasteboard:" "char" { "id" "SEL" "id" }
|
||||
{ "readSelectionFromPasteboard:" char { id SEL id }
|
||||
[
|
||||
pasteboard-string dup [
|
||||
[ drop window ] dip swap user-input 1
|
||||
|
@ -338,60 +338,60 @@ CLASS: {
|
|||
}
|
||||
|
||||
! Text input
|
||||
{ "insertText:" "void" { "id" "SEL" "id" }
|
||||
{ "insertText:" void { id SEL id }
|
||||
[ nip CF>string swap window user-input ]
|
||||
}
|
||||
|
||||
{ "hasMarkedText" "char" { "id" "SEL" }
|
||||
{ "hasMarkedText" char { id SEL }
|
||||
[ 2drop 0 ]
|
||||
}
|
||||
|
||||
{ "markedRange" "NSRange" { "id" "SEL" }
|
||||
{ "markedRange" NSRange { id SEL }
|
||||
[ 2drop 0 0 <NSRange> ]
|
||||
}
|
||||
|
||||
{ "selectedRange" "NSRange" { "id" "SEL" }
|
||||
{ "selectedRange" NSRange { id SEL }
|
||||
[ 2drop 0 0 <NSRange> ]
|
||||
}
|
||||
|
||||
{ "setMarkedText:selectedRange:" "void" { "id" "SEL" "id" "NSRange" }
|
||||
{ "setMarkedText:selectedRange:" void { id SEL id NSRange }
|
||||
[ 2drop 2drop ]
|
||||
}
|
||||
|
||||
{ "unmarkText" "void" { "id" "SEL" }
|
||||
{ "unmarkText" void { id SEL }
|
||||
[ 2drop ]
|
||||
}
|
||||
|
||||
{ "validAttributesForMarkedText" "id" { "id" "SEL" }
|
||||
{ "validAttributesForMarkedText" id { id SEL }
|
||||
[ 2drop NSArray -> array ]
|
||||
}
|
||||
|
||||
{ "attributedSubstringFromRange:" "id" { "id" "SEL" "NSRange" }
|
||||
{ "attributedSubstringFromRange:" id { id SEL NSRange }
|
||||
[ 3drop f ]
|
||||
}
|
||||
|
||||
{ "characterIndexForPoint:" "NSUInteger" { "id" "SEL" "NSPoint" }
|
||||
{ "characterIndexForPoint:" NSUInteger { id SEL NSPoint }
|
||||
[ 3drop 0 ]
|
||||
}
|
||||
|
||||
{ "firstRectForCharacterRange:" "NSRect" { "id" "SEL" "NSRange" }
|
||||
{ "firstRectForCharacterRange:" NSRect { id SEL NSRange }
|
||||
[ 3drop 0 0 0 0 <CGRect> ]
|
||||
}
|
||||
|
||||
{ "conversationIdentifier" "NSInteger" { "id" "SEL" }
|
||||
{ "conversationIdentifier" NSInteger { id SEL }
|
||||
[ drop alien-address ]
|
||||
}
|
||||
|
||||
! Initialization
|
||||
{ "updateFactorGadgetSize:" "void" { "id" "SEL" "id" }
|
||||
{ "updateFactorGadgetSize:" void { id SEL id }
|
||||
[ 2drop [ window ] [ view-dim ] bi >>dim drop yield ]
|
||||
}
|
||||
|
||||
{ "doCommandBySelector:" "void" { "id" "SEL" "SEL" }
|
||||
{ "doCommandBySelector:" void { id SEL SEL }
|
||||
[ 3drop ]
|
||||
}
|
||||
|
||||
{ "initWithFrame:pixelFormat:" "id" { "id" "SEL" "NSRect" "id" }
|
||||
{ "initWithFrame:pixelFormat:" id { id SEL NSRect id }
|
||||
[
|
||||
[ drop ] 2dip
|
||||
SUPER-> initWithFrame:pixelFormat:
|
||||
|
@ -399,13 +399,13 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
{ "isOpaque" "char" { "id" "SEL" }
|
||||
{ "isOpaque" char { id SEL }
|
||||
[
|
||||
2drop 0
|
||||
]
|
||||
}
|
||||
|
||||
{ "dealloc" "void" { "id" "SEL" }
|
||||
{ "dealloc" void { id SEL }
|
||||
[
|
||||
drop
|
||||
[ unregister-window ]
|
||||
|
@ -430,19 +430,19 @@ CLASS: {
|
|||
{ +name+ "FactorWindowDelegate" }
|
||||
}
|
||||
|
||||
{ "windowDidMove:" "void" { "id" "SEL" "id" }
|
||||
{ "windowDidMove:" void { id SEL id }
|
||||
[
|
||||
2nip -> object [ -> contentView window ] keep save-position
|
||||
]
|
||||
}
|
||||
|
||||
{ "windowDidBecomeKey:" "void" { "id" "SEL" "id" }
|
||||
{ "windowDidBecomeKey:" void { id SEL id }
|
||||
[
|
||||
2nip -> object -> contentView window focus-world
|
||||
]
|
||||
}
|
||||
|
||||
{ "windowDidResignKey:" "void" { "id" "SEL" "id" }
|
||||
{ "windowDidResignKey:" void { id SEL id }
|
||||
[
|
||||
forget-rollover
|
||||
2nip -> object -> contentView
|
||||
|
@ -452,13 +452,13 @@ CLASS: {
|
|||
]
|
||||
}
|
||||
|
||||
{ "windowShouldClose:" "char" { "id" "SEL" "id" }
|
||||
{ "windowShouldClose:" char { id SEL id }
|
||||
[
|
||||
3drop 1
|
||||
]
|
||||
}
|
||||
|
||||
{ "windowWillClose:" "void" { "id" "SEL" "id" }
|
||||
{ "windowWillClose:" void { id SEL id }
|
||||
[
|
||||
2nip -> object -> contentView window ungraft
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue