コード例 #1
0
ファイル: circlesaver.c プロジェクト: krig/krigsavers
int
main (int argc, char *argv[])
{
	GtkWidget *window;
	GtkWidget *darea;
	GError *error;
	int i;
	rgba_t bgcolor1, bgcolor2;


	error = NULL;

	gtk_init_with_args (&argc, &argv,
			    "circlesaver",
			    options, NULL, &error);

	window = gs_theme_window_new();
	darea = gtk_drawing_area_new();
	gtk_container_add(GTK_CONTAINER (window), darea);

	g_signal_connect(darea, "expose-event",
			 G_CALLBACK (on_expose_event), NULL);
	g_signal_connect(window, "destroy",
			 G_CALLBACK (gtk_main_quit), NULL);

	for (i = 0; i < NUM_CIRCLES; ++i) {
		circles[i] = gen_circle(i);
	}

	bgcolor1 = color(0xFF000000);
	bgcolor2 = color(0xFF705391);
	bgpattern = cairo_pattern_create_linear(100.5, 0.0, 100.5, 500.0);
	cairo_pattern_add_color_stop_rgb(bgpattern, 0.0, bgcolor1.r, bgcolor1.g, bgcolor1.b);
	cairo_pattern_add_color_stop_rgb(bgpattern, 1.0, bgcolor2.r, bgcolor2.g, bgcolor2.b);
	
	g_timeout_add_full (G_PRIORITY_HIGH, UPDATE_FREQ, timeout_callback, darea, NULL);
	//g_timeout_add (UPDATE_FREQ, timeout_callback, darea);

	if ((geometry == NULL)
	    || !gtk_window_parse_geometry (GTK_WINDOW (window), geometry))
		gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);

	gtk_widget_show_all(window);

	gtk_main();

	cairo_pattern_destroy(bgpattern);

	return 0;
}
コード例 #2
0
int
main (int argc, char **argv)
{
	GSThemeEngine *engine;
	GtkWidget     *window;
	GError        *error;

	bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR);
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
	textdomain (GETTEXT_PACKAGE);

	error = NULL;

	if (!gtk_init_with_args (&argc, &argv, NULL, NULL, NULL, &error))
	{
		g_printerr (_("%s. See --help for usage information.\n"),
		            error->message);
		g_error_free (error);
		exit (1);
	}

	window = gs_theme_window_new ();
	g_signal_connect (G_OBJECT (window), "delete-event",
	                  G_CALLBACK (gtk_main_quit), NULL);

	g_set_prgname ("popsquares");

	engine = g_object_new (GSTE_TYPE_POPSQUARES, NULL);
	gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (engine));

	gtk_widget_show (GTK_WIDGET (engine));

	gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
	gtk_widget_show (window);

	gtk_main ();

	return 0;
}
コード例 #3
0
int
main (int argc, char **argv)
{
	GSThemeEngine *engine;
	GtkWidget     *window;
	GError        *error;
	gboolean       ret;
	char          *location = NULL;
	char          *background_color = NULL;
	gboolean       sort_images = FALSE;
	gboolean       no_stretch = FALSE;
	GOptionEntry  entries [] =
	{
		{
			"location", 0, 0, G_OPTION_ARG_STRING, &location,
			N_("Location to get images from"), N_("PATH")
		},
		{
			"background-color", 0, 0, G_OPTION_ARG_STRING, &background_color,
			N_("Color to use for images background"), N_("\"#rrggbb\"")
		},
		{
			"sort-images", 0, 0, G_OPTION_ARG_NONE, &sort_images,
			N_("Do not randomize pictures from location"), NULL
		},
		{
			"no-stretch", 0, 0, G_OPTION_ARG_NONE, &no_stretch,
			N_("Do not try to stretch images on screen"), NULL
		},
		{ NULL }
	};

	bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR);
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
	textdomain (GETTEXT_PACKAGE);

	error = NULL;

	g_thread_init (NULL);
	ret = gtk_init_with_args (&argc, &argv,
	                          NULL,
	                          entries,
	                          NULL,
	                          &error);
	if (! ret)
	{
		g_message ("%s", error->message);
		g_error_free (error);
		exit (1);
	}

	g_chdir (g_get_home_dir ());

	g_set_prgname ("slideshow");

	window = gs_theme_window_new ();
	g_signal_connect (G_OBJECT (window), "delete-event",
	                  G_CALLBACK (gtk_main_quit), NULL);

	engine = g_object_new (GSTE_TYPE_SLIDESHOW, NULL);

	if (location == NULL)
	{
		location = xdg_user_dir_lookup ("PICTURES");
		if (location == NULL ||
		        strcmp (location, "/tmp") == 0 ||
		        strcmp (location, g_get_home_dir ()) == 0)
		{
			free (location);
			location = g_build_filename (g_get_home_dir (), "Pictures", NULL);
		}
	}

	if (location != NULL)
	{
		g_object_set (engine, "images-location", location, NULL);
	}

	if (sort_images)
	{
		g_object_set (engine, "sort-images", sort_images, NULL);
	}

	if (background_color != NULL)
	{
		g_object_set (engine, "background-color", background_color, NULL);
	}

	if (no_stretch)
	{
		g_object_set (engine, "no-stretch", no_stretch, NULL);
	}

	gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (engine));

	gtk_widget_show (GTK_WIDGET (engine));

	gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
	gtk_widget_show (window);

	gtk_main ();

	return 0;
}
コード例 #4
0
int main (int argc, char **argv)
{
    state     *st;
    GtkWidget *window;
    GtkWidget *drawing_area;

    GError    *error = NULL;

    DBusError dbus_error;

    gtk_set_locale();

    gtk_init_with_args(&argc, &argv,
                       parameter_string,
                       options,
                       "gnome-screensaver",
                       &error);

    if (error != NULL) {
        g_printerr ("%s. See --help for usage information.\n",
                  error->message);
        g_error_free (error);
        return EX_SOFTWARE;
    }

    copy_gifs();
    get_time_str();
    window = gs_theme_window_new();
    drawing_area = gtk_drawing_area_new();
    st = clock_init(window, drawing_area);
    init_weather(st);

    gtk_widget_show(drawing_area);
    gtk_container_add(GTK_CONTAINER (window), drawing_area);

    gtk_widget_show(window);

    loop = g_main_loop_new (NULL, FALSE);

    dbus_error_init (&dbus_error);
    bus = dbus_bus_get (DBUS_BUS_SESSION, &dbus_error);
    if (!bus) {
      g_warning ("Failed to connect to the D-BUS daemon: %s", dbus_error.message);
      dbus_error_free (&dbus_error);
      return 1;
    }
    dbus_connection_setup_with_g_main (bus, NULL);

    /* listening to messages from all objects as no path is specified */
    dbus_bus_add_match (bus, "type='signal',interface='org.freedesktop.MediaPlayer'", &dbus_error);
    dbus_bus_add_match (bus, "type='signal',interface='org.freedesktop.DBus.Properties'", &dbus_error);
    dbus_connection_add_filter (bus, signal_filter, loop, NULL);


    g_signal_connect(G_OBJECT (window), "delete-event",
                     GTK_SIGNAL_FUNC(quit_app), loop);
    g_signal_connect(GTK_OBJECT (drawing_area), "configure_event",
                     GTK_SIGNAL_FUNC (configure_event), st);
    g_signal_connect(GTK_OBJECT (drawing_area), "expose_event",
                     GTK_SIGNAL_FUNC (expose_event), st);

    g_signal_connect(GTK_OBJECT (window), "configure_event",
                     GTK_SIGNAL_FUNC (w_configure_event), st);

    g_random_set_seed(time (NULL));

    st->timer_id = g_timeout_add_seconds(1, clock_timer, st);

    g_main_loop_run (loop);

    clock_free (st);

    return EX_OK;
}
コード例 #5
0
ファイル: floaters.c プロジェクト: samupl/mate-screensaver
int
main (int   argc,
      char *argv[])
{
    ScreenSaver *screen_saver;
    GtkWidget *window;
    GtkWidget *drawing_area;
#if GTK_CHECK_VERSION (3, 0, 0)
    GdkRGBA bg;
    GdkRGBA fg;
#else
    GtkStyle *style;
    GtkStateType state;
#endif

    GError *error;

    error = NULL;

    bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR);
    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
    textdomain (GETTEXT_PACKAGE);

    gtk_init_with_args (&argc, &argv,
                        /* translators: the word "image" here
                         * represents a command line argument
                         */
                        _("image - floats images around the screen"),
                        options, GETTEXT_PACKAGE, &error);


    if (error != NULL)
    {
        g_printerr (_("%s. See --help for usage information.\n"),
                    _(error->message));
        g_error_free (error);
        return EX_SOFTWARE;
    }

    if ((filenames == NULL) || (filenames[0] == NULL) ||
            (filenames[1] != NULL))
    {
        g_printerr (_("You must specify one image.  See --help for usage "
                      "information.\n"));
        return EX_USAGE;
    }

    window = gs_theme_window_new ();

    g_signal_connect (G_OBJECT (window), "delete-event",
                      G_CALLBACK (gtk_main_quit), NULL);

    drawing_area = gtk_drawing_area_new ();

#if GTK_CHECK_VERSION (3, 0, 0)
    bg.red = 0;
    bg.green = 0;
    bg.blue = 0;
    bg.alpha = 1.0;
    fg.red = 0.8;
    fg.green = 0.8;
    fg.blue = 0.8;
    fg.alpha = 1.0;
    gtk_widget_override_background_color (drawing_area, 0, &bg);
    gtk_widget_override_color (drawing_area, 0, &fg);
#else
    style = drawing_area->style;
    state = (GtkStateType) 0;
    while (state < (GtkStateType) G_N_ELEMENTS (style->bg))
    {
        gtk_widget_modify_bg (drawing_area, state, &style->mid[state]);
        state++;
    }
#endif

    gtk_widget_show (drawing_area);
    gtk_container_add (GTK_CONTAINER (window), drawing_area);

    screen_saver = screen_saver_new (GTK_DRAWING_AREA (drawing_area),
                                     filenames[0], max_floater_count,
                                     should_do_rotations, should_show_paths);
    g_strfreev (filenames);

    if (should_print_stats)
        g_timeout_add (STAT_PRINT_FREQUENCY,
                       (GSourceFunc) do_print_screen_saver_stats,
                       screen_saver);

    if ((geometry == NULL)
            || !gtk_window_parse_geometry (GTK_WINDOW (window), geometry))
        gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);

    gtk_widget_show (window);

    gtk_main ();

    screen_saver_free (screen_saver);

    return EX_OK;
}