1
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
4
* Copyright (C) Philippe Rouquier 2008 <bonfire-app@wanadoo.fr>
6
* brasero-git-trunk is free software: you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
11
* brasero-git-trunk is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
* See the GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License along
17
* with this program. If not, see <http://www.gnu.org/licenses/>.
25
#include <glib/gi18n-lib.h>
29
#include "burn-medium.h"
31
#include "brasero-utils.h"
32
#include "brasero-src-info.h"
34
typedef struct _BraseroSrcInfoPrivate BraseroSrcInfoPrivate;
35
struct _BraseroSrcInfoPrivate
40
BraseroMedium *medium;
43
#define BRASERO_SRC_INFO_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BRASERO_TYPE_SRC_INFO, BraseroSrcInfoPrivate))
46
G_DEFINE_TYPE (BraseroSrcInfo, brasero_src_info, GTK_TYPE_HBOX);
49
brasero_src_info_update (BraseroSrcInfo *self)
54
BraseroSrcInfoPrivate *priv;
56
priv = BRASERO_SRC_INFO_PRIVATE (self);
59
media = brasero_medium_get_status (priv->medium);
61
media = BRASERO_MEDIUM_NONE;
63
gtk_label_set_text (GTK_LABEL (priv->capacity), "");
64
// gtk_label_set_text (GTK_LABEL (priv->status), "");
67
if (media == BRASERO_MEDIUM_NONE) {
68
gtk_image_set_from_icon_name (GTK_IMAGE (priv->image),
70
GTK_ICON_SIZE_DIALOG);
72
gtk_label_set_text (GTK_LABEL (priv->capacity), _("no medium"));
73
// gtk_label_set_text (GTK_LABEL (priv->status), _("no medium"));
77
if (media == BRASERO_MEDIUM_UNSUPPORTED) {
78
gtk_label_set_text (GTK_LABEL (priv->capacity), _("no supported medium"));
79
// gtk_label_set_text (GTK_LABEL (priv->status), _("no supported medium"));
80
gtk_image_set_from_icon_name (GTK_IMAGE (priv->image),
82
GTK_ICON_SIZE_DIALOG);
86
if (media == BRASERO_MEDIUM_BUSY) {
87
gtk_label_set_text (GTK_LABEL (priv->capacity), _("medium busy"));
88
// gtk_label_set_text (GTK_LABEL (priv->status), _("medium busy"));
89
gtk_image_set_from_icon_name (GTK_IMAGE (priv->image),
91
GTK_ICON_SIZE_DIALOG);
95
gtk_image_set_from_icon_name (GTK_IMAGE (priv->image),
96
brasero_medium_get_icon (priv->medium),
97
GTK_ICON_SIZE_DIALOG);
99
if (media & BRASERO_MEDIUM_BLANK) {
100
/* NOTE for translators: when the disc is blank that's its size
101
* ... 0. I set as translatable as maybe some languages don't
103
gtk_label_set_text (GTK_LABEL (priv->capacity), _("0"));
104
// gtk_label_set_text (GTK_LABEL (priv->status), _("blank medium"));
108
brasero_medium_get_data_size (priv->medium, NULL, §ors);
109
string = brasero_utils_get_sectors_string (sectors,
110
!(media & BRASERO_MEDIUM_HAS_DATA),
114
if (BRASERO_MEDIUM_IS (media, BRASERO_MEDIUM_HAS_AUDIO|BRASERO_MEDIUM_HAS_DATA)) {
115
gtk_label_set_text (GTK_LABEL (priv->capacity), string);
116
// gtk_label_set_text (GTK_LABEL (priv->status), _("audio and data"));
118
else if (media & BRASERO_MEDIUM_HAS_AUDIO) {
119
gtk_label_set_text (GTK_LABEL (priv->capacity), string);
120
// gtk_label_set_text (GTK_LABEL (priv->status), _("audio only"));
122
else if (BRASERO_MEDIUM_IS (media, BRASERO_MEDIUM_HAS_DATA|BRASERO_MEDIUM_PROTECTED)) {
123
gtk_label_set_text (GTK_LABEL (priv->capacity), string);
124
// gtk_label_set_text (GTK_LABEL (priv->status), _("protected data"));
126
else if (media & BRASERO_MEDIUM_HAS_DATA) {
127
gtk_label_set_text (GTK_LABEL (priv->capacity), string);
128
// gtk_label_set_text (GTK_LABEL (priv->status), _("data only"));
135
brasero_src_info_set_medium (BraseroSrcInfo *self,
136
BraseroMedium *medium)
138
BraseroSrcInfoPrivate *priv;
140
priv = BRASERO_SRC_INFO_PRIVATE (self);
143
g_object_unref (priv->medium);
148
priv->medium = medium;
149
g_object_ref (medium);
152
brasero_src_info_update (self);
156
brasero_src_info_init (BraseroSrcInfo *object)
158
BraseroSrcInfoPrivate *priv;
162
priv = BRASERO_SRC_INFO_PRIVATE (object);
164
gtk_box_set_spacing (GTK_BOX (object), 12);
166
priv->image = gtk_image_new ();
167
gtk_box_pack_end (GTK_BOX (object), priv->image, FALSE, FALSE, 0);
168
// gtk_widget_show (priv->image);
170
table = gtk_table_new (2, 1, FALSE);
171
gtk_widget_show (table);
172
gtk_table_set_row_spacings (GTK_TABLE (table), 4);
173
gtk_table_set_col_spacings (GTK_TABLE (table), 8);
175
label = gtk_label_new (_("<b>Size:</b>"));
176
gtk_widget_show (label);
177
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
178
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
179
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
180
GTK_FILL, GTK_FILL|GTK_EXPAND, 0, 0);
182
priv->capacity = gtk_label_new ("");
183
gtk_widget_show (priv->capacity);
184
gtk_misc_set_alignment (GTK_MISC (priv->capacity), 0.0, 0.5);
185
gtk_table_attach (GTK_TABLE (table), priv->capacity, 1, 2, 0, 1,
186
GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 0, 0);
188
/* label = gtk_label_new (_("<b>Status:</b>"));
189
gtk_widget_show (label);
190
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
191
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
192
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
193
GTK_FILL, GTK_FILL, 0, 0);
195
priv->status = gtk_label_new ("");
196
gtk_widget_show (priv->status);
197
gtk_misc_set_alignment (GTK_MISC (priv->status), 0.0, 0.0);
198
gtk_table_attach (GTK_TABLE (table), priv->status, 1, 2, 1, 2,
199
GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
201
gtk_box_pack_start (GTK_BOX (object), table, FALSE, TRUE, 0);
205
brasero_src_info_finalize (GObject *object)
207
BraseroSrcInfoPrivate *priv;
209
priv = BRASERO_SRC_INFO_PRIVATE (object);
212
g_object_unref (priv->medium);
216
G_OBJECT_CLASS (brasero_src_info_parent_class)->finalize (object);
220
brasero_src_info_class_init (BraseroSrcInfoClass *klass)
222
GObjectClass* object_class = G_OBJECT_CLASS (klass);
224
g_type_class_add_private (klass, sizeof (BraseroSrcInfoPrivate));
226
object_class->finalize = brasero_src_info_finalize;
230
brasero_src_info_new (void)
232
return g_object_new (BRASERO_TYPE_SRC_INFO, NULL);