Integrate panel toolbars properly outside scrolled areas.
This commit is contained in:
parent
a580cf281b
commit
2e580f0503
6 changed files with 83 additions and 36 deletions
|
@ -85,7 +85,8 @@ enum
|
|||
PROP_TRASH
|
||||
};
|
||||
|
||||
enum {
|
||||
enum
|
||||
{
|
||||
NEW_WINDOW,
|
||||
STATUSBAR_TEXT_CHANGED,
|
||||
ELEMENT_MOTION,
|
||||
|
@ -2487,9 +2488,6 @@ midori_browser_init (MidoriBrowser* browser)
|
|||
|
||||
// Bookmarks
|
||||
GtkWidget* box = gtk_vbox_new (FALSE, 0);
|
||||
GtkWidget* toolbar = gtk_ui_manager_get_widget (ui_manager, "/toolbar_bookmarks");
|
||||
gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU);
|
||||
gtk_box_pack_start (GTK_BOX (box), toolbar, FALSE, FALSE, 0);
|
||||
GtkTreeViewColumn* column;
|
||||
GtkCellRenderer* renderer_text;
|
||||
GtkCellRenderer* renderer_pixbuf;
|
||||
|
@ -2527,9 +2525,13 @@ midori_browser_init (MidoriBrowser* browser)
|
|||
gtk_box_pack_start (GTK_BOX (box), treeview, TRUE, TRUE, 0);
|
||||
priv->panel_bookmarks = treeview;
|
||||
gtk_widget_show_all (box);
|
||||
GtkWidget* toolbar = gtk_ui_manager_get_widget (ui_manager,
|
||||
"/toolbar_bookmarks");
|
||||
gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU);
|
||||
gtk_widget_show_all (toolbar);
|
||||
midori_panel_append_page (MIDORI_PANEL (priv->panel),
|
||||
box, "vcard", _("Bookmarks"));
|
||||
action = _action_by_name (browser, "PanelBookmarks");
|
||||
box, toolbar,
|
||||
"vcard", _("Bookmarks"));
|
||||
|
||||
// Transfers
|
||||
priv->panel_pageholder = g_object_new (MIDORI_TYPE_WEB_VIEW,
|
||||
|
@ -2537,14 +2539,16 @@ midori_browser_init (MidoriBrowser* browser)
|
|||
NULL);
|
||||
gtk_widget_show (priv->panel_pageholder);
|
||||
midori_panel_append_page (MIDORI_PANEL (priv->panel),
|
||||
priv->panel_pageholder,
|
||||
priv->panel_pageholder, NULL,
|
||||
"package", _("Transfers"));
|
||||
|
||||
// Console
|
||||
priv->panel_console = midori_console_new ();
|
||||
gtk_widget_show (priv->panel_console);
|
||||
toolbar = midori_console_get_toolbar (MIDORI_CONSOLE (priv->panel_console));
|
||||
gtk_widget_show (toolbar);
|
||||
midori_panel_append_page (MIDORI_PANEL (priv->panel),
|
||||
priv->panel_console,
|
||||
priv->panel_console, toolbar,
|
||||
"terminal", _("Console"));
|
||||
|
||||
// History
|
||||
|
@ -2553,7 +2557,7 @@ midori_browser_init (MidoriBrowser* browser)
|
|||
NULL);
|
||||
gtk_widget_show (priv->panel_pageholder);
|
||||
midori_panel_append_page (MIDORI_PANEL (priv->panel),
|
||||
priv->panel_pageholder,
|
||||
priv->panel_pageholder, NULL,
|
||||
"document-open-recent", _("History"));
|
||||
|
||||
// Pageholder
|
||||
|
@ -2562,7 +2566,7 @@ midori_browser_init (MidoriBrowser* browser)
|
|||
NULL);
|
||||
gtk_widget_show (priv->panel_pageholder);
|
||||
midori_panel_append_page (MIDORI_PANEL (priv->panel),
|
||||
priv->panel_pageholder,
|
||||
priv->panel_pageholder, NULL,
|
||||
GTK_STOCK_CONVERT, _("Pageholder"));
|
||||
|
||||
// Notebook, containing all web_views
|
||||
|
@ -3081,8 +3085,6 @@ void
|
|||
midori_browser_activate_action (MidoriBrowser* browser,
|
||||
const gchar* name)
|
||||
{
|
||||
MidoriBrowserPrivate* priv = browser->priv;
|
||||
|
||||
GtkAction* action = _action_by_name (browser, name);
|
||||
if (action)
|
||||
gtk_action_activate (action);
|
||||
|
|
|
@ -100,26 +100,6 @@ midori_console_init (MidoriConsole* console)
|
|||
|
||||
MidoriConsolePrivate* priv = console->priv;
|
||||
|
||||
// Create the toolbar
|
||||
GtkWidget* toolbar = gtk_toolbar_new ();
|
||||
gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_BOTH_HORIZ);
|
||||
gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_BUTTON);
|
||||
GtkToolItem* toolitem = gtk_tool_item_new ();
|
||||
// TODO: What about a find entry here that filters e.g. by url?
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
|
||||
toolitem = gtk_separator_tool_item_new ();
|
||||
gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (toolitem),
|
||||
FALSE);
|
||||
gtk_tool_item_set_expand (toolitem, TRUE);
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
|
||||
toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_CLEAR);
|
||||
gtk_tool_item_set_is_important (toolitem, TRUE);
|
||||
g_signal_connect (toolitem, "clicked",
|
||||
G_CALLBACK (midori_console_button_clear_clicked_cb), console);
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
|
||||
gtk_widget_show_all (toolbar);
|
||||
gtk_box_pack_start (GTK_BOX (console), toolbar, FALSE, FALSE, 0);
|
||||
|
||||
// Create the treeview
|
||||
GtkTreeViewColumn* column;
|
||||
GtkCellRenderer* renderer_text;
|
||||
|
@ -165,6 +145,49 @@ midori_console_new (void)
|
|||
return GTK_WIDGET (console);
|
||||
}
|
||||
|
||||
/**
|
||||
* midori_console_get_toolbar:
|
||||
*
|
||||
* Retrieves the toolbar of the console. A new widget is created on
|
||||
* the first call of this function.
|
||||
*
|
||||
* Return value: a new #MidoriConsole
|
||||
**/
|
||||
GtkWidget*
|
||||
midori_console_get_toolbar (MidoriConsole* console)
|
||||
{
|
||||
g_return_if_fail (MIDORI_IS_CONSOLE (console));
|
||||
|
||||
MidoriConsolePrivate* priv = console->priv;
|
||||
|
||||
static GtkWidget* toolbar = NULL;
|
||||
|
||||
if (!toolbar)
|
||||
{
|
||||
toolbar = gtk_toolbar_new ();
|
||||
gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_BOTH_HORIZ);
|
||||
gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_BUTTON);
|
||||
GtkToolItem* toolitem = gtk_tool_item_new ();
|
||||
// TODO: What about a find entry here that filters e.g. by url?
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
|
||||
gtk_widget_show (toolitem);
|
||||
toolitem = gtk_separator_tool_item_new ();
|
||||
gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (toolitem),
|
||||
FALSE);
|
||||
gtk_tool_item_set_expand (toolitem, TRUE);
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
|
||||
gtk_widget_show (toolitem);
|
||||
toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_CLEAR);
|
||||
gtk_tool_item_set_is_important (toolitem, TRUE);
|
||||
g_signal_connect (toolitem, "clicked",
|
||||
G_CALLBACK (midori_console_button_clear_clicked_cb), console);
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
|
||||
gtk_widget_show (toolitem);
|
||||
}
|
||||
|
||||
return toolbar;
|
||||
}
|
||||
|
||||
/**
|
||||
* midori_console_add:
|
||||
* @console: a #MidoriConsole
|
||||
|
|
|
@ -53,8 +53,11 @@ midori_console_get_type (void);
|
|||
GtkWidget*
|
||||
midori_console_new (void);
|
||||
|
||||
GtkWidget*
|
||||
midori_console_get_toolbar (MidoriConsole* console);
|
||||
|
||||
void
|
||||
midori_console_add (MidoriConsole* panel,
|
||||
midori_console_add (MidoriConsole* console,
|
||||
const gchar* message,
|
||||
gint line,
|
||||
const gchar* source_id);
|
||||
|
|
|
@ -21,6 +21,7 @@ struct _MidoriPanelPrivate
|
|||
GtkWidget* toolbar;
|
||||
GtkWidget* toolbar_label;
|
||||
GtkWidget* frame;
|
||||
GtkWidget* toolbook;
|
||||
GtkWidget* notebook;
|
||||
GSList* group;
|
||||
GtkMenu* menu;
|
||||
|
@ -216,6 +217,13 @@ midori_panel_init (MidoriPanel* panel)
|
|||
gtk_box_pack_start (GTK_BOX (vbox), labelbar, FALSE, FALSE, 0);
|
||||
gtk_widget_show_all (vbox);
|
||||
|
||||
// Create the toolbook
|
||||
priv->toolbook = gtk_notebook_new ();
|
||||
gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->toolbook), FALSE);
|
||||
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->toolbook), FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), priv->toolbook, FALSE, FALSE, 0);
|
||||
gtk_widget_show (priv->toolbook);
|
||||
|
||||
// Create the notebook
|
||||
priv->notebook = gtk_notebook_new ();
|
||||
gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->notebook), FALSE);
|
||||
|
@ -325,10 +333,12 @@ midori_panel_menu_item_activate_cb (GtkWidget* widget,
|
|||
* midori_panel_append_page:
|
||||
* @panel: a #MidoriPanel
|
||||
* @child: the child widget
|
||||
* @toolbar: a toolbar widget, or %NULL
|
||||
* @icon: a stock ID or icon name, or %NULL
|
||||
* @label: a string to use as the label, or %NULL
|
||||
*
|
||||
* Appends a new page to the panel.
|
||||
* Appends a new page to the panel. If @toolbar is specified it will
|
||||
* be packaged above @child.
|
||||
*
|
||||
* If @icon is an icon name, the according image is used as an
|
||||
* icon for this page.
|
||||
|
@ -342,11 +352,13 @@ midori_panel_menu_item_activate_cb (GtkWidget* widget,
|
|||
gint
|
||||
midori_panel_append_page (MidoriPanel* panel,
|
||||
GtkWidget* child,
|
||||
GtkWidget* toolbar,
|
||||
const gchar* icon,
|
||||
const gchar* label)
|
||||
{
|
||||
g_return_val_if_fail (MIDORI_IS_PANEL (panel), -1);
|
||||
g_return_val_if_fail (GTK_IS_WIDGET (child), -1);
|
||||
g_return_val_if_fail (!toolbar || GTK_IS_WIDGET (toolbar), -1);
|
||||
|
||||
MidoriPanelPrivate* priv = panel->priv;
|
||||
|
||||
|
@ -369,6 +381,11 @@ midori_panel_append_page (MidoriPanel* panel,
|
|||
gtk_container_add (GTK_CONTAINER (scrolled), widget);
|
||||
gtk_container_add (GTK_CONTAINER (priv->notebook), scrolled);
|
||||
|
||||
if (!toolbar)
|
||||
toolbar = gtk_event_box_new ();
|
||||
gtk_widget_show (toolbar);
|
||||
gtk_container_add (GTK_CONTAINER (priv->toolbook), toolbar);
|
||||
|
||||
guint n = midori_panel_page_num (panel, child);
|
||||
|
||||
const gchar* text = label ? label : _("Untitled");
|
||||
|
@ -533,6 +550,7 @@ midori_panel_set_current_page (MidoriPanel* panel,
|
|||
|
||||
MidoriPanelPrivate* priv = panel->priv;
|
||||
|
||||
gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->toolbook), n);
|
||||
gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), n);
|
||||
GtkWidget* child = midori_panel_get_nth_page (panel, n);
|
||||
if (child)
|
||||
|
|
|
@ -64,6 +64,7 @@ midori_panel_new (void);
|
|||
gint
|
||||
midori_panel_append_page (MidoriPanel* panel,
|
||||
GtkWidget* child,
|
||||
GtkWidget* toolbar,
|
||||
const gchar* icon,
|
||||
const gchar* label);
|
||||
|
||||
|
|
|
@ -570,7 +570,7 @@ midori_web_view_settings_notify (MidoriWebSettings* web_settings,
|
|||
priv->middle_click_opens_selection = g_value_get_boolean (&value);
|
||||
else if (!g_object_class_find_property (G_OBJECT_GET_CLASS (web_settings),
|
||||
name))
|
||||
g_warning("Unexpected setting '%s'", name);
|
||||
g_warning (_("Unexpected setting '%s'"), name);
|
||||
g_value_unset (&value);
|
||||
}
|
||||
|
||||
|
@ -1036,7 +1036,7 @@ midori_web_view_get_progress (MidoriWebView* web_view)
|
|||
}
|
||||
|
||||
/**
|
||||
* midori_web_view_get_uri:
|
||||
* midori_web_view_get_display_uri:
|
||||
* @web_view: a #MidoriWebView
|
||||
*
|
||||
* Retrieves a string that is suitable for displaying, particularly an
|
||||
|
|
Loading…
Reference in a new issue