[Pyobjc-dev] Modify wrapper or loadBundleFunctions syntax
Brought to you by:
ronaldoussoren
From: Pepijn de V. <pep...@gm...> - 2010-04-12 17:44:53
|
Hi, It's me again. How can I change the wrapper for a function like CGEventCreateMouseEvent from Quartz? It seems like my CGPoint uses floats instead of doubles, which is wrong for 64 bit, like in Snow Leopard. Another option is going back to using objc and importing the function manually. The problem is that I don't know the syntax for loadBundleFunctions. I managed to get CGPostMouseEvent working with this: v{CGPoint=dd} (instead of ff) What would I need to do to import CGEventCreateMouseEvent? Groeten, Pepijn de Vos -- Sent from my iPod Shuffle http://pepijndevos.nl On Apr 4, 2010, at 6:23 PM, Ratko Jagodic wrote: > Hi Pepijn, > > Sorry, but I haven't seen this before. It seemed to work for me. If you feel adventurous, you could try investigating yourself in the PyObjC source. The file is _callbacks.m where the link between C/Python is for events. > > Sorry I couldn't be of more help. Maybe others on this list could provide more info. > Good luck. > > Ratko > > > > On Sun, Apr 4, 2010 at 11:02 AM, Pepijn de Vos <pep...@gm...> wrote: > Hi, > > As you can see in the code below the returned value of the mouse event has an insane value. > When I generate a click or move event the mouse jumps to the very corner of the screen. > > <NSPoint x=13510801139695616.0 y=6.953222975623699e-310> > > Could it be that integer and float conversions between C and Python are messed up somewhere? > I tried to use a tuple, a NSPoint and a CGPoint, which made no difference at all. > Just creating a CGPoint object without the event works fine though. > > Groeten, > Pepijn de Vos > -- > Sent from my iPod Shuffle > http://pepijndevos.nl > > On Apr 4, 2010, at 5:54 PM, Ratko Jagodic wrote: > >> I ran across the same problem back in September and there were a few bugs in the C code. I reported the bugs and they were fixed so I guess the Macports version includes those fixes. Don't know about the version numbers. >> CGEventTapCreate should take 6 parameters, as it does in carbon. >> >> >> What do you mean by "breaks the location"? >> "When I run Python26 and PyObjC from Macports the event system works fine, but making an event breaks the location." >> >> >> Ratko >> >> >> >> On Sun, Apr 4, 2010 at 10:27 AM, Pepijn de Vos <pep...@gm...> wrote: >> Hi all, >> >> I finally managed to get listening to events working, the code is at http://github.com/pepijndevos/PyMouse/blob/master/mac.py#L30 >> I don't know what made the difference, but after a lot of trying it suddenly worked. >> >> Now I have another strange issue. >> When I run the default Python and PyObjC version that came with Mac OS X 10.6, Python segfaults while creating an event tap. >> When I run Python26 and PyObjC from Macports the event system works fine, but making an event breaks the location. >> >> Stock Python: >> >> >>> from Quartz import * >> >>> def test(*args): >> ... print args >> ... >> >>> tap = CGEventTapCreate( >> ... kCGSessionEventTap, >> ... kCGHeadInsertEventTap, >> ... kCGEventTapOptionDefault, >> ... CGEventMaskBit(kCGEventMouseMoved) | >> ... CGEventMaskBit(kCGEventLeftMouseDown) | >> ... CGEventMaskBit(kCGEventLeftMouseUp) | >> ... CGEventMaskBit(kCGEventRightMouseDown) | >> ... CGEventMaskBit(kCGEventRightMouseUp) | >> ... CGEventMaskBit(kCGEventOtherMouseDown) | >> ... CGEventMaskBit(kCGEventOtherMouseUp), >> ... test) >> Segmentation fault >> >> Macports Python: >> >> >>> from Quartz import * >> >>> event = CGEventCreateMouseEvent(None, 3, CGPoint(200, 200), 1) >> >>> CGEventGetLocation(event) >> <NSPoint x=13510801139695616.0 y=6.953222975623699e-310> >> >> Also the stock version of CGEventTapCreate needs 5 parameters while the Macports version needs 6. >> >> Macports version of PyObjC is 2.2 >> Included version should be 2.2b3 according to a blog I found. >> >> Groeten, >> Pepijn de Vos >> -- >> Sent from my iPod Shuffle >> http://pepijndevos.nl >> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Pyobjc-dev mailing list >> Pyo...@li... >> https://lists.sourceforge.net/lists/listinfo/pyobjc-dev >> > > |