[Xfce4-commits] <xfce4-mailwatch-plugin:master> Refactor the code

Ján Sučan noreply at xfce.org
Mon Sep 2 23:12:01 CEST 2013


Updating branch refs/heads/master
         to a5fbafea64b02e8dbd457d01a0108c98128a5b71 (commit)
       from b5fdda1f3dbdf59bd861cce64362c5f5af12139d (commit)

commit a5fbafea64b02e8dbd457d01a0108c98128a5b71
Author: Ján Sučan <sucan at runbox.com>
Date:   Mon Sep 2 23:04:12 2013 +0200

    Refactor the code
    
    Refactor the mailwatch_iconbtn_clicked_cb() function code.

 panel-plugin/mailwatch-plugin.c |   85 +++++++++++++++------------------------
 1 file changed, 33 insertions(+), 52 deletions(-)

diff --git a/panel-plugin/mailwatch-plugin.c b/panel-plugin/mailwatch-plugin.c
index 38bb9a3..d15e1a1 100644
--- a/panel-plugin/mailwatch-plugin.c
+++ b/panel-plugin/mailwatch-plugin.c
@@ -734,9 +734,9 @@ mailwatch_newmsg_command_focusout_cb(GtkWidget *w, GdkEventFocus *evt,
 static void
 mailwatch_iconbtn_clicked_cb(GtkWidget *w, XfceMailwatchPlugin *mwp)
 {
+    GtkWidget *chooser, *toplevel;
     gint icon_type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),
                                                        "mailwatch-icontype"));
-    GtkWidget *chooser, *toplevel;
     
     g_return_if_fail(icon_type == ICON_TYPE_NORMAL || icon_type == ICON_TYPE_NEW_MAIL);
     
@@ -751,59 +751,40 @@ mailwatch_iconbtn_clicked_cb(GtkWidget *w, XfceMailwatchPlugin *mwp)
     if(gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) {
         gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
         if(filename) {
+            GtkWidget *label, *image, *vbox;
+            GdkPixbuf **icon_pix;
+            gchar **icon_path;
+
             switch(icon_type) {
-                case ICON_TYPE_NORMAL:
-                    {
-                        GtkWidget *vbox, *img, *lbl;
-                        
-                        g_free(mwp->normal_icon);
-                        mwp->normal_icon = filename;
-                        mailwatch_set_size(mwp->plugin, 
-                                xfce_panel_plugin_get_size(mwp->plugin), mwp);
-                        
-                        gtk_container_remove(GTK_CONTAINER(w),
-                                             gtk_bin_get_child(GTK_BIN(w)));
-                        
-                        vbox = gtk_vbox_new(FALSE, BORDER/2);
-                        gtk_widget_show(vbox);
-                        gtk_container_add(GTK_CONTAINER(w), vbox);
-                        
-                        img = gtk_image_new_from_pixbuf(mwp->pix_normal);
-                        gtk_widget_show(img);
-                        gtk_box_pack_start(GTK_BOX(vbox), img, TRUE, TRUE, 0);
-                        
-                        lbl = gtk_label_new_with_mnemonic(_("_Normal"));
-                        gtk_widget_show(lbl);
-                        gtk_box_pack_start(GTK_BOX(vbox), lbl, FALSE, FALSE, 0);
-                    }
-                    break;
-                
-                case ICON_TYPE_NEW_MAIL:
-                    {
-                        GtkWidget *vbox, *img, *lbl;
-                        
-                        g_free(mwp->new_mail_icon);
-                        mwp->new_mail_icon = filename;
-                        mailwatch_set_size(mwp->plugin, 
-                                xfce_panel_plugin_get_size(mwp->plugin), mwp);
-                        
-                        gtk_container_remove(GTK_CONTAINER(w),
-                                             gtk_bin_get_child(GTK_BIN(w)));
-                        
-                        vbox = gtk_vbox_new(FALSE, BORDER/2);
-                        gtk_widget_show(vbox);
-                        gtk_container_add(GTK_CONTAINER(w), vbox);
-                        
-                        img = gtk_image_new_from_pixbuf(mwp->pix_newmail);
-                        gtk_widget_show(img);
-                        gtk_box_pack_start(GTK_BOX(vbox), img, TRUE, TRUE, 0);
-                        
-                        lbl = gtk_label_new_with_mnemonic(_("Ne_w mail"));
-                        gtk_widget_show(lbl);
-                        gtk_box_pack_start(GTK_BOX(vbox), lbl, FALSE, FALSE, 0);
-                    }
-                    break;
+            case ICON_TYPE_NORMAL:
+                icon_path = &(mwp->normal_icon);
+                icon_pix = &(mwp->pix_normal);
+                label = gtk_label_new_with_mnemonic(_("_Normal"));
+                break;
+            case ICON_TYPE_NEW_MAIL:
+                icon_path = &(mwp->new_mail_icon);
+                icon_pix = &(mwp->pix_newmail);
+                label = gtk_label_new_with_mnemonic(_("Ne_w mail"));
+                break;
             }
+
+            g_free(*icon_path);
+            *icon_path = filename;
+            mailwatch_set_size(mwp->plugin, 
+                               xfce_panel_plugin_get_size(mwp->plugin), mwp);
+            
+            gtk_container_remove(GTK_CONTAINER(w), gtk_bin_get_child(GTK_BIN(w)));
+            
+            vbox = gtk_vbox_new(FALSE, BORDER / 2);
+            gtk_widget_show(vbox);
+            gtk_container_add(GTK_CONTAINER(w), vbox);
+            
+            image = gtk_image_new_from_pixbuf(*icon_pix);
+            gtk_widget_show(image);
+            gtk_box_pack_start(GTK_BOX(vbox), image, TRUE, TRUE, 0);
+            
+            gtk_widget_show(label);
+            gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
         }
     }
     gtk_widget_destroy(chooser);


More information about the Xfce4-commits mailing list