Skip to content
Snippets Groups Projects
Commit d858f080 authored by Nick Schermer's avatar Nick Schermer
Browse files

* Apply Patch from Enrico Tröger to enable i18n.

(Old svn revision: 2020)
parent 5003d206
No related branches found
No related tags found
No related merge requests found
2006-09-11 18:51 nick
* Apply Patch from Enrico Trger to enable i18n.
......@@ -4,12 +4,12 @@
* Copyright © 2004 German Poo-Caaman~o <gpoo@ubiobio.cl>
* Copyright © 2005,2006 Daniel Bobadilla Leal <dbobadil@dcc.uchile.cl>
* Copyright © 2005 Jasper Huijsmans <jasper@xfce.org>
* Copyright © 2006 Jani Monoses <jani@ubuntu.com>
* Copyright © 2006 Jani Monoses <jani@ubuntu.com>
*
* Portions from the Gimp sources by
* Copyright © 1998-2000 Sven Neumann <sven@gimp.org>
* Copyright © 2003 Henrik Brix Andersen <brix@gimp.org>
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......@@ -60,9 +60,9 @@ typedef struct
gint window_delay;
gint screenshot_delay;
gchar *screenshots_dir;
gint counter;
NetkScreen *screen;
int netk_id;
int screen_id;
......@@ -73,7 +73,7 @@ ScreenshotData;
/* Panel Plugin Interface */
static void screenshot_properties_dialog (XfcePanelPlugin *plugin,
static void screenshot_properties_dialog (XfcePanelPlugin *plugin,
ScreenshotData *screenshot);
static void screenshot_construct (XfcePanelPlugin * plugin);
......@@ -88,7 +88,7 @@ screenshot_set_size (XfcePanelPlugin *plugin, int size, ScreenshotData *sd)
GdkPixbuf *pb;
int width = size - 2 - 2 * MAX (sd->button->style->xthickness,
sd->button->style->ythickness);
pb = xfce_themed_icon_load (SCREENSHOT_ICON_NAME, width);
gtk_image_set_from_pixbuf (GTK_IMAGE (sd->image), pb);
g_object_unref (pb);
......@@ -102,13 +102,13 @@ screenshot_free_data (XfcePanelPlugin * plugin, ScreenshotData * sd)
{
if (sd->netk_id)
g_signal_handler_disconnect (sd->screen, sd->netk_id);
if (sd->screen_id)
g_signal_handler_disconnect (plugin, sd->screen_id);
if (sd->style_id)
g_signal_handler_disconnect (plugin, sd->style_id);
sd->netk_id = sd->screen_id = sd->style_id = 0;
gtk_object_sink (GTK_OBJECT (sd->tooltips));
gtk_widget_destroy (sd->chooser);
......@@ -184,11 +184,11 @@ static gboolean
delay_callback (gpointer data)
{
gint *left = data;
(*left)--;
if (!*left)
gtk_main_quit();
return *left;
}
......@@ -232,7 +232,7 @@ button_clicked(GtkWidget * button, ScreenshotData * sd)
gchar * basename = NULL;
gchar * curdir = NULL;
if (sd->whole_screen) {
window = gdk_get_default_root_window();
} else {
......@@ -249,30 +249,30 @@ button_clicked(GtkWidget * button, ScreenshotData * sd)
}
gdk_drawable_get_size(window, &width, &height);
if (delay = sd->screenshot_delay) {
g_timeout_add(1000, delay_callback, &delay);
gtk_main();
}
screenshot = gdk_pixbuf_get_from_drawable (NULL,
window,
NULL, 0, 0, 0, 0,
width, height);
thumbnail = gdk_pixbuf_scale_simple (screenshot,
width/5,
height/5, GDK_INTERP_BILINEAR);
gtk_image_set_from_pixbuf (GTK_IMAGE (sd->preview), thumbnail);
g_object_unref (thumbnail);
filename = generate_filename_for_uri (xfce_file_chooser_get_current_folder(XFCE_FILE_CHOOSER (sd->chooser)));
if (sd->ask_for_file && filename)
{
{
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (sd->chooser), filename);
if (gtk_dialog_run (GTK_DIALOG (sd->chooser)) == GTK_RESPONSE_ACCEPT)
{
{
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(sd->chooser));
}
gtk_widget_hide (GTK_WIDGET (sd->chooser));
......@@ -287,7 +287,7 @@ button_clicked(GtkWidget * button, ScreenshotData * sd)
g_free(basename);
*/
}
if (filename) {
gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
g_free (filename);
......@@ -310,7 +310,7 @@ screenshot_read_rc_file (XfcePanelPlugin *plugin, ScreenshotData *screenshot)
gint window_delay = 2;
gint whole_screen = 1;
gint ask_for_file = 1;
if ((file = xfce_panel_plugin_lookup_rc_file (plugin)) != NULL)
{
rc = xfce_rc_simple_open (file, TRUE);
......@@ -322,7 +322,7 @@ screenshot_read_rc_file (XfcePanelPlugin *plugin, ScreenshotData *screenshot)
window_delay = xfce_rc_read_int_entry (rc, "window_delay", 2);
whole_screen = xfce_rc_read_int_entry (rc, "whole_screen", 1);
ask_for_file = xfce_rc_read_int_entry (rc, "ask_for_file", 1);
xfce_rc_close (rc);
}
}
......@@ -338,7 +338,7 @@ screenshot_write_rc_file (XfcePanelPlugin *plugin, ScreenshotData *screenshot)
{
char *file;
XfceRc *rc;
if (!(file = xfce_panel_plugin_save_location (plugin, TRUE)))
return;
......@@ -347,7 +347,7 @@ screenshot_write_rc_file (XfcePanelPlugin *plugin, ScreenshotData *screenshot)
if (!rc)
return;
xfce_rc_write_int_entry (rc, "screenshot_delay", screenshot->screenshot_delay);
xfce_rc_write_int_entry (rc, "window_delay", screenshot->window_delay);
xfce_rc_write_int_entry (rc, "whole_screen", screenshot->whole_screen);
......@@ -381,7 +381,7 @@ screenshot_delay_spinner_changed(GtkWidget * spinner, ScreenshotData *sd)
}
static void
screenshot_dialog_response (GtkWidget *dlg, int reponse,
screenshot_dialog_response (GtkWidget *dlg, int reponse,
ScreenshotData *screenshot)
{
g_object_set_data (G_OBJECT (screenshot->plugin), "dialog", NULL);
......@@ -399,30 +399,30 @@ screenshot_properties_dialog (XfcePanelPlugin *plugin, ScreenshotData *sd)
GtkWidget *window_delay_spinner, *screenshot_delay_spinner;
xfce_panel_plugin_block_menu (plugin);
dlg = gtk_dialog_new_with_buttons (_("Properties"),
dlg = gtk_dialog_new_with_buttons (_("Properties"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (plugin))),
GTK_DIALOG_DESTROY_WITH_PARENT |
GTK_DIALOG_NO_SEPARATOR,
GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
NULL);
g_object_set_data (G_OBJECT (plugin), "dialog", dlg);
gtk_window_set_position (GTK_WINDOW (dlg), GTK_WIN_POS_CENTER);
g_signal_connect (dlg, "response", G_CALLBACK (screenshot_dialog_response),
sd);
gtk_container_set_border_width (GTK_CONTAINER (dlg), 2);
header = xfce_create_header (NULL, _("Screenshots"));
gtk_widget_set_size_request (GTK_BIN (header)->child, 200, 32);
gtk_container_set_border_width (GTK_CONTAINER (header), 6);
gtk_widget_show (header);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), header,
FALSE, TRUE, 0);
vbox = gtk_vbox_new (FALSE, 8);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
gtk_widget_show (vbox);
......@@ -449,29 +449,29 @@ screenshot_properties_dialog (XfcePanelPlugin *plugin, ScreenshotData *sd)
hbox1 = gtk_hbox_new(FALSE, 8);
gtk_widget_show(hbox1);
gtk_box_pack_start (GTK_BOX (vbox), hbox1, FALSE, FALSE, 0);
window_delay_spinner = gtk_spin_button_new_with_range(0.0, 60.0, 1.0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window_delay_spinner), sd->window_delay);
gtk_widget_show(window_delay_spinner);
gtk_box_pack_start (GTK_BOX (hbox1), window_delay_spinner, FALSE, FALSE, 0);
label1 = gtk_label_new_with_mnemonic(_("Window selection delay"));
gtk_widget_show(label1);
gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 0);
g_signal_connect(window_delay_spinner, "value-changed",
G_CALLBACK(window_delay_spinner_changed), sd);
/* Screenshot delay */
hbox2 = gtk_hbox_new(FALSE, 8);
gtk_widget_show(hbox2);
gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
screenshot_delay_spinner = gtk_spin_button_new_with_range(0.0, 60.0, 1.0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(screenshot_delay_spinner), sd->screenshot_delay);
gtk_widget_show(screenshot_delay_spinner);
gtk_box_pack_start (GTK_BOX (hbox2), screenshot_delay_spinner, FALSE, FALSE, 0);
label2 = gtk_label_new_with_mnemonic(_("Screenshot delay"));
gtk_widget_show(label2);
gtk_box_pack_start (GTK_BOX (hbox2), label2, FALSE, FALSE, 0);
......@@ -486,25 +486,27 @@ static void
screenshot_construct (XfcePanelPlugin * plugin)
{
ScreenshotData *sd = g_new0 (ScreenshotData, 1);
xfce_textdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
sd->plugin = plugin;
screenshot_read_rc_file (plugin, sd);
sd->button = xfce_create_panel_button ();
sd->counter = 0;
sd->tooltips = gtk_tooltips_new ();
gtk_tooltips_set_tip (sd->tooltips, sd->button, _("Take screenshot"), NULL);
sd->image = gtk_image_new ();
gtk_container_add (GTK_CONTAINER (sd->button), GTK_WIDGET (sd->image));
gtk_widget_show_all (sd->button);
sd->chooser = gtk_file_chooser_dialog_new ( _("Save screenshot as ..."),
NULL,
NULL,
GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
......@@ -514,14 +516,14 @@ screenshot_construct (XfcePanelPlugin * plugin)
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (sd->chooser), TRUE);
#endif
gtk_dialog_set_default_response (GTK_DIALOG (sd->chooser), GTK_RESPONSE_ACCEPT);
sd->preview = gtk_image_new ();
gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (sd->chooser), sd->preview);
gtk_container_add (GTK_CONTAINER (plugin), sd->button);
xfce_panel_plugin_add_action_widget (plugin, sd->button);
g_signal_connect (sd->button, "clicked",
g_signal_connect (sd->button, "clicked",
G_CALLBACK (button_clicked), sd);
g_signal_connect (plugin, "free-data",
......@@ -530,12 +532,12 @@ screenshot_construct (XfcePanelPlugin * plugin)
g_signal_connect (plugin, "size-changed",
G_CALLBACK (screenshot_set_size), sd);
sd->style_id =
sd->style_id =
g_signal_connect (plugin, "style-set",
G_CALLBACK (screenshot_style_set), sd);
xfce_panel_plugin_menu_show_configure (plugin);
g_signal_connect (plugin, "configure-plugin",
g_signal_connect (plugin, "configure-plugin",
G_CALLBACK (screenshot_properties_dialog), sd);
}
XFCE_PANEL_PLUGIN_REGISTER_EXTERNAL (screenshot_construct);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment