[Goodies-commits] r4677 - xfburn/trunk/xfburn

David Mohr squisher at xfce.org
Sat Apr 26 18:03:05 CEST 2008


Author: squisher
Date: 2008-04-26 16:03:05 +0000 (Sat, 26 Apr 2008)
New Revision: 4677

Modified:
   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:
Adding basic content to the welcome tab

Modified: xfburn/trunk/xfburn/xfburn-compositions-notebook.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-compositions-notebook.c	2008-04-25 18:40:00 UTC (rev 4676)
+++ xfburn/trunk/xfburn/xfburn-compositions-notebook.c	2008-04-26 16:03:05 UTC (rev 4677)
@@ -148,29 +148,16 @@
   gtk_label_set_text (GTK_LABEL (menu_label), name);
 }
 
-/**********/
-/* public */
-/**********/
-GtkWidget *
-xfburn_compositions_notebook_new ()
+static void
+add_composition_with_data (XfburnCompositionsNotebook *notebook, XfburnCompositionType type, XfburnMainWindow *window)
 {
-  GtkWidget *obj;
-
-  obj = GTK_WIDGET (g_object_new (XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, "scrollable", TRUE, "enable-popup", TRUE, NULL));
-
-  return obj;
-}
-
-void
-xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type)
-{
   GtkWidget *composition = NULL;
   gchar *label_text = NULL;
   static guint i = 0;
   
   switch (type) {
     case XFBURN_WELCOME_TAB:
-      composition = xfburn_welcome_tab_new ();
+      composition = xfburn_welcome_tab_new (window, notebook);
       label_text = g_strdup (_("Welcome"));
       break;
     case XFBURN_DATA_COMPOSITION:
@@ -210,7 +197,34 @@
   g_free (label_text);
 }
 
+/**********/
+/* public */
+/**********/
+GtkWidget *
+xfburn_compositions_notebook_new ()
+{
+  GtkWidget *obj;
+
+  obj = GTK_WIDGET (g_object_new (XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, "scrollable", TRUE, "enable-popup", TRUE, NULL));
+
+  return obj;
+}
+
 void
+xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type)
+{
+  g_assert (type != XFBURN_WELCOME_TAB);
+
+  add_composition_with_data (notebook, type, NULL);
+}
+
+void 
+xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, XfburnMainWindow *window)
+{
+  add_composition_with_data (notebook, XFBURN_WELCOME_TAB, window);
+}
+
+void
 xfburn_compositions_notebook_close_composition (XfburnCompositionsNotebook *notebook)
 {
   gint page_num;

Modified: xfburn/trunk/xfburn/xfburn-compositions-notebook.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-compositions-notebook.h	2008-04-25 18:40:00 UTC (rev 4676)
+++ xfburn/trunk/xfburn/xfburn-compositions-notebook.h	2008-04-26 16:03:05 UTC (rev 4677)
@@ -22,6 +22,8 @@
 
 #include <gtk/gtk.h>
 
+#include "xfburn-main-window.h"
+
 G_BEGIN_DECLS
 #define XFBURN_TYPE_COMPOSITIONS_NOTEBOOK         (xfburn_compositions_notebook_get_type ())
 #define XFBURN_COMPOSITIONS_NOTEBOOK(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, XfburnCompositionsNotebook))
@@ -52,6 +54,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);
 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-04-25 18:40:00 UTC (rev 4676)
+++ xfburn/trunk/xfburn/xfburn-main-window.c	2008-04-26 16:03:05 UTC (rev 4677)
@@ -314,7 +314,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_composition (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), XFBURN_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));
 

Modified: xfburn/trunk/xfburn/xfburn-welcome-tab.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-welcome-tab.c	2008-04-25 18:40:00 UTC (rev 4676)
+++ xfburn/trunk/xfburn/xfburn-welcome-tab.c	2008-04-26 16:03:05 UTC (rev 4677)
@@ -33,14 +33,24 @@
 
 #include "xfburn-welcome-tab.h"
 
+#include "xfburn-main-window.h"
+#include "xfburn-compositions-notebook.h"
+#include "xfburn-burn-image-dialog.h"
+#include "xfburn-blank-cd-dialog.h"
+
 /* prototypes */
 static void xfburn_welcome_tab_class_init (XfburnWelcomeTabClass * klass);
 static void xfburn_welcome_tab_init (XfburnWelcomeTab * sp);
 static void xfburn_welcome_tab_finalize (GObject * object);
 static void composition_interface_init (XfburnCompositionInterface *composition, gpointer iface_data);
+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);
 
 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))
 
@@ -48,8 +58,15 @@
   LAST_SIGNAL,
 }; 
 
+enum {
+  PROP_0,
+  PROP_MAIN_WINDOW,
+  PROP_NOTEBOOK,
+};
+
 typedef struct {
-  gboolean dummy;
+  XfburnMainWindow *mainwin;
+  XfburnCompositionsNotebook *notebook;
 } XfburnWelcomeTabPrivate;
 
 /*********************/
@@ -100,6 +117,8 @@
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->finalize = xfburn_welcome_tab_finalize;
+  object_class->set_property = xfburn_welcome_tab_set_property;
+  object_class->get_property = xfburn_welcome_tab_get_property;
 
   /*
   signals[VOLUME_CHANGED] = g_signal_new ("volume-changed", XFBURN_TYPE_WELCOME_TAB, G_SIGNAL_ACTION,
@@ -107,6 +126,13 @@
                                           NULL, NULL, g_cclosure_marshal_VOID__VOID,
                                           G_TYPE_NONE, 0);
   */
+
+  g_object_class_install_property (object_class, PROP_MAIN_WINDOW, 
+                                   g_param_spec_object ("main-window", _("The main window"),
+                                                        _("The main window"), XFBURN_TYPE_MAIN_WINDOW, G_PARAM_READWRITE));
+  g_object_class_install_property (object_class, PROP_NOTEBOOK, 
+                                   g_param_spec_object ("notebook", _("Notebook"),
+                                                        _("NOTEBOOK"), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, G_PARAM_READWRITE));
 }
 
 static void
@@ -123,13 +149,49 @@
 {
   //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;
 
-  label_welcome = gtk_label_new ("Welcome!");
+  gtk_box_set_homogeneous (GTK_BOX (obj), TRUE);
 
-  gtk_box_pack_start (GTK_BOX (obj), label_welcome, TRUE, TRUE, BORDER);
+  align = gtk_alignment_new (0.5, 0.5, 0.5, 0.5);
+  //gtk_container_add (GTK_CONTAINER (obj), align);
+  gtk_box_pack_start (GTK_BOX (obj), align, TRUE, TRUE, BORDER);
+  gtk_widget_show (align);
 
+  vbox = gtk_vbox_new (FALSE, BORDER);
+  gtk_container_add (GTK_CONTAINER (align), vbox);
+  gtk_widget_show (vbox);
+
+  label_welcome = gtk_label_new ("Welcome to xfburn!");
+  gtk_box_pack_start (GTK_BOX (vbox), label_welcome, FALSE, FALSE, BORDER);
   gtk_widget_show (label_welcome);
+
+  table = gtk_table_new (2,2,TRUE);
+  gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, BORDER);
+  gtk_table_set_row_spacings (GTK_TABLE (table), BORDER);
+  gtk_table_set_col_spacings (GTK_TABLE (table), BORDER);
+  gtk_widget_show (table);
+
+  button_image = gtk_button_new_with_mnemonic (_("Burn _Image"));
+  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);
+
+  button_data_comp = gtk_button_new_with_mnemonic (_("New _Data Composition"));
+  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);
+
+  button_blank = gtk_button_new_with_mnemonic (_("_Blank Disc"));
+  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);
 }
 
 static void
@@ -140,6 +202,42 @@
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static void 
+xfburn_welcome_tab_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+  XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (object);
+
+  switch (prop_id) {
+    case PROP_MAIN_WINDOW:
+      g_value_set_object (value, priv->mainwin);
+      break;
+    case PROP_NOTEBOOK:
+      g_value_set_object (value, priv->notebook);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void 
+xfburn_welcome_tab_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+  XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (object);
+  
+  switch (prop_id) {
+    case PROP_MAIN_WINDOW:
+      priv->mainwin = g_value_get_object (value);
+      break;
+    case PROP_NOTEBOOK:
+      priv->notebook = g_value_get_object (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
 /*           */
 /* internals */
 /*           */
@@ -155,16 +253,51 @@
   DBG ("hide");
 }
 
+static void
+burn_image (GtkButton *button, XfburnWelcomeTab *tab)
+{
+  XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (tab);
+  GtkWidget *dialog;
+
+  dialog = xfburn_burn_image_dialog_new ();
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (priv->mainwin));
+  gtk_dialog_run (GTK_DIALOG (dialog));
+  gtk_widget_destroy (dialog);
+}
+
+static void
+blank_disc (GtkButton *button, XfburnWelcomeTab *tab)
+{
+  XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (tab);
+  GtkWidget *dialog;
+
+  dialog = xfburn_blank_cd_dialog_new ();
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (priv->mainwin));
+  gtk_dialog_run (GTK_DIALOG (dialog));
+  gtk_widget_destroy (dialog);
+}
+
+static void
+new_data_composition (GtkButton *button, XfburnWelcomeTab *tab)
+{
+  XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (tab);
+ 
+  xfburn_compositions_notebook_add_composition (XFBURN_COMPOSITIONS_NOTEBOOK (priv->notebook), XFBURN_DATA_COMPOSITION);
+}
+
 /*        */
 /* public */
 /*        */
 
 GtkWidget *
-xfburn_welcome_tab_new ()
+xfburn_welcome_tab_new (XfburnMainWindow *window, XfburnCompositionsNotebook *notebook)
 {
   GtkWidget *obj;
 
-  obj = g_object_new (XFBURN_TYPE_WELCOME_TAB, NULL);
+  obj = g_object_new (XFBURN_TYPE_WELCOME_TAB, 
+                      "main-window", window, 
+                      "notebook", notebook,
+                      NULL);
 
   return obj;
 }




More information about the Goodies-commits mailing list