[Goodies-commits] r4597 - xfburn/trunk/xfburn
David Mohr
squisher at xfce.org
Thu Apr 17 02:05:50 CEST 2008
Author: squisher
Date: 2008-04-17 00:05:50 +0000 (Thu, 17 Apr 2008)
New Revision: 4597
Modified:
xfburn/trunk/xfburn/xfburn-data-disc-usage.c
Log:
Adding automatic switching between data disc types / sizes
Modified: xfburn/trunk/xfburn/xfburn-data-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-data-disc-usage.c 2008-04-16 18:21:20 UTC (rev 4596)
+++ xfburn/trunk/xfburn/xfburn-data-disc-usage.c 2008-04-17 00:05:50 UTC (rev 4597)
@@ -44,6 +44,7 @@
#define DEFAULT_DISK_SIZE_LABEL 2
#define LAST_CD_LABEL 4
+#define NUM_LABELS 7
struct
{
@@ -147,10 +148,11 @@
/* internals */
static void
-xfburn_data_disc_usage_update_size (XfburnDataDiscUsage * disc_usage)
+xfburn_data_disc_usage_update_size (XfburnDataDiscUsage * disc_usage, gboolean manual)
{
gfloat fraction;
gchar *size;
+ int i;
fraction = disc_usage->size / datadisksizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size;
if (fraction > 1.0)
@@ -167,6 +169,14 @@
gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), size);
+ if (!manual) {
+ i = 0;
+ while (i < NUM_LABELS && disc_usage->size > datadisksizes[i].size) {
+ i++;
+ }
+ gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), (i<NUM_LABELS ? i: i-1));
+ }
+
if (disc_usage->size == 0 ||
disc_usage->size > datadisksizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size)
gtk_widget_set_sensitive (disc_usage->button, FALSE);
@@ -190,7 +200,7 @@
static void
cb_combo_changed (GtkComboBox * combo, XfburnDataDiscUsage * usage)
{
- xfburn_data_disc_usage_update_size (usage);
+ xfburn_data_disc_usage_update_size (usage, TRUE);
}
/* public methods */
@@ -204,21 +214,21 @@
xfburn_data_disc_usage_set_size (XfburnDataDiscUsage * disc_usage, gdouble size)
{
disc_usage->size = size;
- xfburn_data_disc_usage_update_size (disc_usage);
+ xfburn_data_disc_usage_update_size (disc_usage, FALSE);
}
void
xfburn_data_disc_usage_add_size (XfburnDataDiscUsage * disc_usage, gdouble size)
{
disc_usage->size = disc_usage->size + size;
- xfburn_data_disc_usage_update_size (disc_usage);
+ xfburn_data_disc_usage_update_size (disc_usage, FALSE);
}
void
xfburn_data_disc_usage_sub_size (XfburnDataDiscUsage * disc_usage, gdouble size)
{
disc_usage->size = disc_usage->size - size;
- xfburn_data_disc_usage_update_size (disc_usage);
+ xfburn_data_disc_usage_update_size (disc_usage, FALSE);
}
XfburnDataDiscType
More information about the Goodies-commits
mailing list