mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-04 01:31:13 +00:00
Use a toolbar with symbolic icons under scrolled lists
This commit is contained in:
parent
95ad67d927
commit
b64c6f2fd3
@ -63,6 +63,8 @@
|
||||
#include "gtksizerequest.h"
|
||||
#include "gtkstock.h"
|
||||
#include "gtktable.h"
|
||||
#include "gtktoolbar.h"
|
||||
#include "gtktoolbutton.h"
|
||||
#include "gtktooltip.h"
|
||||
#include "gtktreednd.h"
|
||||
#include "gtktreeprivate.h"
|
||||
@ -2451,27 +2453,24 @@ filter_create (GtkFileChooserDefault *impl)
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
button_new (GtkFileChooserDefault *impl,
|
||||
const char *text,
|
||||
const char *stock_id,
|
||||
gboolean sensitive,
|
||||
gboolean show,
|
||||
GCallback callback)
|
||||
toolbutton_new (GtkFileChooserDefault *impl,
|
||||
const char *icon_name,
|
||||
gboolean sensitive,
|
||||
gboolean show,
|
||||
GCallback callback)
|
||||
{
|
||||
GtkWidget *button;
|
||||
GtkWidget *image;
|
||||
GtkToolItem *item;
|
||||
|
||||
button = gtk_button_new_with_mnemonic (text);
|
||||
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
|
||||
gtk_button_set_image (GTK_BUTTON (button), image);
|
||||
item = gtk_tool_button_new (NULL, NULL);
|
||||
gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), icon_name);
|
||||
|
||||
gtk_widget_set_sensitive (button, sensitive);
|
||||
g_signal_connect (button, "clicked", callback, impl);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (item), sensitive);
|
||||
g_signal_connect (item, "clicked", callback, impl);
|
||||
|
||||
if (show)
|
||||
gtk_widget_show (button);
|
||||
gtk_widget_show (GTK_WIDGET (item));
|
||||
|
||||
return button;
|
||||
return GTK_WIDGET (item);
|
||||
}
|
||||
|
||||
/* Looks for a path among the shortcuts; returns its index or -1 if it doesn't exist */
|
||||
@ -3724,46 +3723,53 @@ shortcuts_pane_create (GtkFileChooserDefault *impl,
|
||||
GtkSizeGroup *size_group)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *toolbar;
|
||||
GtkWidget *widget;
|
||||
GtkStyleContext *context;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* Shortcuts tree */
|
||||
|
||||
widget = shortcuts_list_create (impl);
|
||||
|
||||
gtk_size_group_add_widget (size_group, widget);
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), widget, TRUE, TRUE, 0);
|
||||
|
||||
/* Box for buttons */
|
||||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE);
|
||||
gtk_size_group_add_widget (size_group, hbox);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
toolbar = gtk_toolbar_new ();
|
||||
gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, FALSE, 0);
|
||||
gtk_widget_show (toolbar);
|
||||
|
||||
context = gtk_widget_get_style_context (toolbar);
|
||||
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
|
||||
|
||||
/* Add bookmark button */
|
||||
|
||||
impl->browse_shortcuts_add_button = button_new (impl,
|
||||
_("_Add"),
|
||||
GTK_STOCK_ADD,
|
||||
FALSE,
|
||||
TRUE,
|
||||
G_CALLBACK (add_bookmark_button_clicked_cb));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), impl->browse_shortcuts_add_button, TRUE, TRUE, 0);
|
||||
impl->browse_shortcuts_add_button = toolbutton_new (impl,
|
||||
"list-add-symbolic",
|
||||
FALSE,
|
||||
TRUE,
|
||||
G_CALLBACK (add_bookmark_button_clicked_cb));
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (impl->browse_shortcuts_add_button), 0);
|
||||
gtk_widget_set_tooltip_text (impl->browse_shortcuts_add_button,
|
||||
_("Add the selected folder to the Bookmarks"));
|
||||
|
||||
/* Remove bookmark button */
|
||||
|
||||
impl->browse_shortcuts_remove_button = button_new (impl,
|
||||
_("_Remove"),
|
||||
GTK_STOCK_REMOVE,
|
||||
FALSE,
|
||||
TRUE,
|
||||
G_CALLBACK (remove_bookmark_button_clicked_cb));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), impl->browse_shortcuts_remove_button, TRUE, TRUE, 0);
|
||||
impl->browse_shortcuts_remove_button = toolbutton_new (impl,
|
||||
"list-remove-symbolic",
|
||||
FALSE,
|
||||
TRUE,
|
||||
G_CALLBACK (remove_bookmark_button_clicked_cb));
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (impl->browse_shortcuts_remove_button), 1);
|
||||
gtk_widget_set_tooltip_text (impl->browse_shortcuts_remove_button,
|
||||
_("Remove the selected bookmark"));
|
||||
|
||||
@ -4454,6 +4460,7 @@ file_pane_create (GtkFileChooserDefault *impl,
|
||||
|
||||
widget = create_file_list (impl);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
|
||||
gtk_size_group_add_widget (size_group, widget);
|
||||
|
||||
/* Preview */
|
||||
|
||||
@ -4470,7 +4477,6 @@ file_pane_create (GtkFileChooserDefault *impl,
|
||||
gtk_widget_show (widget);
|
||||
gtk_box_pack_end (GTK_BOX (impl->filter_combo_hbox), widget, FALSE, FALSE, 0);
|
||||
|
||||
gtk_size_group_add_widget (size_group, impl->filter_combo_hbox);
|
||||
gtk_box_pack_end (GTK_BOX (vbox), impl->filter_combo_hbox, FALSE, FALSE, 0);
|
||||
|
||||
return vbox;
|
||||
@ -4989,7 +4995,7 @@ browse_widgets_create (GtkFileChooserDefault *impl)
|
||||
GtkWidget *widget;
|
||||
GtkSizeGroup *size_group;
|
||||
|
||||
/* size group is used by the [+][-] buttons and the filter combo */
|
||||
/* size group is used by the scrolled windows of the panes */
|
||||
size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
@ -5032,6 +5038,7 @@ browse_widgets_create (GtkFileChooserDefault *impl)
|
||||
gtk_box_pack_start (GTK_BOX (impl->location_entry_box), impl->location_label, FALSE, FALSE, 0);
|
||||
|
||||
/* Paned widget */
|
||||
|
||||
hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_widget_show (hpaned);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hpaned, TRUE, TRUE, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user