#include <gtk/gtk.h>

static cairo_surface_t *splash_image = NULL;

static gboolean
on_alpha_window_expose (GtkWidget      *widget,
            GdkEventExpose *expose)
{
	cairo_t *cr = gdk_cairo_create (widget->window);
	cairo_set_source_rgba (cr, 0, 0, 0, 0.3);
	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
	cairo_paint (cr);

	g_assert (splash_image != NULL);
	cairo_set_source_surface (cr, splash_image, 0, 0);
	cairo_rectangle (cr, 0, 0, 497, 620);
	cairo_fill (cr);

	cairo_destroy (cr);
	return FALSE;
}

static void
on_alpha_screen_changed (GtkWidget *widget,
             GdkScreen *old_screen,
             GtkWidget *label)
{                       
  GdkScreen *screen = gtk_widget_get_screen (widget);
  GdkColormap *colormap = gdk_screen_get_rgba_colormap (screen);
      
  if (!colormap)
  {
    colormap = gdk_screen_get_rgb_colormap (screen);
    printf("screen does NOT support alpha\n");
  }
  else
  {
	printf("screen supports alpha!\n");
  }

  gtk_widget_set_colormap (widget, colormap);
}


int main(int argc, char **argv)
{
	GtkWidget *window;

    if (splash_image == NULL)
        splash_image = cairo_image_surface_create_from_png ("/home/remenic/pente.png");

	gtk_init (&argc, &argv);

	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_decorated (GTK_WINDOW(window), FALSE);
	gtk_window_set_resizable (GTK_WINDOW(window), FALSE);
	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ALWAYS);
	gtk_window_set_modal (GTK_WINDOW (window), TRUE);
	gtk_window_set_keep_above (GTK_WINDOW (window), TRUE);
	gtk_widget_set_app_paintable (window, TRUE);
	gtk_widget_set_size_request (window, 497, 620);

	on_alpha_screen_changed (window, NULL, NULL);

    g_signal_connect (window, "expose-event",
            G_CALLBACK (on_alpha_window_expose), NULL);


	if (!GTK_WIDGET_VISIBLE (window))
		gtk_widget_show_all (window);

	gtk_main ();

	return 0;
}

