36
36
public static class CompositeUtils
38
[DllImport ("libgdk-win32-2.0-0.dll")]
39
private static extern IntPtr gdk_screen_get_rgba_visual (IntPtr screen);
41
[DllImport ("libgtk-win32-2.0-0.dll")]
42
private static extern void gtk_widget_input_shape_combine_mask (IntPtr raw, IntPtr shape_mask,
43
int offset_x, int offset_y);
45
[DllImport ("libgdk-win32-2.0-0.dll")]
46
private static extern IntPtr gdk_screen_get_rgba_colormap (IntPtr screen);
48
public static Colormap GetRgbaColormap (Screen screen)
51
IntPtr raw_ret = gdk_screen_get_rgba_colormap (screen.Handle);
52
Gdk.Colormap ret = GLib.Object.GetObject(raw_ret) as Gdk.Colormap;
55
Gdk.Visual visual = Gdk.Visual.GetBestWithDepth (32);
57
Gdk.Colormap cmap = new Gdk.Colormap (visual, false);
65
public static bool SetRgbaColormap (Widget w)
67
Gdk.Colormap cmap = GetRgbaColormap (w.Screen);
38
public static bool SetRgbaVisual (Widget w)
40
Visual visual = w.Screen.RgbaVisual;
77
public static Visual GetRgbaVisual (Screen screen)
80
IntPtr raw_ret = gdk_screen_get_rgba_visual (screen.Handle);
81
Gdk.Visual ret = GLib.Object.GetObject (raw_ret) as Gdk.Visual;
84
Gdk.Visual visual = Gdk.Visual.GetBestWithDepth (32);
92
50
[DllImport ("libgdk-win32-2.0-0.dll")]
93
51
private static extern void gdk_property_change (IntPtr window, IntPtr property, IntPtr type,
94
52
int format, int mode, uint [] data, int nelements);
123
[DllImport ("libgdk-win32-2.0-0.dll")]
124
private static extern bool gdk_screen_is_composited (IntPtr screen);
126
public static bool IsComposited (Screen screen)
130
composited = gdk_screen_is_composited (screen.Handle);
131
} catch (EntryPointNotFoundException) {
132
Atom atom = Atom.Intern (String.Format ("_NET_WM_CM_S{0}", screen.Number), false);
133
composited = Gdk.Selection.OwnerGetForDisplay (screen.Display, atom) != null;
136
// FIXME check for WINDOW_OPACITY so that we support compositing on older composite manager
137
// versions before they started supporting the real check given above
139
composited = CompositeUtils.SupportsHint (screen, "_NET_WM_WINDOW_OPACITY");
145
81
public static void SetWinOpacity (Gtk.Window win, double opacity)
147
CompositeUtils.ChangeProperty (win.GdkWindow,
83
CompositeUtils.ChangeProperty (win.Window,
148
84
Atom.Intern ("_NET_WM_WINDOW_OPACITY", false),
149
85
Atom.Intern ("CARDINAL", false),
151
87
new uint [] { (uint) (0xffffffff * opacity) }
155
public static void InputShapeCombineMask (Widget w, Pixmap shape_mask, int offset_x, int offset_y)
157
gtk_widget_input_shape_combine_mask (w.Handle, shape_mask == null ? IntPtr.Zero : shape_mask.Handle,