[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