gtk_widget_hide (widget);
#if GTK_CHECK_VERSION (2, 16, 0)
action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget));
#else
gtk_widget_hide (widget);
#if GTK_CHECK_VERSION (2, 16, 0)
action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget));
#else
flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model,
gtk_action_get_name (action));
if (!(flags & EGG_TB_MODEL_NAME_INFINITE))
flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model,
gtk_action_get_name (action));
if (!(flags & EGG_TB_MODEL_NAME_INFINITE))
flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model,
gtk_action_get_name (action));
if (!(flags & EGG_TB_MODEL_NAME_INFINITE))
flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model,
gtk_action_get_name (action));
if (!(flags & EGG_TB_MODEL_NAME_INFINITE))
g_return_if_fail (EGG_IS_EDITABLE_TOOLBAR (etoolbar));
model = egg_editable_toolbar_get_model (etoolbar);
g_return_if_fail (EGG_IS_EDITABLE_TOOLBAR (etoolbar));
model = egg_editable_toolbar_get_model (etoolbar);
name = g_object_get_data (G_OBJECT (widget), EGG_ITEM_NAME);
if (name == NULL)
{
name = g_object_get_data (G_OBJECT (gtk_widget_get_parent (widget)), EGG_ITEM_NAME);
g_return_if_fail (name != NULL);
}
name = g_object_get_data (G_OBJECT (widget), EGG_ITEM_NAME);
if (name == NULL)
{
name = g_object_get_data (G_OBJECT (gtk_widget_get_parent (widget)), EGG_ITEM_NAME);
g_return_if_fail (name != NULL);
}
gdk_event_get_state (realevent, &event.state);
gdk_event_get_coords (realevent, &event.x, &event.y);
gdk_event_get_root_coords (realevent, &event.x_root, &event.y_root);
gdk_event_get_state (realevent, &event.state);
gdk_event_get_coords (realevent, &event.x, &event.y);
gdk_event_get_root_coords (realevent, &event.x_root, &event.y_root);
gtk_drag_begin (toolitem, list, GDK_ACTION_MOVE, 1, (GdkEvent *)&event);
gtk_target_list_unref (list);
}
gtk_drag_begin (toolitem, list, GDK_ACTION_MOVE, 1, (GdkEvent *)&event);
gtk_target_list_unref (list);
}
GTK_TOOL_ITEM (toolitem));
egg_toolbars_model_remove_item (etoolbar->priv->model,
GTK_TOOL_ITEM (toolitem));
egg_toolbars_model_remove_item (etoolbar->priv->model,
egg_editable_toolbar_set_selected (etoolbar, toolbar);
g_object_notify (G_OBJECT (etoolbar), "selected");
egg_editable_toolbar_set_selected (etoolbar, toolbar);
g_object_notify (G_OBJECT (etoolbar), "selected");
etoolbar->priv->popup_path));
g_return_if_fail (menu != NULL);
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, button_number, gtk_get_current_event_time ());
etoolbar->priv->popup_path));
g_return_if_fail (menu != NULL);
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, button_number, gtk_get_current_event_time ());
egg_editable_toolbar_set_selected (etoolbar, widget);
g_object_notify (G_OBJECT (etoolbar), "selected");
egg_editable_toolbar_set_selected (etoolbar, widget);
g_object_notify (G_OBJECT (etoolbar), "selected");
etoolbar->priv->popup_path));
g_return_val_if_fail (menu != NULL, FALSE);
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, event->time);
g_signal_connect_object (menu, "selection-done",
G_CALLBACK (popup_context_deactivate),
etoolbar, 0);
etoolbar->priv->popup_path));
g_return_val_if_fail (menu != NULL, FALSE);
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, event->time);
g_signal_connect_object (menu, "selection-done",
G_CALLBACK (popup_context_deactivate),
etoolbar, 0);
name = g_object_get_data (G_OBJECT (item), EGG_ITEM_NAME);
action = name ? find_action (etoolbar, name) : NULL;
name = g_object_get_data (G_OBJECT (item), EGG_ITEM_NAME);
action = name ? find_action (etoolbar, name) : NULL;
if (action)
{
g_object_notify (G_OBJECT (action), "sensitive");
}
gtk_tool_item_set_use_drag_window (item,
if (action)
{
g_object_notify (G_OBJECT (action), "sensitive");
}
gtk_tool_item_set_use_drag_window (item,
cursor = gdk_cursor_new_for_display (gdk_screen_get_display (screen),
GDK_HAND2);
gdk_window_set_cursor (widget->window, cursor);
cursor = gdk_cursor_new_for_display (gdk_screen_get_display (screen),
GDK_HAND2);
gdk_window_set_cursor (widget->window, cursor);
MIN (width, height), 0, NULL);
}
else if (stock_id)
MIN (width, height), 0, NULL);
}
else if (stock_id)
pixbuf = gtk_widget_render_icon (widget, stock_id,
GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
}
pixbuf = gtk_widget_render_icon (widget, stock_id,
GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
}
if (GTK_IS_TOOL_ITEM (proxy))
{
g_signal_connect_object (proxy, "drag_begin",
if (GTK_IS_TOOL_ITEM (proxy))
{
g_signal_connect_object (proxy, "drag_begin",
etoolbar, 0);
g_signal_connect_object (proxy, "drag_end",
G_CALLBACK (drag_end_cb),
etoolbar, 0);
g_signal_connect_object (proxy, "drag_data_get",
etoolbar, 0);
g_signal_connect_object (proxy, "drag_end",
G_CALLBACK (drag_end_cb),
etoolbar, 0);
g_signal_connect_object (proxy, "drag_data_get",
etoolbar, 0);
g_signal_connect_object (proxy, "drag_data_delete",
G_CALLBACK (drag_data_delete_cb),
etoolbar, 0);
}
etoolbar, 0);
g_signal_connect_object (proxy, "drag_data_delete",
G_CALLBACK (drag_data_delete_cb),
etoolbar, 0);
}
if (GTK_IS_BUTTON (proxy) || GTK_IS_TOOL_ITEM (proxy))
{
g_signal_connect_object (proxy, "button-press-event",
if (GTK_IS_BUTTON (proxy) || GTK_IS_TOOL_ITEM (proxy))
{
g_signal_connect_object (proxy, "button-press-event",
if (strcmp (name, "_separator") == 0)
{
item = gtk_separator_tool_item_new ();
if (strcmp (name, "_separator") == 0)
{
item = gtk_separator_tool_item_new ();
{
GtkAction *action = find_action (etoolbar, name);
if (action == NULL) return NULL;
{
GtkAction *action = find_action (etoolbar, name);
if (action == NULL) return NULL;
item = GTK_TOOL_ITEM (gtk_action_create_tool_item (action));
/* Normally done on-demand by the GtkUIManager, but no
item = GTK_TOOL_ITEM (gtk_action_create_tool_item (action));
/* Normally done on-demand by the GtkUIManager, but no
*/
gtk_action_set_accel_group
(action, gtk_ui_manager_get_accel_group(etoolbar->priv->manager));
*/
gtk_action_set_accel_group
(action, gtk_ui_manager_get_accel_group(etoolbar->priv->manager));
g_signal_connect_object (action, "notify::sensitive",
G_CALLBACK (action_sensitive_cb), item, 0);
}
g_signal_connect_object (action, "notify::sensitive",
G_CALLBACK (action_sensitive_cb), item, 0);
}
gtk_widget_show (GTK_WIDGET (item));
g_object_set_data_full (G_OBJECT (item), EGG_ITEM_NAME,
gtk_widget_show (GTK_WIDGET (item));
g_object_set_data_full (G_OBJECT (item), EGG_ITEM_NAME,
/* Find out where the drop is occuring, and the name of what is being dropped. */
if (selection_data->length >= 0)
{
/* Find out where the drop is occuring, and the name of what is being dropped. */
if (selection_data->length >= 0)
{
if (name != NULL && etoolbar->priv->dnd_toolbar == toolbar && !used)
{
etoolbar->priv->dnd_toolitem = create_item_from_action (etoolbar, name);
if (name != NULL && etoolbar->priv->dnd_toolbar == toolbar && !used)
{
etoolbar->priv->dnd_toolitem = create_item_from_action (etoolbar, name);
gtk_toolbar_set_drop_highlight_item (toolbar, NULL, 0);
etoolbar->priv->dnd_toolbar = NULL;
etoolbar->priv->dnd_toolitem = NULL;
gtk_toolbar_set_drop_highlight_item (toolbar, NULL, 0);
etoolbar->priv->dnd_toolbar = NULL;
etoolbar->priv->dnd_toolitem = NULL;
/* If we don't have a name to use yet, try to create one. */
if (name == NULL && selection_data->length >= 0)
{
name = egg_toolbars_model_get_name (etoolbar->priv->model, type, data, TRUE);
}
/* If we don't have a name to use yet, try to create one. */
if (name == NULL && selection_data->length >= 0)
{
name = egg_toolbars_model_get_name (etoolbar->priv->model, type, data, TRUE);
}
if (name != NULL && !used)
{
gint tpos = get_toolbar_position (etoolbar, GTK_WIDGET (toolbar));
if (name != NULL && !used)
{
gint tpos = get_toolbar_position (etoolbar, GTK_WIDGET (toolbar));
gtk_drag_finish (context, TRUE, context->action == GDK_ACTION_MOVE, time);
}
else
gtk_drag_finish (context, TRUE, context->action == GDK_ACTION_MOVE, time);
}
else
gtk_drag_finish (context, FALSE, context->action == GDK_ACTION_MOVE, time);
}
}
gtk_drag_finish (context, FALSE, context->action == GDK_ACTION_MOVE, time);
}
}
gtk_drag_get_data (GTK_WIDGET (toolbar), context, target, time);
return TRUE;
}
gtk_drag_get_data (GTK_WIDGET (toolbar), context, target, time);
return TRUE;
}
etoolbar->priv->dnd_pending++;
gtk_drag_get_data (GTK_WIDGET (toolbar), context, target, time);
}
etoolbar->priv->dnd_pending++;
gtk_drag_get_data (GTK_WIDGET (toolbar), context, target, time);
}
/* If a highlight item is available, use it. */
else if (etoolbar->priv->dnd_toolitem)
{
/* If a highlight item is available, use it. */
else if (etoolbar->priv->dnd_toolitem)
{
gtk_drag_dest_set (GTK_WIDGET (toolbar), 0,
dest_drag_types, G_N_ELEMENTS (dest_drag_types),
GDK_ACTION_MOVE | GDK_ACTION_COPY);
gtk_drag_dest_set (GTK_WIDGET (toolbar), 0,
dest_drag_types, G_N_ELEMENTS (dest_drag_types),
GDK_ACTION_MOVE | GDK_ACTION_COPY);
/* Add any specialist drag-drop abilities. */
targets = gtk_drag_dest_get_target_list (GTK_WIDGET (toolbar));
list = egg_toolbars_model_get_types (etoolbar->priv->model);
/* Add any specialist drag-drop abilities. */
targets = gtk_drag_dest_get_target_list (GTK_WIDGET (toolbar));
list = egg_toolbars_model_get_types (etoolbar->priv->model);
visible = gtk_toggle_action_get_active (action);
for (i = 0; i < priv->visibility_actions->len; i++)
if (g_ptr_array_index (priv->visibility_actions, i) == action)
break;
visible = gtk_toggle_action_get_active (action);
for (i = 0; i < priv->visibility_actions->len; i++)
if (g_ptr_array_index (priv->visibility_actions, i) == action)
break;
if (priv == NULL || priv->model == NULL || priv->manager == NULL ||
priv->visibility_paths == NULL || priv->actions == NULL)
{
if (priv == NULL || priv->model == NULL || priv->manager == NULL ||
priv->visibility_paths == NULL || priv->actions == NULL)
{
if (priv->visibility_id != 0)
{
gtk_ui_manager_remove_ui (priv->manager, priv->visibility_id);
if (priv->visibility_id != 0)
{
gtk_ui_manager_remove_ui (priv->manager, priv->visibility_id);
-
- showing = gtk_widget_get_visible (GTK_WIDGET (etoolbar));
-
+
+#if GTK_CHECK_VERSION(2,20,0)
+ showing = gtk_widget_get_visible (etoolbar);
+#else
+ showing = GTK_WIDGET_VISIBLE (etoolbar);
+#endif
+
tmp = g_string_free (string, FALSE);
for (j = 0, k = 0; tmp[j]; j++)
{
tmp = g_string_free (string, FALSE);
for (j = 0, k = 0; tmp[j]; j++)
{
if (i >= priv->visibility_actions->len)
{
action = gtk_toggle_action_new (action_name, action_label, NULL, NULL);
if (i >= priv->visibility_actions->len)
{
action = gtk_toggle_action_new (action_name, action_label, NULL, NULL);
g_object_set (action, "label", action_label, NULL);
}
g_object_set (action, "label", action_label, NULL);
}
& EGG_TB_MODEL_NOT_REMOVABLE) == 0);
gtk_action_set_sensitive (GTK_ACTION (action), showing);
& EGG_TB_MODEL_NOT_REMOVABLE) == 0);
gtk_action_set_sensitive (GTK_ACTION (action), showing);
gtk_toggle_action_set_active (action, gtk_widget_get_visible
(get_dock_nth (etoolbar, i)));
gtk_toggle_action_set_active (action, gtk_widget_get_visible
(get_dock_nth (etoolbar, i)));
for (list = priv->visibility_paths; list != NULL; list = g_list_next (list))
{
gtk_ui_manager_add_ui (priv->manager, priv->visibility_id,
(const char *)list->data, action_name, action_name,
GTK_UI_MANAGER_MENUITEM, FALSE);
}
for (list = priv->visibility_paths; list != NULL; list = g_list_next (list))
{
gtk_ui_manager_add_ui (priv->manager, priv->visibility_id,
(const char *)list->data, action_name, action_name,
GTK_UI_MANAGER_MENUITEM, FALSE);
}
while (i < priv->visibility_actions->len)
{
action = g_ptr_array_index (priv->visibility_actions, i);
while (i < priv->visibility_actions->len)
{
action = g_ptr_array_index (priv->visibility_actions, i);
gtk_box_pack_start (GTK_BOX (hbox), toolbar, TRUE, TRUE, 0);
g_signal_connect (toolbar, "drag_drop",
gtk_box_pack_start (GTK_BOX (hbox), toolbar, TRUE, TRUE, 0);
g_signal_connect (toolbar, "drag_drop",
g_signal_connect (toolbar, "drag_motion",
G_CALLBACK (toolbar_drag_motion_cb), etoolbar);
g_signal_connect (toolbar, "drag_leave",
g_signal_connect (toolbar, "drag_motion",
G_CALLBACK (toolbar_drag_motion_cb), etoolbar);
g_signal_connect (toolbar, "drag_leave",
G_CALLBACK (popup_context_menu_cb), etoolbar);
configure_drag_dest (etoolbar, GTK_TOOLBAR (toolbar));
G_CALLBACK (popup_context_menu_cb), etoolbar);
configure_drag_dest (etoolbar, GTK_TOOLBAR (toolbar));
gtk_box_pack_end (GTK_BOX (dock), toolbar, FALSE, TRUE, 0);
gtk_widget_show (toolbar);
gtk_box_pack_end (GTK_BOX (dock), toolbar, FALSE, TRUE, 0);
gtk_widget_show (toolbar);
gtk_widget_set_size_request (dock, -1, -1);
gtk_widget_queue_resize_no_redraw (dock);
}
gtk_widget_set_size_request (dock, -1, -1);
gtk_widget_queue_resize_no_redraw (dock);
}
gtk_box_reorder_child (GTK_BOX (etoolbar), dock, position);
gtk_widget_show_all (dock);
gtk_box_reorder_child (GTK_BOX (etoolbar), dock, position);
gtk_widget_show_all (dock);
toolbar = get_toolbar_nth (etoolbar, tpos);
item = create_item_from_position (etoolbar, tpos, ipos);
if (item == NULL) return;
toolbar = get_toolbar_nth (etoolbar, tpos);
item = create_item_from_position (etoolbar, tpos, ipos);
if (item == NULL) return;
connect_widget_signals (GTK_WIDGET (item), etoolbar);
configure_item_tooltip (item);
configure_item_cursor (item, etoolbar);
configure_item_sensitivity (item, etoolbar);
connect_widget_signals (GTK_WIDGET (item), etoolbar);
configure_item_tooltip (item);
configure_item_cursor (item, etoolbar);
configure_item_sensitivity (item, etoolbar);
dock = get_dock_nth (etoolbar, tpos);
gtk_widget_set_size_request (dock, -1, -1);
gtk_widget_queue_resize_no_redraw (dock);
dock = get_dock_nth (etoolbar, tpos);
gtk_widget_set_size_request (dock, -1, -1);
gtk_widget_queue_resize_no_redraw (dock);
connect_widget_signals (GTK_WIDGET (item), etoolbar);
configure_item_tooltip (item);
configure_item_sensitivity (item, etoolbar);
connect_widget_signals (GTK_WIDGET (item), etoolbar);
configure_item_tooltip (item);
configure_item_sensitivity (item, etoolbar);
g_signal_connect (etoolbar, "notify::visible",
G_CALLBACK (toolbar_visibility_refresh), NULL);
}
g_signal_connect (etoolbar, "notify::visible",
G_CALLBACK (toolbar_visibility_refresh), NULL);
}
{ "RemoveToolbar", GTK_STOCK_DELETE, N_("_Delete Toolbar"), NULL,
N_("Remove the selected toolbar"), G_CALLBACK (remove_toolbar_cb) },
};
{ "RemoveToolbar", GTK_STOCK_DELETE, N_("_Delete Toolbar"), NULL,
N_("Remove the selected toolbar"), G_CALLBACK (remove_toolbar_cb) },
};
etoolbar->priv->manager = g_object_ref (manager);
etoolbar->priv->actions = gtk_action_group_new ("ToolbarActions");
etoolbar->priv->manager = g_object_ref (manager);
etoolbar->priv->actions = gtk_action_group_new ("ToolbarActions");
toolbar = (widget != NULL) ? gtk_widget_get_ancestor (widget, GTK_TYPE_TOOLBAR) : NULL;
toolitem = (widget != NULL) ? gtk_widget_get_ancestor (widget, GTK_TYPE_TOOL_ITEM) : NULL;
toolbar = (widget != NULL) ? gtk_widget_get_ancestor (widget, GTK_TYPE_TOOLBAR) : NULL;
toolitem = (widget != NULL) ? gtk_widget_get_ancestor (widget, GTK_TYPE_TOOL_ITEM) : NULL;
gtk_action_set_visible (find_action (etoolbar, "RemoveToolbar"), (toolbar != NULL) && (etoolbar->priv->edit_mode > 0));
gtk_action_set_visible (find_action (etoolbar, "RemoveToolItem"), (toolitem != NULL) && editable);
gtk_action_set_visible (find_action (etoolbar, "MoveToolItem"), (toolitem != NULL) && editable);
gtk_action_set_visible (find_action (etoolbar, "RemoveToolbar"), (toolbar != NULL) && (etoolbar->priv->edit_mode > 0));
gtk_action_set_visible (find_action (etoolbar, "RemoveToolItem"), (toolitem != NULL) && editable);
gtk_action_set_visible (find_action (etoolbar, "MoveToolItem"), (toolitem != NULL) && editable);
toolbar = get_toolbar_nth (etoolbar, i);
n_items = gtk_toolbar_get_n_items (GTK_TOOLBAR (toolbar));
toolbar = get_toolbar_nth (etoolbar, i);
n_items = gtk_toolbar_get_n_items (GTK_TOOLBAR (toolbar));
configure_item_cursor (item, etoolbar);
configure_item_sensitivity (item, etoolbar);
}
configure_item_cursor (item, etoolbar);
configure_item_sensitivity (item, etoolbar);
}
if (!gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
GTK_ICON_SIZE_LARGE_TOOLBAR,
if (!gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
GTK_ICON_SIZE_LARGE_TOOLBAR,
gtk_container_add (GTK_CONTAINER (window), widget);
gtk_widget_realize (window);
gtk_widget_show (widget);
gtk_container_add (GTK_CONTAINER (window), widget);
gtk_widget_realize (window);
gtk_widget_show (widget);
allocation.height = icon_height;
gtk_widget_size_allocate (window, &allocation);
gtk_widget_size_request (window, &requisition);
allocation.height = icon_height;
gtk_widget_size_allocate (window, &allocation);
gtk_widget_size_request (window, &requisition);
/* Create a pixmap */
visual = gtk_widget_get_visual (window);
pixmap = gdk_pixmap_new (NULL, icon_width, icon_height, visual->depth);
/* Create a pixmap */
visual = gtk_widget_get_visual (window);
pixmap = gdk_pixmap_new (NULL, icon_width, icon_height, visual->depth);
gtk_widget_ensure_style (window);
g_assert (window->style);
g_assert (window->style->font_desc);
gtk_widget_ensure_style (window);
g_assert (window->style);
g_assert (window->style->font_desc);
fake_expose_widget (window, pixmap);
fake_expose_widget (widget, pixmap);
fake_expose_widget (window, pixmap);
fake_expose_widget (widget, pixmap);
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, icon_width, icon_height);
gdk_pixbuf_get_from_drawable (pixbuf, pixmap, NULL, 0, 0, 0, 0, icon_width, icon_height);
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, icon_width, icon_height);
gdk_pixbuf_get_from_drawable (pixbuf, pixmap, NULL, 0, 0, 0, 0, icon_width, icon_height);