File filter - include Clear icon
[geeqie.git] / src / view_file / view_file.c
index ba0f51e..46d823d 100644 (file)
@@ -1155,6 +1155,15 @@ static void case_sensitive_cb(GtkWidget *widget, gpointer data)
        vf_refresh(vf);
 }
 
+static void file_filter_clear_cb(GtkEntry *entry, GtkEntryIconPosition pos, GdkEvent *event, gpointer userdata)
+{
+       if (pos == GTK_ENTRY_ICON_SECONDARY)
+               {
+               gtk_entry_set_text(GTK_ENTRY(userdata), "");
+               gtk_widget_grab_focus(GTK_WIDGET(userdata));
+               }
+}
+
 static GtkWidget *vf_file_filter_init(ViewFile *vf)
 {
        GtkWidget *frame = gtk_frame_new(NULL);
@@ -1165,12 +1174,19 @@ static GtkWidget *vf_file_filter_init(ViewFile *vf)
        GtkWidget *menubar;
        GtkWidget *menuitem;
        GtkWidget *case_sensitive;
+       GtkWidget *box;
+       GtkWidget *icon;
+       GtkWidget *label;
 
        vf->file_filter.combo = gtk_combo_box_text_new_with_entry();
        combo_entry = gtk_bin_get_child(GTK_BIN(vf->file_filter.combo));
        gtk_widget_show(gtk_bin_get_child(GTK_BIN(vf->file_filter.combo)));
        gtk_widget_show((GTK_WIDGET(vf->file_filter.combo)));
-       gtk_widget_set_tooltip_text(GTK_WIDGET(vf->file_filter.combo), "Use regular expressions");
+       gtk_widget_set_tooltip_text(GTK_WIDGET(vf->file_filter.combo), _("Use regular expressions"));
+
+       gtk_entry_set_icon_from_stock(GTK_ENTRY(combo_entry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR);
+       gtk_entry_set_icon_tooltip_text (GTK_ENTRY(combo_entry), GTK_ENTRY_ICON_SECONDARY, _("Clear"));
+       g_signal_connect(GTK_ENTRY(combo_entry), "icon-press", G_CALLBACK(file_filter_clear_cb), combo_entry);
 
        work = history_list_get_by_key("file_filter");
        while (work)
@@ -1196,7 +1212,7 @@ static GtkWidget *vf_file_filter_init(ViewFile *vf)
        gtk_container_add(GTK_CONTAINER(frame), hbox);
        gtk_widget_show(hbox);
 
-       case_sensitive = gtk_check_button_new_with_label("Case");
+       case_sensitive = gtk_check_button_new_with_label(_("Case"));
        gtk_box_pack_start(GTK_BOX(hbox), case_sensitive, FALSE, FALSE, 0);
        gtk_widget_set_tooltip_text(GTK_WIDGET(case_sensitive), _("Case sensitive"));
        g_signal_connect(G_OBJECT(case_sensitive), "clicked", G_CALLBACK(case_sensitive_cb), vf);
@@ -1206,13 +1222,20 @@ static GtkWidget *vf_file_filter_init(ViewFile *vf)
        gtk_box_pack_start(GTK_BOX(hbox), menubar, FALSE, TRUE, 0);
        gtk_widget_show(menubar);
 
-       menuitem = gtk_menu_item_new_with_label(_("Class"));
-       gtk_widget_set_tooltip_text(GTK_WIDGET(menuitem), _("Select Class filter"));
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM (menuitem), class_filter_menu(vf));
-       gtk_menu_shell_append(GTK_MENU_SHELL (menubar), menuitem);
-       gtk_widget_show(menuitem);
+       box = gtk_hbox_new(GTK_ORIENTATION_HORIZONTAL, PREF_PAD_GAP);
+       icon = gtk_image_new_from_icon_name("pan-down", GTK_ICON_SIZE_MENU);
+       label = gtk_label_new(_("Class"));
+
+       gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
+       gtk_box_pack_end(GTK_BOX(box), icon, FALSE, FALSE, 0);
 
-       gtk_widget_show(menuitem);
+       menuitem = gtk_menu_item_new();
+
+       gtk_widget_set_tooltip_text(GTK_WIDGET(menuitem), _("Select Class filter"));
+       gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), class_filter_menu(vf));
+       gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menuitem);
+       gtk_container_add(GTK_CONTAINER(menuitem), box);
+       gtk_widget_show_all(menuitem);
 
        return frame;
 }