[Openmcl-devel] ns:ns-tracking-area not present in 32bit CCL
Rainer Joswig
joswig at lisp.de
Mon Jun 8 21:35:13 PDT 2009
using Clozure Common Lisp Version 1.3-r12088M (DarwinX8664)
On executing the add-subview example form in draggable.lisp
I get:
*** Error in event process: unknown arg spec :REGISTERS
(442BE8) : 0 (FUNCALL #'#<(:INTERNAL |-[StandardView drawRect:]|)>
#<SIMPLE-ERROR #x3000420F8DBD>) 85
(#:G5085)
#:G5085: #<SIMPLE-ERROR #x3000420F8DBD>
#:COMPILER-VAR: (NIL)
#:G5082: #<A Foreign Pointer #x7FFF5FBFD360>
(442C10) : 1 (SIGNAL #<SIMPLE-ERROR #x3000420F8DBD>) 981
(CONDITION &REST CCL::ARGS)
CONDITION: #<SIMPLE-ERROR #x3000420F8DBD>
CCL::ARGS: NIL
CCL::%HANDLERS%: ((ERROR) (ERROR))
CCL::TAG: #<SIMPLE-ERROR #x3000420F8DBD>
CCL::HANDLERS: CCL::*BACKTRACE-CONTEXTS*
CCL::FN: #<COMPILED-LEXICAL-CLOSURE (:INTERNAL |-[StandardView
drawRect:]|) #x493DBF>
(442C68) : 2 (%ERROR #<SIMPLE-ERROR #x3000420F8DBD> (:REGISTERS)
558482) 117
(CONDITION CCL::ARGS CCL::ERROR-POINTER)
CONDITION: #<SIMPLE-ERROR #x3000420F8DBD>
CCL::ARGS: (:REGISTERS)
CCL::ERROR-POINTER: 558482
(442C90) : 3 (%FF-CALL 140735390423728 :REGISTERS #<NS-OBJECT
<NSCFType: 0x170192c0> (#x170192C0)> :ADDRESS #<NS-CONSTANT-STRING
"Lisp Rules!" (#x137CD2F0)> :ADDRESS #<A Foreign Pointer
#x7FFF82F59600> :ADDRESS #<NS-MUTABLE-DICTIONARY {
NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)
fobj=0x170178c0, spc=12.00";
} (#x17019E50)> :VOID) 701
(CCL::ENTRY &REST CCL::SPECS-AND-VALS)
CCL::ENTRY: 140735390423728
CCL::SPECS-AND-VALS: (:REGISTERS #<NS-OBJECT <NSCFType:
0x170192c0> (#x170192C0)> :ADDRESS #<NS-CONSTANT-STRING "Lisp
Rules!" (#x137CD2F0)> :ADDRESS ...)
CCL::LEN: 9
CCL::TOTAL-WORDS: 0
CCL::RESULT-SPEC: :VOID
CCL::NARGS: 4
CCL::N-FP-ARGS: 0
CCL::I: 0
CCL::SPECS: (:REGISTERS #<NS-OBJECT <NSCFType: 0x170192c0>
(#x170192C0)> :ADDRESS #<NS-CONSTANT-STRING "Lisp
Rules!" (#x137CD2F0)> :ADDRESS ...)
CCL::SPEC: :REGISTERS
(442CF8) : 4 (FUNCALL #'#<Anonymous Function #x300041D9AB4F> #<NS-
CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)> #S(CCL::OBJC-
SELECTOR :NAME "sizeWithAttributes:" :%SEL #<A Foreign Pointer
#x7FFF82F59600>) #<NS-MUTABLE-DICTIONARY {
NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>) 805
(#:G3751 #:G3752 CCL::ARG0)
#:G3751: #<NS-CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)>
#:G3752: #S(CCL::OBJC-SELECTOR :NAME "sizeWithAttributes:" :%SEL
#<A Foreign Pointer #x7FFF82F59600>)
CCL::ARG0: #<NS-MUTABLE-DICTIONARY {
NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>
#:G3753: #<NS-SIZE 0 X 0 #x3000420F8EDD> [gcable] (#x17029190)
#:G3756: #<A Foreign Pointer #x17029190>
#:G3755: #<NS-OBJECT <NSCFType: 0x170192c0> (#x170192C0)>
(442D38) : 5 (FUNCALL #'#<(:INTERNAL CCL::SEND-UNAMBIGUOUS-MESSAGE
(SHARED-INITIALIZE :AFTER (CCL::OBJC-DISPATCH-FUNCTION T)))> #<NS-
CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)> #<NS-MUTABLE-DICTIONARY {
NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>) 501
(CCL::RECEIVER &REST CCL::ARGS)
CCL::RECEIVER: #<NS-CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)>
CCL::ARGS: (#<NS-MUTABLE-DICTIONARY {
NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>)
CCL::SELECTOR: #S(CCL::OBJC-SELECTOR :NAME "sizeWithAttributes:" :
%SEL #<A Foreign Pointer #x7FFF82F59600>)
FUNCTION: #<Anonymous Function #x300041D9AB4F>
(442D78) : 6 (FUNCALL #'#<#<STANDARD-METHOD VIEW-DRAW-CONTENTS (TEXT-
VIEW)>> #<TESTVIEW #x30004201D12D> #<NS-RECT 100 X 100 @ 0,0
(#x7FFF5FBFD370) #x3000420F928D>) 229
(V &OPTIONAL RECT)
V: #<TESTVIEW #x30004201D12D>
RECT: #<NS-RECT 100 X 100 @ 0,0 (#x7FFF5FBFD370) #x3000420F928D>
(442DA0) : 7 (FUNCALL #'#<|-[StandardView drawRect:]|>
17591849974380) 981
(#:G5081)
#:G5081: 17591849974380
#:G5088: #<A Foreign Pointer #x7FFF5FBFD360>
#:G5082: #<A Foreign Pointer #x7FFF5FBFD360>
#:COMPILER-VAR: (NIL)
#:G5087: #<COMPILED-LEXICAL-CLOSURE (:INTERNAL |-[StandardView
drawRect:]|) #x493DBF>
#:G5089: (CONDITION #<COMPILED-LEXICAL-CLOSURE # #x493DBF>)
CCL::%HANDLERS%: ((CONDITION #) (ERROR))
SELF: #<STANDARD-VIEW <StandardView: 0x170221c0> (#x170221C0)>
_CMD: #<A Foreign Pointer #x7FFF83013F38>
RECT: #<NS-RECT 100 X 100 @ 0,0 (#x7FFF5FBFD370) #x3000420F928D>
(442E48) : 8 (%PASCAL-FUNCTIONS% 277 17591849974380) 397
(CCL::INDEX CCL::ARGS-PTR-FIXNUM)
CCL::INDEX: 277
CCL::ARGS-PTR-FIXNUM: 17591849974380
CCL::LISP-FUNCTION: #<Compiled-function |-[StandardView drawRect:]|
(Non-Global) #x300041F007BF>
WITHOUT-INTERRUPTS: NIL
CCL::*CALLBACK-TRACE-P*: NIL
(442F08) : 10 (FUNCALL #'#<Anonymous Function #x30004122027F> #<LISP-
APPLICATION <LispApplication: 0x1c3580> (#x1C3580)> #S(CCL::OBJC-
SELECTOR :NAME "run" :%SEL #<A Foreign Pointer #x7FFF82FFFD68>)) 205
(#:G3072 #:G3073)
#:G3072: #<LISP-APPLICATION <LispApplication: 0x1c3580> (#x1C3580)>
#:G3073: #S(CCL::OBJC-SELECTOR :NAME "run" :%SEL #<A Foreign
Pointer #x7FFF82FFFD68>)
(442F28) : 11 (FUNCALL #'#<(:INTERNAL CCL::SEND-UNAMBIGUOUS-MESSAGE
(SHARED-INITIALIZE :AFTER (CCL::OBJC-DISPATCH-FUNCTION T)))> #<LISP-
APPLICATION <LispApplication: 0x1c3580> (#x1C3580)>) 501
(CCL::RECEIVER &REST CCL::ARGS)
CCL::RECEIVER: #<LISP-APPLICATION <LispApplication: 0x1c3580>
(#x1C3580)>
CCL::ARGS: NIL
CCL::SELECTOR: #S(CCL::OBJC-SELECTOR :NAME "run" :%SEL #<A Foreign
Pointer #x7FFF82FFFD68>)
FUNCTION: #<Anonymous Function #x30004122027F>
(442F68) : 12 (EVENT-LOOP NIL) 413
(&OPTIONAL GUI::END-TEST)
GUI::END-TEST: NIL
GUI::APP: #<LISP-APPLICATION <LispApplication: 0x1c3580> (#x1C3580)>
*BREAK-ON-ERRORS*: NIL
#:G163537: (ERROR)
CCL::%HANDLERS%: ((ERROR))
GUI::*EVENT-PROCESS-REPORTED-CONDITIONS*: (#<SIMPLE-ERROR
#x3000420F8DBD>)
Am 09.06.2009 um 02:44 schrieb Ron Garret:
> [This may be a repeat, but the original never showed up in my
> inbox. Also, there's an update at the end.]
>
> On Jun 8, 2009, at 11:32 AM, Arthur W Cater wrote:
>
>> Use #/addTrackingRect:owner:userData:assumeInside: with
>> - the view
>> - its #/bounds
>> - a ns-object as target
>> - ccl::+null-ptr+
>> - #$NO
>>
>> Then
>> (objc:define-objc-method ((:void :mouse-entered (:id event))
>> <theTargetClassYouUsed>) ...)
>>
>> likewise :mouse-exited and :mouse-move
>
> Thanks! Updated version enclosed. This has been tested in 32-bit
> CCL, and should now work on Tiger as well.
>
> This version also fixes a bug whereby testviews did not get properly
> re-initialized to add a tracker when the class got redefined. I was
> using an initialize-instance :after method when I should have been
> using shared initialize -- I think. There is still a subtle bug
> which I can't figure out. When you add a highlighted mixin to an
> existing testview instance, you have to click on it once before it
> starts to highlight itself. I have no idea why this is happening.
> I may not be using shared-initialize properly. Maybe a CLOS wizard
> can help with some advice on the proper way to do this.
>
> UPDATE: it turns out that the reason for this is that calling shared-
> initialize is done lazily. So until there is an interaction with
> the updated object it doesn't get re-initialized, so add-tracker
> doesn't get called, so the event that would normally cause the
> interaction never gets received. Makes an interesting little puzzle.
>
> rg
>
> <draggable.lisp>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
Rainer Joswig, Hamburg, Germany
http://lispm.dyndns.org/
mailto:joswig at lisp.de
More information about the Openmcl-devel
mailing list