[Goodies-commits] r5582 - in xfce4-screenshooter-plugin/trunk: . src
Jerome Guelfucci
jeromeg at xfce.org
Sun Oct 12 13:33:16 CEST 2008
Author: jeromeg
Date: 2008-10-12 11:33:16 +0000 (Sun, 12 Oct 2008)
New Revision: 5582
Modified:
xfce4-screenshooter-plugin/trunk/ChangeLog
xfce4-screenshooter-plugin/trunk/src/Makefile.am
xfce4-screenshooter-plugin/trunk/src/main.c
xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.c
xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.h
xfce4-screenshooter-plugin/trunk/src/screenshooter-plugin.c
xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.c
xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.h
Log:
Various cleanups in the plugin code and in the utils.
Modified: xfce4-screenshooter-plugin/trunk/ChangeLog
===================================================================
--- xfce4-screenshooter-plugin/trunk/ChangeLog 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/ChangeLog 2008-10-12 11:33:16 UTC (rev 5582)
@@ -1,5 +1,21 @@
2008-10-12 jeromeg
+ * src/screenshooter-dialogs.{c,h}
+ - (screenshooter_dialog_new) Add an argument to create the preferences
+ dialog for the plugin.
+ - add prototypes for internal functions.
+ * src/screenshooter-plugin.c:
+ - (screenshot_properties_dialog) Use the code from screenshooter-dialogs.c.
+ - remove all the obsolete callbacks.
+ * src/main.c:
+ - (main) Use new arguments for screenshooter_dialog_new.
+ - (main) Don't declare variables in the middle of a block.
+ * src/screenshooter-utils.{c,h}: fix various indentation incoherences.
+ * src/Makefile.am:
+ - Add screenshooter-dialogs.{c,h} to the plugin source.
+
+2008-10-12 jeromeg
+
* src/screenshooter-dialogs.{c,h}:
- new file to handle the different dialogs.
* src/main.c:
Modified: xfce4-screenshooter-plugin/trunk/src/Makefile.am
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/Makefile.am 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/Makefile.am 2008-10-12 11:33:16 UTC (rev 5582)
@@ -10,9 +10,11 @@
@LIBXFCE4PANEL_LIBS@
xfce4_screenshooter_plugin_SOURCES = \
- screenshooter-plugin.c \
- screenshooter-utils.c screenshooter-utils.h
+ screenshooter-plugin.c \
+ screenshooter-utils.c screenshooter-utils.h \
+ screenshooter-dialogs.c screenshooter-dialogs.h
+
xfce4_screenshooter_CFLAGS = \
@GTK_CFLAGS@ \
@GLIB_CFLAGS@ \
Modified: xfce4-screenshooter-plugin/trunk/src/main.c
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/main.c 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/main.c 2008-10-12 11:33:16 UTC (rev 5582)
@@ -195,10 +195,10 @@
else
{
GtkWidget *dialog;
-
- dialog = screenshooter_dialog_new (sd);
gint response;
+ dialog = screenshooter_dialog_new (sd, FALSE);
+
response = gtk_dialog_run (GTK_DIALOG (dialog));
if (response == GTK_RESPONSE_OK)
Modified: xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.c
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.c 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.c 2008-10-12 11:33:16 UTC (rev 5582)
@@ -19,6 +19,19 @@
#include "screenshooter-dialogs.h"
+/* Prototypes */
+
+static void cb_fullscreen_screen_toggled (GtkToggleButton *tb,
+ ScreenshotData *sd);
+static void cb_active_window_toggled (GtkToggleButton *tb,
+ ScreenshotData *sd);
+static void cb_show_save_dialog_toggled (GtkToggleButton *tb,
+ ScreenshotData *sd);
+static void cb_default_folder (GtkWidget *chooser,
+ ScreenshotData *sd);
+static void cb_delay_spinner_changed (GtkWidget *spinner,
+ ScreenshotData *sd);
+
/* Internals */
static void cb_fullscreen_screen_toggled (GtkToggleButton *tb,
@@ -81,26 +94,39 @@
-GtkWidget *screenshooter_dialog_new (ScreenshotData *sd)
+GtkWidget *screenshooter_dialog_new (ScreenshotData *sd, gboolean plugin)
{
GtkWidget *dlg;
GtkWidget *vbox;
GtkWidget *modes_frame, *modes_box;
- GtkWidget *active_window_button = NULL, *fullscreen_button;
+ GtkWidget *active_window_button, *fullscreen_button;
GtkWidget *options_frame, *options_box;
GtkWidget *save_button;
GtkWidget *default_save_label, *dir_chooser;
GtkWidget *delay_label, *delay_box, *delay_spinner, *label2;
/* Create the dialog */
- dlg =
- xfce_titled_dialog_new_with_buttons (_("Screenshot"),
- NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT |
- GTK_DIALOG_NO_SEPARATOR,
- GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- NULL);
+ if (!plugin)
+ {
+ dlg =
+ xfce_titled_dialog_new_with_buttons (_("Screenshot"),
+ NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT |
+ GTK_DIALOG_NO_SEPARATOR,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
+ NULL);
+ }
+ else
+ {
+ dlg =
+ xfce_titled_dialog_new_with_buttons (_("Screenshooter plugin"),
+ NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT |
+ GTK_DIALOG_NO_SEPARATOR,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
+ NULL);
+ }
gtk_window_set_position (GTK_WINDOW (dlg), GTK_WIN_POS_CENTER);
Modified: xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.h
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.h 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/screenshooter-dialogs.h 2008-10-12 11:33:16 UTC (rev 5582)
@@ -27,7 +27,8 @@
#include <libxfce4util/libxfce4util.h>
#include <libxfcegui4/libxfcegui4.h>
-GtkWidget *screenshooter_dialog_new (ScreenshotData *sd);
+GtkWidget *screenshooter_dialog_new (ScreenshotData *sd,
+ gboolean plugin);
void screenshooter_preferences_dialog (gchar *rc_file,
gchar *current_default_dir);
Modified: xfce4-screenshooter-plugin/trunk/src/screenshooter-plugin.c
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/screenshooter-plugin.c 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/screenshooter-plugin.c 2008-10-12 11:33:16 UTC (rev 5582)
@@ -36,7 +36,7 @@
#include <sys/stat.h>
#include <X11/Xatom.h>
-#include "screenshooter-utils.h"
+#include "screenshooter-dialogs.h"
#define SCREENSHOT_ICON_NAME "applets-screenshooter"
@@ -69,14 +69,6 @@
PluginData *pd);
static void screenshot_read_rc_file (XfcePanelPlugin *plugin, PluginData *pd);
static void screenshot_write_rc_file (XfcePanelPlugin *plugin, PluginData *pd);
-static void show_save_dialog_toggled (GtkToggleButton *tb, PluginData *pd);
-static void whole_screen_toggled (GtkToggleButton *tb, PluginData *pd);
-static void active_window_toggled (GtkToggleButton *tb, PluginData *pd);
-static void cb_delay_spinner_changed (GtkWidget *spinner,
- PluginData *pd);
-static void cb_default_folder (GtkWidget *chooser, PluginData *pd);
-static void screenshot_dialog_response (GtkWidget *dlg, int reponse,
- PluginData *pd);
@@ -238,77 +230,6 @@
-/* Callback for save dialog:
- Get the value of the toggle button and set the save dialog option.
-*/
-static void
-show_save_dialog_toggled (GtkToggleButton *tb, PluginData *pd)
-{
- pd->sd->show_save_dialog = gtk_toggle_button_get_active (tb);
-}
-
-
-
-/* Callback for whole screen:
- Get the value of the toggle button and set the whole screen option.
-*/
-static void
-whole_screen_toggled (GtkToggleButton *tb, PluginData *pd)
-{
- if (gtk_toggle_button_get_active (tb))
- {
- pd->sd->mode = FULLSCREEN;
- }
- else
- {
- pd->sd->mode = ACTIVE_WINDOW;
- }
-}
-
-
-
-/* Callback for active window:
- Get the value of the toggle button and set the whole screen option.
-*/
-static void
-active_window_toggled (GtkToggleButton *tb, PluginData *pd)
-{
- if (gtk_toggle_button_get_active (tb))
- {
- pd->sd->mode = ACTIVE_WINDOW;
- }
- else
- {
- pd->sd->mode = FULLSCREEN;
- }
-}
-
-
-
-/* Callback for delay:
- Get the value of the toggle button and set the delay option.
-*/
-static void
-cb_delay_spinner_changed (GtkWidget *spinner, PluginData *pd)
-{
- pd->sd->delay =
- gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spinner));
-}
-
-
-
-/* Callback for default folder:
- Get the value of the toggle button and set the default folder option.
-*/
-static void
-cb_default_folder (GtkWidget *chooser, PluginData *pd)
-{
- pd->sd->screenshot_dir =
- gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
-}
-
-
-
/* Callback for dialog response:
Update the tooltips if using gtk >= 2.12.
Unblock the plugin contextual menu.
@@ -346,136 +267,19 @@
static void
screenshot_properties_dialog (XfcePanelPlugin *plugin, PluginData *pd)
{
- GtkWidget *dlg, *vbox, *label2;
- GtkWidget *options_frame, *modes_frame, *delay_box, *options_box, *modes_box;
- GtkWidget *save_button, *desktop_button, *active_window_button;
- GtkWidget *dir_chooser, *default_save_label, *delay_label;
- GtkWidget *delay_spinner;
+ GtkWidget *dlg;
+ dlg = screenshooter_dialog_new (pd->sd, TRUE);
+
/* Block the menu to prevent the user from launching several dialogs at
the same time */
xfce_panel_plugin_block_menu (plugin);
-
- /* Create the dialog */
- dlg = xfce_titled_dialog_new_with_buttons (_("Screenshooter plugin"),
- 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),
pd);
- gtk_container_set_border_width (GTK_CONTAINER (dlg), 2);
- gtk_window_set_icon_name (GTK_WINDOW (dlg), "applets-screenshooter");
-
- /* Create the main box for the dialog */
- vbox = gtk_vbox_new (FALSE, 8);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
- gtk_widget_show (vbox);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), vbox,
- TRUE, TRUE, 0);
-
- /* Create the frame for screenshot modes and fill it with the radio buttons */
- modes_frame = gtk_frame_new (_("Modes"));
- gtk_container_add (GTK_CONTAINER (vbox), modes_frame);
- gtk_widget_show (modes_frame);
-
- modes_box = gtk_vbox_new (FALSE, 8);
- gtk_container_add (GTK_CONTAINER (modes_frame), modes_box);
- gtk_container_set_border_width (GTK_CONTAINER (modes_box), 6);
- gtk_widget_show (modes_box);
-
- desktop_button =
- gtk_radio_button_new_with_mnemonic (NULL,
- _("Take a screenshot of desktop"));
- gtk_widget_show (desktop_button);
- gtk_box_pack_start (GTK_BOX (modes_box), desktop_button, FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (desktop_button),
- (pd->sd->mode == FULLSCREEN));
- g_signal_connect (desktop_button, "toggled",
- G_CALLBACK (whole_screen_toggled),
- pd);
-
- active_window_button =
- gtk_radio_button_new_with_mnemonic (gtk_radio_button_get_group (GTK_RADIO_BUTTON (desktop_button)),
- _("Take a screenshot of the active window"));
- gtk_widget_show (active_window_button);
- gtk_box_pack_start (GTK_BOX (modes_box), active_window_button, FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (active_window_button),
- (pd->sd->mode == ACTIVE_WINDOW));
- g_signal_connect (active_window_button, "toggled",
- G_CALLBACK (active_window_toggled),
- pd);
-
- /* Create the options frame and add the delay and save options */
- options_frame = gtk_frame_new (_("Options"));
- gtk_container_add(GTK_CONTAINER (vbox), options_frame);
- gtk_widget_show (options_frame);
-
- options_box = gtk_vbox_new (FALSE, 8);
- gtk_container_add (GTK_CONTAINER (options_frame), options_box);
- gtk_container_set_border_width (GTK_CONTAINER (options_box), 6);
- gtk_widget_show (options_box);
-
- /* Save option */
- save_button = gtk_check_button_new_with_mnemonic (_("Show save dialog"));
- gtk_widget_show (save_button);
- gtk_box_pack_start (GTK_BOX (options_box), save_button, FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (save_button),
- pd->sd->show_save_dialog);
- g_signal_connect (save_button, "toggled",
- G_CALLBACK (show_save_dialog_toggled), pd);
-
- /* Default save location */
- default_save_label = gtk_label_new ( "" );
- gtk_label_set_markup (GTK_LABEL (default_save_label),
- _("<span weight=\"bold\" stretch=\"semiexpanded\">Default save location</span>"));
- gtk_misc_set_alignment (GTK_MISC (default_save_label), 0, 0);
- gtk_widget_show (default_save_label);
- gtk_container_add (GTK_CONTAINER (options_box), default_save_label);
-
- dir_chooser =
- gtk_file_chooser_button_new (_("Default save location"),
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
- gtk_widget_show (dir_chooser);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dir_chooser),
- pd->sd->screenshot_dir);
- gtk_container_add (GTK_CONTAINER (options_box), dir_chooser);
- g_signal_connect (dir_chooser, "selection-changed",
- G_CALLBACK (cb_default_folder), pd);
-
- /* Screenshot delay */
- delay_label = gtk_label_new ( "" );
- gtk_label_set_markup (GTK_LABEL(delay_label),
- _("<span weight=\"bold\" stretch=\"semiexpanded\">Delay before taking the screenshot</span>"));
- gtk_misc_set_alignment(GTK_MISC (delay_label), 0, 0);
- gtk_widget_show (delay_label);
- gtk_container_add (GTK_CONTAINER (options_box), delay_label);
-
- delay_box = gtk_hbox_new(FALSE, 8);
- gtk_widget_show (delay_box);
- gtk_box_pack_start (GTK_BOX (options_box), delay_box, FALSE, FALSE, 0);
-
- delay_spinner = gtk_spin_button_new_with_range(0.0, 60.0, 1.0);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (delay_spinner),
- pd->sd->delay);
- gtk_widget_show (delay_spinner);
- gtk_box_pack_start (GTK_BOX (delay_box), delay_spinner, FALSE,
- FALSE, 0);
-
- label2 = gtk_label_new_with_mnemonic(_("seconds"));
- gtk_widget_show (label2);
- gtk_box_pack_start (GTK_BOX (delay_box), label2, FALSE, FALSE, 0);
-
- g_signal_connect (delay_spinner, "value-changed",
- G_CALLBACK (cb_delay_spinner_changed), pd);
-
gtk_widget_show (dlg);
}
Modified: xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.c
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.c 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.c 2008-10-12 11:33:16 UTC (rev 5582)
@@ -20,9 +20,10 @@
#include <screenshooter-utils.h>
/* Prototypes */
-static gchar *generate_filename_for_uri(char *uri);
-static Window find_toplevel_window (Window xid);
-static void cb_current_folder_changed (GtkFileChooser *chooser, gpointer user_data);
+static gchar *generate_filename_for_uri (char *uri);
+static Window find_toplevel_window (Window xid);
+static void cb_current_folder_changed (GtkFileChooser *chooser,
+ gpointer user_data);
/* Borrowed from gnome-screenshot */
@@ -189,12 +190,12 @@
*screenshot: a GdkPixbuf containing our screenshot
*sd: a ScreenshotData struct containing the save options.*/
void save_screenshot (GdkPixbuf *screenshot, gboolean show_save_dialog,
- gchar * default_dir)
+ gchar *default_dir)
{
- GdkPixbuf * thumbnail;
- gchar * filename = NULL;
- GtkWidget * preview;
- GtkWidget * chooser;
+ GdkPixbuf *thumbnail;
+ gchar *filename = NULL;
+ GtkWidget *preview;
+ GtkWidget *chooser;
gint dialog_response;
filename = generate_filename_for_uri (default_dir);
@@ -250,7 +251,7 @@
}
else
{
- gchar * savename = NULL;
+ gchar *savename = NULL;
/* Else, we just save the file in the default folder */
savename = g_build_filename (default_dir, filename, NULL);
Modified: xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.h
===================================================================
--- xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.h 2008-10-12 08:37:22 UTC (rev 5581)
+++ xfce4-screenshooter-plugin/trunk/src/screenshooter-utils.h 2008-10-12 11:33:16 UTC (rev 5582)
@@ -48,6 +48,8 @@
}
ScreenshotData;
-GdkPixbuf *take_screenshot (gint mode, gint delay);
-void save_screenshot (GdkPixbuf *screenshot, gboolean show_save_dialog,
- gchar * default_dir);
+GdkPixbuf *take_screenshot (gint mode,
+ gint delay);
+void save_screenshot (GdkPixbuf *screenshot,
+ gboolean show_save_dialog,
+ gchar *default_dir);
More information about the Goodies-commits
mailing list