]> gitweb.factorcode.org Git - factor.git/commitdiff
cocoa: maybe this is cleaner...
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 30 Mar 2013 20:44:11 +0000 (13:44 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 30 Mar 2013 20:44:11 +0000 (13:44 -0700)
basis/cocoa/cocoa.factor
basis/cocoa/messages/messages.factor
basis/ui/backend/cocoa/views/views.factor

index b3357c607ae8dbcc63ab8a98c48fe1d6081fa23b..c90e238ede868337670a822dc8f80daf733efc48 100644 (file)
@@ -4,6 +4,7 @@ USING: compiler io kernel cocoa.runtime cocoa.subclassing
 cocoa.messages cocoa.types sequences words vocabs parser
 core-foundation.bundles namespaces assocs hashtables
 compiler.units lexer init ;
+FROM: cocoa.messages => selector ;
 IN: cocoa
 
 : (remember-send) ( selector variable -- )
@@ -16,7 +17,16 @@ SYMBOL: sent-messages
 
 SYNTAX: -> scan-token dup remember-send suffix! \ send suffix! ;
 
-SYNTAX: ?-> scan-token [ remember-send ] [ <selector> drop ] bi ;
+SYNTAX: SEL:
+    scan-token
+    [ remember-send ]
+    [ <selector> suffix! \ selector suffix! ] bi ;
+
+SYNTAX: SEND:
+    scan-token
+    [ remember-send ]
+    [ <selector> suffix! \ selector suffix! ]
+    [ suffix! \ lookup-sender suffix! ] tri ;
 
 SYMBOL: super-sent-messages
 
index 1e1cb3d75fc988d4f4ea31cf72db026b59b4c090..de3d6c3d946673d0181077f075ebd42fe63df18f 100644 (file)
@@ -64,15 +64,8 @@ ERROR: no-objc-method name ;
 : lookup-method ( selector -- method )
     dup ?lookup-method [ ] [ no-objc-method ] ?if ;
 
-: (selector/sender) ( selector super? -- alien word )
-    [ [ lookup-selector ] [ lookup-method ] bi ]
-    [ super-message-senders message-senders ? get at ] bi* ; inline
-
-: selector/sender ( selector -- alien word )
-    f (selector/sender) ; inline
-
-: selector/super-sender ( selector -- alien word )
-    t (selector/sender) ; inline
+: lookup-sender ( name -- method )
+    lookup-method message-senders get at ;
 
 MEMO: make-prepare-send ( selector method super? -- quot )
     [
index 484c6f5319e2713c7ddbc970530787c23cb03a80..c8b6f88d9c8496f4ce0a1bc72019626329884208 100644 (file)
@@ -151,17 +151,13 @@ CLASS: FactorView < NSOpenGLView NSTextInput
 
     METHOD: void prepareOpenGL [
 
-        ?-> setWantsBestResolutionOpenGLSurface:
-        ?-> backingScaleFactor
+        self SEL: setWantsBestResolutionOpenGLSurface:
+        -> respondsToSelector: c-bool> [
 
-        self "setWantsBestResolutionOpenGLSurface:"
-        lookup-selector -> respondsToSelector: c-bool> [
+            self SEND: setWantsBestResolutionOpenGLSurface:
+            1 swap execute( x x x -- )
 
-            self "setWantsBestResolutionOpenGLSurface:"
-            selector/sender 1 swap execute( x x x -- )
-
-            self "backingScaleFactor"
-            selector/sender execute( x x -- x )
+            self SEND: backingScaleFactor execute( x x -- x )
             dup 1.0 > [
                 gl-scale-factor set-global t retina? set-global
             ] [ drop ] if