Added frame and set of radio buttons to indicate and allow the user to
2000-06-20 Gene Z. Ragan <gzr@eazel.com> * mime-type-capplet/nautilus-mime-type-capplet.c: (mime_list_selected_row_callback), (none_button_toggled), (application_button_toggled), (component_button_toggled), (init_mime_capplet), (nautilus_mime_type_capplet_update_info): Added frame and set of radio buttons to indicate and allow the user to change the default action that will occur when a file is clicked/double-clicked in Nautilus. We have three choices that map to the three types of actions we currently support.
This commit is contained in:
parent
9fc8036863
commit
130114db19
1 changed files with 86 additions and 11 deletions
|
@ -64,7 +64,7 @@ GtkWidget *add_button = NULL;
|
|||
GtkWidget *info_frame = NULL;
|
||||
GtkWidget *icon_entry, *extension_list, *mime_list;
|
||||
GtkWidget *application_menu, *component_menu;
|
||||
|
||||
GtkWidget *none_button, *application_button, *component_button;
|
||||
|
||||
/*
|
||||
* main
|
||||
|
@ -248,24 +248,49 @@ mime_list_selected_row_callback (GtkWidget *widget, gint row, gint column, GdkEv
|
|||
/* Update info on selection */
|
||||
nautilus_mime_type_capplet_update_info (mime_type);
|
||||
|
||||
/* FIXME: Get user mime info */
|
||||
//if (g_hash_table_lookup (user_mime_types, mi->mime_type)) {
|
||||
// gtk_widget_set_sensitive (delete_button, TRUE);
|
||||
//} else
|
||||
// gtk_widget_set_sensitive (delete_button, FALSE);
|
||||
/* FIXME: Get user mime info and determine if we can enable the delete button */
|
||||
}
|
||||
|
||||
static void
|
||||
none_button_toggled (GtkToggleButton *button, gpointer user_data)
|
||||
{
|
||||
if (gtk_toggle_button_get_active (button)) {
|
||||
gnome_vfs_mime_set_default_action_type (get_selected_item_mime_type (),
|
||||
GNOME_VFS_MIME_ACTION_TYPE_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
application_button_toggled (GtkToggleButton *button, gpointer user_data)
|
||||
{
|
||||
if (gtk_toggle_button_get_active (button)) {
|
||||
gnome_vfs_mime_set_default_action_type (get_selected_item_mime_type (),
|
||||
GNOME_VFS_MIME_ACTION_TYPE_APPLICATION);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
component_button_toggled (GtkToggleButton *button, gpointer user_data)
|
||||
{
|
||||
if (gtk_toggle_button_get_active (button)) {
|
||||
gnome_vfs_mime_set_default_action_type (get_selected_item_mime_type (),
|
||||
GNOME_VFS_MIME_ACTION_TYPE_COMPONENT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
init_mime_capplet (void)
|
||||
{
|
||||
GtkWidget *main_vbox;
|
||||
GtkWidget *vbox, *hbox;
|
||||
GtkWidget *vbox, *hbox, *frame_vbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *fixed;
|
||||
GtkWidget *icon_entry;
|
||||
GtkWidget *mime_list_container;
|
||||
GtkWidget *extension_scroller;
|
||||
GtkWidget *action_frame;
|
||||
|
||||
gchar *title[2] = {"Extensions"};
|
||||
|
||||
|
@ -358,6 +383,31 @@ init_mime_capplet (void)
|
|||
gtk_signal_connect (GTK_OBJECT (extension_list), "unselect-row",
|
||||
GTK_SIGNAL_FUNC (extension_list_deselected), NULL);
|
||||
|
||||
/* Default Action frame */
|
||||
action_frame = gtk_frame_new (_("Default Action"));
|
||||
gtk_fixed_put (GTK_FIXED (fixed), action_frame, 355, 0);
|
||||
gtk_widget_set_usize (action_frame, 160, 115);
|
||||
|
||||
frame_vbox = gtk_vbox_new (FALSE, GNOME_PAD_SMALL);
|
||||
gtk_container_add (GTK_CONTAINER (action_frame), frame_vbox);
|
||||
|
||||
none_button = gtk_radio_button_new_with_label (NULL, _("Use None"));
|
||||
gtk_box_pack_start (GTK_BOX (frame_vbox), none_button, FALSE, FALSE, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (none_button), "toggled",
|
||||
GTK_SIGNAL_FUNC (none_button_toggled), NULL);
|
||||
|
||||
application_button = gtk_radio_button_new_with_label_from_widget (
|
||||
GTK_RADIO_BUTTON (none_button), _("Use Application"));
|
||||
gtk_box_pack_start (GTK_BOX (frame_vbox), application_button, FALSE, FALSE, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (application_button), "toggled",
|
||||
GTK_SIGNAL_FUNC (application_button_toggled), NULL);
|
||||
|
||||
component_button = gtk_radio_button_new_with_label_from_widget (
|
||||
GTK_RADIO_BUTTON (application_button), _("Use Viewer"));
|
||||
gtk_box_pack_start (GTK_BOX (frame_vbox), component_button, FALSE, FALSE, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (component_button), "toggled",
|
||||
GTK_SIGNAL_FUNC (component_button_toggled), NULL);
|
||||
|
||||
/* Mime list Add and Delete buttons */
|
||||
button = left_aligned_button (_("Add..."));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||
|
@ -367,7 +417,6 @@ init_mime_capplet (void)
|
|||
gtk_signal_connect (GTK_OBJECT (delete_button), "clicked", delete_mime_clicked, NULL);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), delete_button, FALSE, FALSE, 0);
|
||||
|
||||
|
||||
/* Set up enabled/disabled states of capplet buttons */
|
||||
|
||||
/* Yes, show all widgets */
|
||||
|
@ -396,6 +445,8 @@ init_mime_capplet (void)
|
|||
void
|
||||
nautilus_mime_type_capplet_update_info (const char *mime_type) {
|
||||
|
||||
GnomeVFSMimeAction *action;
|
||||
|
||||
/* Update frame label with mime type */
|
||||
gtk_frame_set_label (GTK_FRAME (info_frame), mime_type);
|
||||
|
||||
|
@ -409,6 +460,30 @@ nautilus_mime_type_capplet_update_info (const char *mime_type) {
|
|||
/* Set icon for mime type */
|
||||
gnome_icon_entry_set_icon (GNOME_ICON_ENTRY (icon_entry),
|
||||
gnome_vfs_mime_get_value (mime_type, "icon-filename"));
|
||||
|
||||
/* Indicate default action */
|
||||
action = gnome_vfs_mime_get_default_action (mime_type);
|
||||
if (action != NULL) {
|
||||
switch (action->action_type) {
|
||||
case GNOME_VFS_MIME_ACTION_TYPE_NONE:
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (none_button), TRUE);
|
||||
break;
|
||||
|
||||
case GNOME_VFS_MIME_ACTION_TYPE_APPLICATION:
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (application_button), TRUE);
|
||||
break;
|
||||
|
||||
case GNOME_VFS_MIME_ACTION_TYPE_COMPONENT:
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (component_button), TRUE);
|
||||
break;
|
||||
|
||||
default:
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (none_button), TRUE);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (none_button), TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue