*
* This file contains API for Hildon File Details dialog.
*
-*/
+ */
#include <gtk/gtkbox.h>
#include <gtk/gtkcheckbutton.h>
#include <gtk/gtktable.h>
#include <gtk/gtkhbox.h>
#include <gtk/gtkimage.h>
+#include <gtk/gtkscrolledwindow.h>
#include <time.h>
#include <libintl.h>
#include <sys/types.h>
static void
hildon_file_details_dialog_get_property( GObject *object, guint param_id,
GValue *value, GParamSpec *pspec );
+static void
+hildon_file_details_dialog_response(GtkDialog *dialog, gint response_id);
static GtkDialogClass *file_details_dialog_parent_class = NULL;
/* Cancel changes if read-only is changed */
static void
-hildon_file_details_dialog_response(GtkWidget *widget, gint response_id, gpointer data)
+hildon_file_details_dialog_response(GtkDialog *dialog, gint response_id)
{
if (response_id == GTK_RESPONSE_CANCEL)
{
HildonFileDetailsDialog *self;
gboolean state;
- self = HILDON_FILE_DETAILS_DIALOG(widget);
+ self = HILDON_FILE_DETAILS_DIALOG(dialog);
state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->priv->file_readonly));
if (state != self->priv->checkbox_original_state)
gobject_class->get_property = hildon_file_details_dialog_get_property;
gobject_class->set_property = hildon_file_details_dialog_set_property;
GTK_WIDGET_CLASS(klass)->map = hildon_file_details_dialog_map;
+ GTK_DIALOG_CLASS(klass)->response = hildon_file_details_dialog_response;
+
g_type_class_add_private(klass, sizeof(HildonFileDetailsDialogPrivate));
/**
g_param_spec_object("additional-tab",
"Additional tab",
"Tab to show additinal information",
- GTK_TYPE_WIDGET, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ GTK_TYPE_WIDGET, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
/**
* HildonFileDetailsDialog:show_tabs:
*
g_param_spec_boolean("show-tabs",
"Show tab labels",
"Do we want to show the tab label.",
- FALSE, G_PARAM_READWRITE));
+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
/**
* HildonFileDetailsDialog:additional_tab_label:
*
priv->file_size, NULL, HILDON_CAPTION_OPTIONAL);
caption_read = hildon_caption_new(group, _("ckdg_fi_properties_read_only"),
priv->file_readonly, NULL, HILDON_CAPTION_OPTIONAL);
- g_object_unref(group);
+ hildon_caption_set_separator(HILDON_CAPTION(caption_size), "");
+ hildon_caption_set_separator(HILDON_CAPTION(caption_read), "");
+ if (G_IS_OBJECT(group))
+ g_object_unref(group);
hbox_location = gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT);
hbox_device = gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT);
gtk_table_attach(table, priv->file_time, 1, 2, 5, 6, GTK_SHRINK | GTK_FILL, GTK_FILL, 0, 0);
/* Populate dialog */
- gtk_notebook_append_page(priv->notebook, GTK_WIDGET(table),
- gtk_label_new(_("sfil_ti_notebook_common")));
+ gtk_notebook_append_page(priv->notebook, GTK_WIDGET(table),
+ gtk_label_new(_("sfil_ti_notebook_common")));
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(self)->vbox),
- GTK_WIDGET(priv->notebook), FALSE, TRUE, 0);
+ GTK_WIDGET(priv->notebook), TRUE, TRUE, 0);
/* From widget specs, generic dialog size */
geometry.min_width = 133;
geometry.max_height = 240;
gtk_window_set_geometry_hints(GTK_WINDOW(self),
- GTK_WIDGET(priv->notebook), &geometry,
- GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE);
+ GTK_WIDGET(priv->notebook), &geometry,
+ GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE);
gtk_widget_show_all(GTK_WIDGET(priv->notebook));
priv->ok_button = gtk_dialog_add_button(GTK_DIALOG(self),
gtk_dialog_set_default_response(GTK_DIALOG(self),
GTK_RESPONSE_OK);
- g_signal_connect(self, "response",
- G_CALLBACK(hildon_file_details_dialog_response), NULL);
priv->toggle_handler = g_signal_connect(priv->file_readonly, "toggled",
G_CALLBACK(hildon_file_details_dialog_read_only_toggled),
self);
{
gtk_notebook_set_show_tabs(notebook, g_value_get_boolean(value));
gtk_notebook_set_show_border(notebook, g_value_get_boolean(value));
-/* g_assert(gtk_notebook_get_n_pages(notebook) == 2);*/
break;
}
case PROP_ADDITIONAL_TAB:
{
GtkWidget *widget = g_value_get_object(value);
-
+ GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
+
if (gtk_notebook_get_n_pages(notebook) == 2)
gtk_notebook_remove_page(notebook, 1);
gtk_widget_show(widget);
}
- gtk_notebook_append_page(notebook, widget, priv->tab_label);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), widget);
+ gtk_viewport_set_shadow_type(GTK_VIEWPORT(GTK_BIN(sw)->child),
+ GTK_SHADOW_NONE);
+ gtk_widget_show_all(sw);
+ gtk_notebook_append_page(notebook, sw, priv->tab_label);
gtk_notebook_set_current_page(notebook, 0);
break;
}
HildonFileSystemModel *new_model = g_value_get_object(value);
if (new_model != priv->model)
{
- if (priv->model)
+ if (G_IS_OBJECT(priv->model))
g_object_unref(priv->model);
priv->model = new_model;
if (new_model)
g_return_if_fail(HILDON_IS_FILE_DETAILS_DIALOG(object));
priv = HILDON_FILE_DETAILS_DIALOG(object)->priv;
- g_object_unref(priv->model);
- g_object_unref(priv->tab_label);
- gtk_tree_row_reference_free(priv->active_file);
+ if (G_IS_OBJECT(priv->model))
+ g_object_unref(priv->model);
+ if (G_IS_OBJECT(priv->tab_label))
+ g_object_unref(priv->tab_label);
+ if (priv->active_file)
+ gtk_tree_row_reference_free(priv->active_file);
G_OBJECT_CLASS(file_details_dialog_parent_class)->finalize(object);
}
*
* Returns: a new #HildonFileDetailsDialog.
*/
+#ifndef HILDON_DISABLE_DEPRECATED
GtkWidget *hildon_file_details_dialog_new(GtkWindow * parent,
const gchar * filename)
{
return GTK_WIDGET(dialog);
}
-
+#endif
/**
* hildon_file_details_dialog_new_with_model:
* @parent: the parent window.
-1);
g_object_set(self->priv->file_name, "label", name, NULL);
- g_object_set(self->priv->file_type, "label", mime, NULL);
+ g_object_set(self->priv->file_type, "label", _(mime), NULL);
if (size < 1024)
g_snprintf(buffer, sizeof(buffer),
gtk_image_set_from_pixbuf(GTK_IMAGE(self->priv->file_location_image),
location_icon);
- g_object_unref(location_icon);
+ if (G_IS_OBJECT(location_icon))
+ g_object_unref(location_icon);
g_free(location_name);
/* Go upwards in model until we find a device node */
gtk_image_set_from_pixbuf(GTK_IMAGE(self->priv->file_device_image),
location_icon);
- g_object_unref(location_icon);
+ if (G_IS_OBJECT(location_icon))
+ g_object_unref(location_icon);
g_free(location_name);
g_free(parent_path);
}