[Goodies-commits] r4705 - in xfburn/trunk: . xfburn

David Mohr squisher at xfce.org
Fri May 2 07:24:44 CEST 2008


Author: squisher
Date: 2008-05-02 05:24:44 +0000 (Fri, 02 May 2008)
New Revision: 4705

Modified:
   xfburn/trunk/xfburn-toolbars.ui
   xfburn/trunk/xfburn.ui
   xfburn/trunk/xfburn/xfburn-compositions-notebook.c
   xfburn/trunk/xfburn/xfburn-compositions-notebook.h
   xfburn/trunk/xfburn/xfburn-main-window.c
   xfburn/trunk/xfburn/xfburn-welcome-tab.c
Log:
Have welcome screen buttons sensitivity set by the main action group -- better solution would be to overwrite GtkAction

Modified: xfburn/trunk/xfburn/xfburn-compositions-notebook.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-compositions-notebook.c	2008-05-01 22:49:40 UTC (rev 4704)
+++ xfburn/trunk/xfburn/xfburn-compositions-notebook.c	2008-05-02 05:24:44 UTC (rev 4705)
@@ -46,9 +46,15 @@
 static void xfburn_compositions_notebook_init (XfburnCompositionsNotebook * notebook);
 static void xfburn_compositions_notebook_finalize (GObject * object);
 
+
+/* internals */
 static void cb_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, 
                             XfburnCompositionsNotebookPrivate *priv);
+static void cb_composition_close (XfburnNotebookTab *tab, GtkNotebook *notebook);
+static void cb_composition_name_changed (XfburnComposition *composition, const gchar * name, XfburnCompositionsNotebook *notebook);
+static XfburnComposition * add_composition_with_data (XfburnCompositionsNotebook *notebook, XfburnCompositionType type, XfburnMainWindow *window);
 
+
 /* static member */
 static GtkNotebookClass *parent_class = NULL;
 
@@ -148,7 +154,7 @@
   gtk_label_set_text (GTK_LABEL (menu_label), name);
 }
 
-static void
+static XfburnComposition *
 add_composition_with_data (XfburnCompositionsNotebook *notebook, XfburnCompositionType type, XfburnMainWindow *window)
 {
   GtkWidget *composition = NULL;
@@ -195,6 +201,8 @@
   }
   
   g_free (label_text);
+
+  return XFBURN_COMPOSITION (composition);
 }
 
 /**********/
@@ -218,10 +226,10 @@
   add_composition_with_data (notebook, type, NULL);
 }
 
-void 
+XfburnWelcomeTab *
 xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, XfburnMainWindow *window)
 {
-  add_composition_with_data (notebook, XFBURN_WELCOME_TAB, window);
+  return XFBURN_WELCOME_TAB (add_composition_with_data (notebook, XFBURN_WELCOME_TAB, window));
 }
 
 void

Modified: xfburn/trunk/xfburn/xfburn-compositions-notebook.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-compositions-notebook.h	2008-05-01 22:49:40 UTC (rev 4704)
+++ xfburn/trunk/xfburn/xfburn-compositions-notebook.h	2008-05-02 05:24:44 UTC (rev 4705)
@@ -23,6 +23,7 @@
 #include <gtk/gtk.h>
 
 #include "xfburn-main-window.h"
+#include "xfburn-welcome-tab.h"
 
 G_BEGIN_DECLS
 #define XFBURN_TYPE_COMPOSITIONS_NOTEBOOK         (xfburn_compositions_notebook_get_type ())
@@ -54,7 +55,7 @@
 GtkWidget *xfburn_compositions_notebook_new ();
 
 void xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type);
-void xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, XfburnMainWindow *window);
+XfburnWelcomeTab *xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, XfburnMainWindow *window);
 void xfburn_compositions_notebook_close_composition (XfburnCompositionsNotebook *notebook);
 
 void xfburn_compositions_notebook_load_composition (XfburnCompositionsNotebook *notebook, const gchar *file);

Modified: xfburn/trunk/xfburn/xfburn-main-window.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-main-window.c	2008-05-01 22:49:40 UTC (rev 4704)
+++ xfburn/trunk/xfburn/xfburn-main-window.c	2008-05-02 05:24:44 UTC (rev 4705)
@@ -57,6 +57,7 @@
 
   gboolean support_cdr;
   gboolean support_cdrw;
+  XfburnWelcomeTab *welcome_tab;
 } XfburnMainWindowPrivate;
 
 /* prototypes */
@@ -123,7 +124,7 @@
   {"help-menu", NULL, N_("_Help"), NULL,},
   {"about", GTK_STOCK_ABOUT, N_("_About"), NULL, N_("Display information about Xfburn"),
    G_CALLBACK (action_about),},
-  {"blank-cd", "xfburn-blank-cdrw", N_("Blank CD-RW"), NULL, N_("Blank CD-RW"),
+  {"blank-disc", "xfburn-blank-cdrw", N_("Blank CD-RW"), NULL, N_("Blank CD-RW"),
    G_CALLBACK (action_blank),},
   {"copy-data", "xfburn-data-copy", N_("Copy Data CD"), NULL, N_("Copy Data CD"),
    G_CALLBACK (action_copy_cd),},
@@ -150,7 +151,7 @@
 /*  "load-composition",
   "save-composition",
   "close-composition",*/
-  "blank-cd",
+  "blank-disc",
   "copy-data",
   //"copy-audio",
   "burn-image",
@@ -314,7 +315,7 @@
   priv->compositions_notebook = xfburn_compositions_notebook_new ();
   gtk_widget_show (priv->compositions_notebook);
   gtk_paned_add2 (GTK_PANED (priv->vpaned), priv->compositions_notebook);
-  xfburn_compositions_notebook_add_welcome_tab (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), mainwin);
+  priv->welcome_tab = xfburn_compositions_notebook_add_welcome_tab (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), mainwin);
   
   gtk_paned_set_position (GTK_PANED (priv->vpaned), xfburn_settings_get_int ("vpaned-position", 200));
 
@@ -659,9 +660,11 @@
       gtk_action_set_sensitive (action, FALSE);
     }
     if (!priv->support_cdrw) {
-      action = gtk_action_group_get_action (priv->action_group, "blank-cd");
+      action = gtk_action_group_get_action (priv->action_group, "blank-disc");
       gtk_action_set_sensitive (action, FALSE);
     }
+
+    g_object_set (priv->welcome_tab, "action_group", priv->action_group, NULL);
   }
   
   return obj;

Modified: xfburn/trunk/xfburn/xfburn-welcome-tab.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-welcome-tab.c	2008-05-01 22:49:40 UTC (rev 4704)
+++ xfburn/trunk/xfburn/xfburn-welcome-tab.c	2008-05-02 05:24:44 UTC (rev 4705)
@@ -47,13 +47,6 @@
 static void xfburn_welcome_tab_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
 static void xfburn_welcome_tab_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
 
-GtkWidget* create_welcome_button (const gchar *stock, const gchar *text, const gchar *secondary);
-static void show_custom_controls (XfburnComposition *composition);
-static void hide_custom_controls (XfburnComposition *composition);
-static void burn_image (GtkButton *button, XfburnWelcomeTab *tab);
-static void new_data_composition (GtkButton *button, XfburnWelcomeTab *tab);
-static void blank_disc (GtkButton *button, XfburnWelcomeTab *tab);
-
 #define XFBURN_WELCOME_TAB_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_WELCOME_TAB, XfburnWelcomeTabPrivate))
 
 enum {
@@ -64,13 +57,28 @@
   PROP_0,
   PROP_MAIN_WINDOW,
   PROP_NOTEBOOK,
+  PROP_ACTION_GROUP,
 };
 
 typedef struct {
   XfburnMainWindow *mainwin;
   XfburnCompositionsNotebook *notebook;
+  GtkActionGroup *action_group;
+  GtkWidget *button_image;
+  GtkWidget *button_data_comp;
+  GtkWidget *button_blank;
 } XfburnWelcomeTabPrivate;
 
+/* internals */
+static GtkWidget* create_welcome_button (const gchar *stock, const gchar *text, const gchar *secondary);
+static void update_buttons_from_action_group (XfburnWelcomeTabPrivate *priv);
+static void show_custom_controls (XfburnComposition *composition);
+static void hide_custom_controls (XfburnComposition *composition);
+static void burn_image (GtkButton *button, XfburnWelcomeTab *tab);
+static void new_data_composition (GtkButton *button, XfburnWelcomeTab *tab);
+static void blank_disc (GtkButton *button, XfburnWelcomeTab *tab);
+
+
 /*********************/
 /* class declaration */
 /*********************/
@@ -135,6 +143,9 @@
   g_object_class_install_property (object_class, PROP_NOTEBOOK, 
                                    g_param_spec_object ("notebook", _("Notebook"),
                                                         _("NOTEBOOK"), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, G_PARAM_READWRITE));
+  g_object_class_install_property (object_class, PROP_ACTION_GROUP, 
+                                   g_param_spec_object ("action_group", _("Action group"),
+                                                        _("Action group from the main window"), GTK_TYPE_ACTION_GROUP, G_PARAM_READWRITE));
 }
 
 static void
@@ -149,15 +160,12 @@
 static void
 xfburn_welcome_tab_init (XfburnWelcomeTab * obj)
 {
-  //XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (obj);
+  XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (obj);
 
   GtkWidget *vbox;
   GtkWidget *align;
   GtkWidget *label_welcome;
   GtkWidget *table;
-  GtkWidget *button_image;
-  GtkWidget *button_data_comp;
-  GtkWidget *button_blank;
 
   gtk_box_set_homogeneous (GTK_BOX (obj), TRUE);
 
@@ -181,20 +189,20 @@
   gtk_widget_show (table);
 
   /* buttons */
-  button_image = create_welcome_button (XFBURN_STOCK_BURN_CD, _("<big>Burn _Image</big>"), _("Burn a prepared compilation, i.e. an .ISO file"));
-  gtk_table_attach_defaults (GTK_TABLE (table), button_image, 0, 1, 0, 1);
-  gtk_widget_show (button_image);
-  g_signal_connect (G_OBJECT(button_image), "clicked", G_CALLBACK(burn_image), obj);
+  priv->button_image = create_welcome_button (XFBURN_STOCK_BURN_CD, _("<big>Burn _Image</big>"), _("Burn a prepared compilation, i.e. an .ISO file"));
+  gtk_table_attach_defaults (GTK_TABLE (table), priv->button_image, 0, 1, 0, 1);
+  gtk_widget_show (priv->button_image);
+  g_signal_connect (G_OBJECT(priv->button_image), "clicked", G_CALLBACK(burn_image), obj);
 
-  button_data_comp = create_welcome_button (GTK_STOCK_NEW, _("<big>New _Data Composition</big>"), _("Create a new data disc with the files of your choosing"));
-  gtk_table_attach_defaults (GTK_TABLE (table), button_data_comp, 1, 2, 0, 1);
-  gtk_widget_show (button_data_comp);
-  g_signal_connect (G_OBJECT(button_data_comp), "clicked", G_CALLBACK(new_data_composition), obj);
+  priv->button_data_comp = create_welcome_button (GTK_STOCK_NEW, _("<big>New _Data Composition</big>"), _("Create a new data disc with the files of your choosing"));
+  gtk_table_attach_defaults (GTK_TABLE (table), priv->button_data_comp, 1, 2, 0, 1);
+  gtk_widget_show (priv->button_data_comp);
+  g_signal_connect (G_OBJECT(priv->button_data_comp), "clicked", G_CALLBACK(new_data_composition), obj);
 
-  button_blank = create_welcome_button (XFBURN_STOCK_BLANK_CDRW, _("<big>_Blank Disc</big>"), _("Prepare the rewriteable disc for a new burn"));
-  gtk_table_attach_defaults (GTK_TABLE (table), button_blank, 0, 1, 1, 2);
-  gtk_widget_show (button_blank);
-  g_signal_connect (G_OBJECT(button_blank), "clicked", G_CALLBACK(blank_disc), obj);
+  priv->button_blank = create_welcome_button (XFBURN_STOCK_BLANK_CDRW, _("<big>_Blank Disc</big>"), _("Prepare the rewriteable disc for a new burn"));
+  gtk_table_attach_defaults (GTK_TABLE (table), priv->button_blank, 0, 1, 1, 2);
+  gtk_widget_show (priv->button_blank);
+  g_signal_connect (G_OBJECT(priv->button_blank), "clicked", G_CALLBACK(blank_disc), obj);
 }
 
 static void
@@ -217,6 +225,9 @@
     case PROP_NOTEBOOK:
       g_value_set_object (value, priv->notebook);
       break;
+    case PROP_ACTION_GROUP:
+      g_value_set_object (value, priv->action_group);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -235,6 +246,10 @@
     case PROP_NOTEBOOK:
       priv->notebook = g_value_get_object (value);
       break;
+    case PROP_ACTION_GROUP:
+      priv->action_group = g_value_get_object (value);
+      update_buttons_from_action_group (priv);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -246,7 +261,7 @@
 /*           */
 
 /* create_welcome_button was based on xfce_create_mixed_button */
-GtkWidget*
+static GtkWidget*
 create_welcome_button (const gchar *stock, const gchar *text, const gchar *secondary)
 {
   GtkWidget *button, *align, *image, *hbox, *label, *vbox;
@@ -278,6 +293,21 @@
   return button;
 }
 
+static void 
+update_buttons_from_action_group (XfburnWelcomeTabPrivate *priv)
+{
+  GtkAction *action;
+
+  action = gtk_action_group_get_action (priv->action_group, "burn-image");
+  gtk_widget_set_sensitive (priv->button_image, gtk_action_is_sensitive (action));
+
+  action = gtk_action_group_get_action (priv->action_group, "new-composition");
+  gtk_widget_set_sensitive (priv->button_data_comp, gtk_action_is_sensitive (action));
+
+  action = gtk_action_group_get_action (priv->action_group, "blank-disc");
+  gtk_widget_set_sensitive (priv->button_blank, gtk_action_is_sensitive (action));
+}
+
 static void
 show_custom_controls (XfburnComposition *composition)
 {

Modified: xfburn/trunk/xfburn-toolbars.ui
===================================================================
--- xfburn/trunk/xfburn-toolbars.ui	2008-05-01 22:49:40 UTC (rev 4704)
+++ xfburn/trunk/xfburn-toolbars.ui	2008-05-02 05:24:44 UTC (rev 4705)
@@ -10,7 +10,7 @@
 
     <separator />
 
-    <toolitem id="blank-cd" />
+    <toolitem id="blank-disc" />
     <!-- <toolitem id="format-dvd" /> -->
     
     <!-- <toolitem id="copy-data" /> -->

Modified: xfburn/trunk/xfburn.ui
===================================================================
--- xfburn/trunk/xfburn.ui	2008-05-01 22:49:40 UTC (rev 4704)
+++ xfburn/trunk/xfburn.ui	2008-05-02 05:24:44 UTC (rev 4705)
@@ -28,7 +28,7 @@
       <menuitem action="preferences"/>
     </menu>
     <menu action="action-menu">
-      <menuitem action="blank-cd"/>
+      <menuitem action="blank-disc"/>
       <!--<menuitem action="copy-data"/>-->
       <menuitem action="burn-image"/>
       <placeholder name="placeholder-action-cd"/>




More information about the Goodies-commits mailing list