#ifndef __GTKCOMMON_H__
#define __GTKCOMMON_H__
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <java/awt/Color.h>
class _Jv_GdkThreadLock
{
public:
_Jv_GdkThreadLock ()
{
GDK_THREADS_ENTER ();
}
~_Jv_GdkThreadLock ()
{
GDK_THREADS_LEAVE ();
}
};
static inline void
_Jv_ConvertAwtColor(java::awt::Color* awtcolor, GdkColor* gdkcolor)
{
jint rgb = awtcolor->getRGB();
gushort r = (rgb >> 16) & 0xFF;
gushort g = (rgb >> 8) & 0xFF;
gushort b = rgb & 0xFF;
gdkcolor->red = (r << 8) + r;
gdkcolor->green = (g << 8) + g;
gdkcolor->blue = (b << 8) + b;
}
static inline java::awt::Color*
_Jv_ConvertGtkColor (GdkColor* gdkcolor)
{
jint r = gdkcolor->red >> 8;
jint g = gdkcolor->green >> 8;
jint b = gdkcolor->blue >> 8;
java::awt::Color *c = new java::awt::Color(r,g,b);
return c;
}
static inline void
_Jv_GdkScaleColor (GdkColor* oldc, GdkColor* newc, gfloat scale)
{
*newc = *oldc;
newc->red += (gushort) (newc->red * scale);
newc->green += (gushort) (newc->green * scale);
newc->blue += (gushort) (newc->blue * scale);
}
static inline void
_Jv_FlushRequests ()
{
XFlush (GDK_DISPLAY ());
}
#endif