[MacRuby-devel] MacRuby doesn't find kCGDesktopIconWindowLevel

Michel Steuwer michel.steuwer at onlinehome.de
Sat Apr 24 03:51:50 PDT 2010


Hi,

I didn't find out how to use the kCGDesktopWindowLevel directly, but you can use the kCGDesktopWindowLevelKey constant if you use a capital K at the beginning.
So the call:

window.setLevel(CGWindowLevelForKey(KCGDesktopWindowLevelKey))

works.

I looked at the CoreGraphics.bridgesupport in
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/Resources/BridgeSupport
and it only provides the constant kCGDesktopWindowLevelKey not kCGDesktopWindowLevel.

Thanks for the quick respond.

Michel

> I've not been able to generate a Bridge Support file for the AppKit.framework on my machine, but if you can then you can load the framework and then load the bridge support file and you should get access to those constants, I believe the k changes to K though.
> 
> The alternative would be to define those constants in a .rb file which you then require into your script.
> 
> Geoff
> 
> On 24 Apr 2010, at 11:09, robert gleeson wrote:
> 
>> Hey,
>> 
>> In Ruby, constants are identified by a capital letter at the beginning of its name, and that is why a NameError exception is raised. 
>> If this Objective-C constant is available to you, I don't think it would be available as a local variable in MacRuby.
>> 
>> Maybe MacRuby encapsulates this data in a class somewhere - I have no idea  - Sorry :-)
>> 
>> Thanks,
>> Rob
>> 
>> On 24 Apr 2010, at 11:01, Michel Steuwer wrote:
>> 
>>> Hello everybody,
>>> 
>>> i'm new to MacRuby and currently trying my first Project.
>>> 
>>> I try to draw a NSPanel at the desktop window level.
>>> Therefore, i would use the [window setLevel:kCGDesktopIconWindowLevel] method in Objective-C.
>>> In MacRuby the call window.setLevel(kCGDesktopIconWindowLevel) doesn't work and produces the following log message:
>>> 
>>> undefined local variable or method `kCGDesktopIconWindowLevel' for #<PanelController:0x2002f1ac0>
>>> 
>>> Currently i have solved the Problem by using this work-around:
>>> window.setLevel(CGWindowLevelForKey(2))
>>> 
>>> Why can't i use the call with the pre defined constant as i would in Objective-C ?
>>> 
>>> Thanks,
>>> Michel
>>> 
>>> --
>>> Michel Steuwer     |     michel.steuwer at onlinehome.de
>>> 
>>> _______________________________________________
>>> MacRuby-devel mailing list
>>> MacRuby-devel at lists.macosforge.org
>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>> 
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



--
Michel Steuwer     |     michel.steuwer at onlinehome.de

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20100424/88c06e77/attachment.html>


More information about the MacRuby-devel mailing list