[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