Tuesday, February 27, 2007

Non-rectangular Windows Update

Updated to include support for OSX and linux.

While OSX doesn't actually use any native code to do the window mask, JNA support is there if it needed to. Source (and per-platform binaries) is available at http://jna.dev.java.net.

Transparent version of the demo is available here.


somatik said...

Ubuntu 6.10:

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1205)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1151)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:998)
at com.sun.javaws.Launcher.run(Launcher.java:105)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsatisfiedLinkError: X11
at com.sun.jna.Function.find(Native Method)
at com.sun.jna.Function.(init)(Function.java:76)
at com.sun.jna.Function.(init)(Function.java:50)
at com.sun.jna.Library$Handler.invoke(Library.java:120)
at $Proxy0.XOpenDisplay(Unknown Source)
at com.sun.jna.examples.ShapedWindow.setWindowMask(ShapedWindow.java:226)
at com.sun.jna.examples.ShapedWindowDemo.main(ShapedWindowDemo.java:34)
... 9 more

technomage said...

Where's your libX11.so located? The jnlp file sets jna.library.path to /usr/X11R6/lib. It might be something different on your system.

Or you can ensure LD_LIBRARY_PATH includes libX11.so in your browser's environment.

fred said...

this is very good stuff! I like the clock demo ;)

make sure to talk with Joshua at http://www.ab5k.org/ non-rectangular windows is a must for these desktop widgets!


technomage said...

NOTE: ubuntu users who don't have the developer X11 package installed will need to explicitly make a symlink so that dlopen can find the library in question:

ln -s /usr/lib/libX11.so.6 /usr/lib/libX11.so