Lines Matching refs:item

3  * gdl-dock-item.c
41 #include "gdl-dock-item.h"
42 #include "gdl-dock-item-grip.h"
97 static void gdl_dock_item_move_focus_child (GdlDockItem *item,
116 static void gdl_dock_item_popup_menu (GdlDockItem *item,
119 static void gdl_dock_item_drag_start (GdlDockItem *item);
120 static void gdl_dock_item_drag_end (GdlDockItem *item,
128 GdlDockItem *item);
131 GdlDockItem *item);
134 GdlDockItem *item);
136 static void gdl_dock_item_showhide_grip (GdlDockItem *item);
138 static void gdl_dock_item_real_set_orientation (GdlDockItem *item,
171 #define GDL_DOCK_ITEM_GRIP_SHOWN(item) \
172 (GDL_DOCK_ITEM_HAS_GRIP (item))
289 * The orientation of the docking item. If the orientation is set to
291 * the top of the edge of item (if it is not hidden). If the
293 * widget will be shown down the left edge of the item (even if the
299 _("Orientation of the docking item"),
315 _("If set, the dock item can be resized when "
323 _("General behavior for the dock item (i.e. "
332 _("If set, the dock item cannot be dragged around "
341 _("Preferred width for the dock item"),
348 _("Preferred height for the dock item"),
356 * @item: The dock item which is being dragged.
358 * Signals that the dock item has begun to be dragged.
373 * @item: The dock item which is being dragged.
374 * @x: The x-position that the dock item has been dragged to.
375 * @y: The y-position that the dock item has been dragged to.
377 * Signals that a dock item dragging motion event has occured.
394 * @item: The dock item which is no longer being dragged.
398 * Signals that the dock item dragging has ended.
466 "style \"gdl-dock-item-default\" {\n"
471 "style : gtk \"gdl-dock-item-default\"\n");
476 gdl_dock_item_init (GdlDockItem *item)
478 gtk_widget_set_has_window (GTK_WIDGET (item), TRUE);
479 gtk_widget_set_can_focus (GTK_WIDGET (item), TRUE);
481 item->child = NULL;
483 item->orientation = GTK_ORIENTATION_VERTICAL;
484 item->behavior = GDL_DOCK_ITEM_BEH_NORMAL;
486 item->resize = TRUE;
488 item->dragoff_x = item->dragoff_y = 0;
490 item->_priv = g_new0 (GdlDockItemPrivate, 1);
491 item->_priv->menu = NULL;
493 item->_priv->preferred_width = item->_priv->preferred_height = -1;
494 item->_priv->tab_label = NULL;
495 item->_priv->intern_tab_label = FALSE;
497 item->_priv->ph = NULL;
501 on_long_name_changed (GObject* item,
506 g_object_get (item, "long-name", &long_name, NULL);
512 on_stock_id_changed (GObject* item,
517 g_object_get (item, "stock_id", &stock_id, NULL);
533 GdlDockItem *item = GDL_DOCK_ITEM (g_object);
540 if (GDL_DOCK_ITEM_HAS_GRIP (item)) {
541 item->_priv->grip_shown = TRUE;
542 item->_priv->grip = gdl_dock_item_grip_new (item);
543 gtk_widget_set_parent (item->_priv->grip, GTK_WIDGET (item));
544 gtk_widget_show (item->_priv->grip);
547 item->_priv->grip_shown = FALSE;
561 item->_priv->notify_label =
562 g_signal_connect (item, "notify::long-name", G_CALLBACK (on_long_name_changed),
564 item->_priv->notify_stock_id =
565 g_signal_connect (item, "notify::stock-id", G_CALLBACK (on_stock_id_changed),
570 gdl_dock_item_set_tablabel (item, hbox);
571 item->_priv->intern_tab_label = TRUE;
586 GdlDockItem *item = GDL_DOCK_ITEM (g_object);
590 gdl_dock_item_set_orientation (item, g_value_get_enum (value));
593 item->resize = g_value_get_boolean (value);
594 gtk_widget_queue_resize (GTK_WIDGET (item));
598 GdlDockItemBehavior old_beh = item->behavior;
599 item->behavior = g_value_get_flags (value);
601 if ((old_beh ^ item->behavior) & GDL_DOCK_ITEM_BEH_LOCKED) {
602 if (GDL_DOCK_OBJECT_GET_MASTER (item))
603 g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item),
606 gdl_dock_item_showhide_grip (item);
613 GdlDockItemBehavior old_beh = item->behavior;
616 item->behavior |= GDL_DOCK_ITEM_BEH_LOCKED;
618 item->behavior &= ~GDL_DOCK_ITEM_BEH_LOCKED;
620 if (old_beh ^ item->behavior) {
621 gdl_dock_item_showhide_grip (item);
624 if (GDL_DOCK_OBJECT_GET_MASTER (item))
625 g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item),
631 item->_priv->preferred_width = g_value_get_int (value);
634 item->_priv->preferred_height = g_value_get_int (value);
648 GdlDockItem *item = GDL_DOCK_ITEM (g_object);
652 g_value_set_enum (value, item->orientation);
655 g_value_set_boolean (value, item->resize);
658 g_value_set_flags (value, item->behavior);
661 g_value_set_boolean (value, !GDL_DOCK_ITEM_NOT_LOCKED (item));
664 g_value_set_int (value, item->_priv->preferred_width);
667 g_value_set_int (value, item->_priv->preferred_height);
678 GdlDockItem *item = GDL_DOCK_ITEM (object);
680 if (item->_priv) {
681 GdlDockItemPrivate *priv = item->_priv;
684 gdl_dock_item_set_tablabel (item, NULL);
691 gtk_container_remove (GTK_CONTAINER (item), priv->grip);
699 item->_priv = NULL;
710 GdlDockItem *item;
714 item = GDL_DOCK_ITEM (container);
718 widget, G_OBJECT_TYPE_NAME (widget), G_OBJECT_TYPE_NAME (item));
722 if (item->child != NULL) {
727 G_OBJECT_TYPE_NAME (item),
728 G_OBJECT_TYPE_NAME (item->child));
732 gtk_widget_set_parent (widget, GTK_WIDGET (item));
733 item->child = widget;
740 GdlDockItem *item;
745 item = GDL_DOCK_ITEM (container);
746 if (item->_priv && widget == item->_priv->grip) {
749 item->_priv->grip = NULL;
751 gtk_widget_queue_resize (GTK_WIDGET (item));
755 if (GDL_DOCK_ITEM_IN_DRAG (item)) {
756 gdl_dock_item_drag_end (item, TRUE);
759 g_return_if_fail (item->child == widget);
764 item->child = NULL;
776 GdlDockItem *item = (GdlDockItem *) container;
780 if (include_internals && item->_priv->grip)
781 (* callback) (item->_priv->grip, callback_data);
783 if (item->child)
784 (* callback) (item->child, callback_data);
815 GdlDockItem *item;
824 item = GDL_DOCK_ITEM (widget);
828 if (item->child)
829 gtk_widget_size_request (item->child, &child_requisition);
835 if (item->orientation == GTK_ORIENTATION_HORIZONTAL) {
836 if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) {
837 gtk_widget_size_request (item->_priv->grip, &grip_requisition);
843 if (item->child) {
849 if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) {
850 gtk_widget_size_request (item->_priv->grip, &grip_requisition);
856 if (item->child) {
876 GdlDockItem *item;
881 item = GDL_DOCK_ITEM (widget);
886 item->_priv->preferred_height = -1;
887 item->_priv->preferred_width = -1;
896 if (item->child && gtk_widget_get_visible (item->child)) {
911 if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) {
915 gtk_widget_size_request (item->_priv->grip, &grip_req);
917 if (item->orientation == GTK_ORIENTATION_HORIZONTAL) {
926 if (item->_priv->grip)
927 gtk_widget_size_allocate (item->_priv->grip, &grip_alloc);
934 gtk_widget_size_allocate (item->child, &child_allocation);
941 GdlDockItem *item;
948 item = GDL_DOCK_ITEM (widget);
952 if (item->child
953 && gtk_widget_get_visible (item->child)
954 && !gtk_widget_get_mapped (item->child))
955 gtk_widget_map (item->child);
957 if (item->_priv->grip
958 && gtk_widget_get_visible (GTK_WIDGET (item->_priv->grip))
959 && !gtk_widget_get_mapped (GTK_WIDGET (item->_priv->grip)))
960 gtk_widget_map (item->_priv->grip);
966 GdlDockItem *item;
973 item = GDL_DOCK_ITEM (widget);
977 if (item->_priv->grip)
978 gtk_widget_unmap (item->_priv->grip);
984 GdlDockItem *item;
993 item = GDL_DOCK_ITEM (widget);
1020 gtk_widget_get_state (GTK_WIDGET (item)));
1023 if (item->child)
1024 gtk_widget_set_parent_window (item->child, window);
1026 if (item->_priv->grip)
1027 gtk_widget_set_parent_window (item->_priv->grip, window);
1055 GdlDockItem *item;
1057 item = GDL_DOCK_ITEM (widget);
1069 if (GTK_IS_WIDGET(item->_priv->grip))
1070 gtk_widget_queue_draw (GTK_WIDGET(item->_priv->grip));
1093 gdl_dock_item_move_focus_child (GdlDockItem *item,
1096 g_return_if_fail (GDL_IS_DOCK_ITEM (item));
1097 gtk_widget_child_focus (GTK_WIDGET (item->child), dir);
1110 GdlDockItem *item;
1121 item = GDL_DOCK_ITEM (widget);
1123 if (!EVENT_IN_GRIP_EVENT_WINDOW (event, item->_priv->grip))
1126 locked = !GDL_DOCK_ITEM_NOT_LOCKED (item);
1130 gtk_widget_get_allocation (item->_priv->grip, &allocation);
1133 switch (item->orientation) {
1148 if (!gdl_dock_item_or_child_has_focus (item))
1149 gtk_widget_grab_focus (GTK_WIDGET (item));
1153 item->_priv->start_x = event->x;
1154 item->_priv->start_y = event->y;
1156 GDL_DOCK_ITEM_SET_FLAGS (item, GDL_DOCK_IN_PREDRAG);
1160 gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window,
1168 if (GDL_DOCK_ITEM_IN_DRAG (item)) {
1170 gdl_dock_item_drag_end (item, FALSE);
1171 gtk_widget_grab_focus (GTK_WIDGET (item));
1174 else if (GDL_DOCK_ITEM_IN_PREDRAG (item)) {
1175 GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_PREDRAG);
1179 /* we check the window since if the item was redocked it's
1181 if (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window) {
1184 gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window,
1190 gdl_dock_item_popup_menu (item, event->button, event->time);
1201 GdlDockItem *item;
1208 item = GDL_DOCK_ITEM (widget);
1210 if (!EVENT_IN_GRIP_EVENT_WINDOW (event, item->_priv->grip))
1213 if (GDL_DOCK_ITEM_IN_PREDRAG (item)) {
1215 item->_priv->start_x,
1216 item->_priv->start_y,
1219 GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_PREDRAG);
1220 item->dragoff_x = item->_priv->start_x;
1221 item->dragoff_y = item->_priv->start_y;
1223 gdl_dock_item_drag_start (item);
1227 if (!GDL_DOCK_ITEM_IN_DRAG (item))
1233 g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_MOTION],
1269 /* Get item's allocation. */
1312 /* Reset rectangle coordinates to entire item. */
1321 do this when we're not over the item's current location. */
1411 /* If preferred size is not set on the requestor (perhaps a new item),
1610 GdlDockItem *item;
1612 item = GDL_DOCK_ITEM (widget);
1613 item->_priv->menu = NULL;
1617 gdl_dock_item_popup_menu (GdlDockItem *item,
1623 if (!item->_priv->menu) {
1624 /* Create popup menu and attach it to the dock item */
1625 item->_priv->menu = gtk_menu_new ();
1626 gtk_menu_attach_to_widget (GTK_MENU (item->_priv->menu),
1627 GTK_WIDGET (item),
1630 if (item->behavior & GDL_DOCK_ITEM_BEH_LOCKED) {
1633 gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu),
1636 G_CALLBACK (gdl_dock_item_unlock_cb), item);
1640 gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), mitem);
1642 G_CALLBACK (gdl_dock_item_hide_cb), item);
1645 gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), mitem);
1647 G_CALLBACK (gdl_dock_item_lock_cb), item);
1652 gtk_widget_show_all (item->_priv->menu);
1653 gtk_menu_popup (GTK_MENU (item->_priv->menu), NULL, NULL, NULL, NULL,
1658 gdl_dock_item_drag_start (GdlDockItem *item)
1662 if (!gtk_widget_get_realized (GTK_WIDGET (item)))
1663 gtk_widget_realize (GTK_WIDGET (item));
1665 GDL_DOCK_ITEM_SET_FLAGS (item, GDL_DOCK_IN_DRAG);
1671 gtk_grab_add (GTK_WIDGET (item));
1675 g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_BEGIN], 0);
1679 gdl_dock_item_drag_end (GdlDockItem *item,
1685 widget = GTK_WIDGET (item);
1689 g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_END], 0, cancel);
1691 GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_DRAG);
1699 GdlDockItem *item;
1702 item = GDL_DOCK_ITEM (data);
1704 if (!GDL_DOCK_ITEM_NOT_LOCKED (item))
1711 switch (item->orientation) {
1714 /*item->dragoff_x = item->_priv->grip_size / 2;*/
1715 item->dragoff_y = allocation.height / 2;
1718 /*item->dragoff_x = GTK_WIDGET (data)->allocation.width / 2;*/
1719 item->dragoff_y = item->_priv->grip_size / 2;
1722 gdl_dock_item_drag_start (item);
1726 gdl_dock_item_popup_menu (item, event->button, event->time);
1736 GdlDockItem *item)
1740 g_return_if_fail (item != NULL);
1742 master = GDL_DOCK_OBJECT_GET_MASTER (item);
1743 gdl_dock_item_hide_item (item);
1748 GdlDockItem *item)
1750 g_return_if_fail (item != NULL);
1752 gdl_dock_item_lock (item);
1757 GdlDockItem *item)
1759 g_return_if_fail (item != NULL);
1761 gdl_dock_item_unlock (item);
1765 gdl_dock_item_showhide_grip (GdlDockItem *item)
1770 gdl_dock_item_detach_menu (GTK_WIDGET (item), NULL);
1771 display = gtk_widget_get_display (GTK_WIDGET (item));
1774 if (item->_priv->grip) {
1775 if (GDL_DOCK_ITEM_GRIP_SHOWN (item) &&
1776 GDL_DOCK_ITEM_NOT_LOCKED(item))
1779 if (item->_priv->grip && GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window)
1780 gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window, cursor);
1785 gtk_widget_queue_resize (GTK_WIDGET (item));
1789 gdl_dock_item_real_set_orientation (GdlDockItem *item,
1792 item->orientation = orientation;
1794 if (gtk_widget_is_drawable (GTK_WIDGET (item)))
1795 gtk_widget_queue_draw (GTK_WIDGET (item));
1796 gtk_widget_queue_resize (GTK_WIDGET (item));
1806 * @behavior: General behavior for the dock item (i.e. whether it can
1810 * Creates a new dock item widget.
1811 * Returns: The newly created dock item grip widget.
1818 GdlDockItem *item;
1820 item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM,
1825 GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
1827 return GTK_WIDGET (item);
1835 * @behavior: General behavior for the dock item (i.e. whether it can
1839 * Creates a new dock item grip widget with a given stock id.
1840 * Returns: The newly created dock item grip widget.
1848 GdlDockItem *item;
1850 item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM,
1856 GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
1858 return GTK_WIDGET (item);
1867 GdlDockItem *item;
1869 item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM,
1876 GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC);
1877 gdl_dock_item_set_tablabel (item, gtk_label_new (long_name));
1879 return GTK_WIDGET (item);
1885 * @item: The dock item that will be relocated to the dock position.
1886 * @target: (allow-none): The dock item that will be used as the point of reference.
1887 * @position: The position to dock #item, relative to #target.
1890 * Relocates a dock item to a new location relative to another dock item.
1893 gdl_dock_item_dock_to (GdlDockItem *item,
1898 g_return_if_fail (item != NULL);
1899 g_return_if_fail (item != target);
1901 g_return_if_fail ((item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) == 0 || position != GDL_DOCK_FLOATING);
1906 if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) {
1907 g_warning (_("Attempt to bind an unbound item %p"), item);
1911 controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
1917 item->dragoff_x = item->dragoff_y = 0;
1919 item, 0, 0, -1, -1);
1923 GDL_DOCK_OBJECT (item),
1929 * @item: The dock item which will get it's orientation set.
1930 * @orientation: The orientation to set the item to. If the orientation
1932 * along the top of the edge of item (if it is not hidden). If the
1934 * will be shown down the left edge of the item (even if the widget
1937 * This function sets the layout of the dock item.
1940 gdl_dock_item_set_orientation (GdlDockItem *item,
1945 g_return_if_fail (item != NULL);
1947 if (item->orientation != orientation) {
1949 if (item->child != NULL) {
1951 G_OBJECT_GET_CLASS (item->child), "orientation");
1953 g_object_set (G_OBJECT (item->child),
1957 if (GDL_DOCK_ITEM_GET_CLASS (item)->set_orientation)
1958 GDL_DOCK_ITEM_GET_CLASS (item)->set_orientation (item, orientation);
1959 g_object_notify (G_OBJECT (item), "orientation");
1965 * @item: The dock item from which to get the tab label widget.
1974 gdl_dock_item_get_tablabel (GdlDockItem *item)
1976 g_return_val_if_fail (item != NULL, NULL);
1977 g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL);
1979 return item->_priv->tab_label;
1984 * @item: The dock item which will get it's tab label widget set.
1992 gdl_dock_item_set_tablabel (GdlDockItem *item,
1995 g_return_if_fail (item != NULL);
1997 if (item->_priv->intern_tab_label)
1999 item->_priv->intern_tab_label = FALSE;
2000 g_signal_handler_disconnect (item, item->_priv->notify_label);
2001 g_signal_handler_disconnect (item, item->_priv->notify_stock_id);
2004 if (item->_priv->tab_label) {
2006 if (GDL_IS_DOCK_TABLABEL (item->_priv->tab_label)) {
2007 g_signal_handlers_disconnect_matched (item->_priv->tab_label,
2010 NULL, item);
2011 g_object_set (item->_priv->tab_label, "item", NULL, NULL);
2013 g_object_unref (item->_priv->tab_label);
2014 item->_priv->tab_label = NULL;
2019 item->_priv->tab_label = tablabel;
2021 g_object_set (tablabel, "item", item, NULL);
2024 G_CALLBACK (gdl_dock_item_tab_button), item);
2031 * @item: The dock item from which to to get the grip of.
2033 * This function returns the dock item's grip label widget.
2038 gdl_dock_item_get_grip(GdlDockItem *item)
2040 g_return_val_if_fail (item != NULL, NULL);
2041 g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL);
2043 return item->_priv->grip;
2048 * @item: The dock item to hide the grip of.
2050 * This function hides the dock item's grip widget.
2053 gdl_dock_item_hide_grip (GdlDockItem *item)
2055 g_return_if_fail (item != NULL);
2056 if (item->_priv->grip_shown) {
2057 item->_priv->grip_shown = FALSE;
2058 gdl_dock_item_showhide_grip (item);
2065 * @item: The dock item to show the grip of.
2067 * This function shows the dock item's grip widget.
2070 gdl_dock_item_show_grip (GdlDockItem *item)
2072 g_return_if_fail (item != NULL);
2073 if (!item->_priv->grip_shown) {
2074 item->_priv->grip_shown = TRUE;
2075 gdl_dock_item_showhide_grip (item);
2081 * @item: the dock item to emit a selected signal on.
2084 * to let clients know that this item has been switched to.
2087 gdl_dock_item_notify_selected (GdlDockItem *item)
2089 g_signal_emit (item, gdl_dock_item_signals [SELECTED], 0);
2095 * @item: The item to bind.
2099 * Binds this dock item to a new dock master.
2102 gdl_dock_item_bind (GdlDockItem *item,
2105 g_return_if_fail (item != NULL);
2108 gdl_dock_object_bind (GDL_DOCK_OBJECT (item),
2115 * @item: The item to unbind.
2117 * Unbinds this dock item from it's dock master.
2120 gdl_dock_item_unbind (GdlDockItem *item)
2122 g_return_if_fail (item != NULL);
2124 gdl_dock_object_unbind (GDL_DOCK_OBJECT (item));
2129 * @item: The dock item to hide.
2131 * This function hides the dock item. When dock items are hidden they
2134 * The dock item close button causes the panel to be hidden.
2137 gdl_dock_item_hide_item (GdlDockItem *item)
2141 g_return_if_fail (item != NULL);
2143 if (!GDL_DOCK_OBJECT_ATTACHED (item))
2149 if (!GDL_DOCK_OBJECT_AUTOMATIC (item)) {
2150 if (item->_priv->ph)
2151 g_object_unref (item->_priv->ph);
2156 if (GDL_IS_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (item))))
2158 GdlDock* dock = GDL_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (item)));
2167 gtk_widget_get_allocation (GTK_WIDGET (item), &allocation);
2168 item->_priv->preferred_width = allocation.width;
2169 item->_priv->preferred_height = allocation.height;
2171 item->_priv->ph = GDL_DOCK_PLACEHOLDER (
2174 "host", item,
2181 g_object_ref_sink (item->_priv->ph);
2184 gdl_dock_object_freeze (GDL_DOCK_OBJECT (item));
2187 if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (item)))
2188 gtk_container_foreach (GTK_CONTAINER (item),
2192 /* detach the item recursively */
2193 gdl_dock_object_detach (GDL_DOCK_OBJECT (item), TRUE);
2195 gtk_widget_hide (GTK_WIDGET (item));
2197 gdl_dock_object_thaw (GDL_DOCK_OBJECT (item));
2202 * @item: The dock item to iconify.
2204 * This function iconifies the dock item. When dock items are iconified
2207 * The dock item iconify button causes the panel to be iconified.
2210 gdl_dock_item_iconify_item (GdlDockItem *item)
2212 g_return_if_fail (item != NULL);
2214 GDL_DOCK_OBJECT_SET_FLAGS (item, GDL_DOCK_ICONIFIED);
2215 gdl_dock_item_hide_item (item);
2220 * @item: The dock item to show.
2222 * This function shows the dock item. When dock items are shown, they
2226 gdl_dock_item_show_item (GdlDockItem *item)
2228 g_return_if_fail (item != NULL);
2230 GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_ICONIFIED);
2232 if (item->_priv->ph) {
2235 g_object_get (G_OBJECT(item->_priv->ph),
2244 gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item));
2246 item, x, y, width, height);
2248 gtk_container_add (GTK_CONTAINER (item->_priv->ph),
2249 GTK_WIDGET (item));
2251 g_object_unref (item->_priv->ph);
2252 item->_priv->ph = NULL;
2254 } else if (gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) {
2258 (GDL_DOCK_OBJECT_GET_MASTER (item));
2260 if (item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) {
2262 GDL_DOCK_OBJECT(item)->name);
2264 gdl_dock_object_dock (toplevel, GDL_DOCK_OBJECT (item),
2267 g_warning("There is no toplevel window. GdlDockItem %s cannot be shown.\n", GDL_DOCK_OBJECT(item)->name);
2271 GDL_DOCK_OBJECT(item)->name);
2273 gtk_widget_show (GTK_WIDGET (item));
2278 * @item: The dock item to lock.
2280 * This function locks the dock item. When locked the dock item cannot
2284 gdl_dock_item_lock (GdlDockItem *item)
2286 g_object_set (item, "locked", TRUE, NULL);
2291 * @item: The dock item to unlock.
2293 * This function unlocks the dock item. When unlocked the dock item can
2297 gdl_dock_item_unlock (GdlDockItem *item)
2299 g_object_set (item, "locked", FALSE, NULL);
2304 * @item: The dock item
2305 * @reference: The GdlDockObject which is the default dock for @item
2312 gdl_dock_item_set_default_position (GdlDockItem *item,
2315 g_return_if_fail (item != NULL);
2317 if (item->_priv->ph) {
2318 g_object_unref (item->_priv->ph);
2319 item->_priv->ph = NULL;
2325 item->_priv->ph = GDL_DOCK_PLACEHOLDER (reference);
2327 item->_priv->ph = GDL_DOCK_PLACEHOLDER (
2332 g_object_ref_sink (item->_priv->ph);
2339 * @item: The dock item to get the preferred size of.
2343 * Gets the preferred size of the dock item in pixels.
2346 gdl_dock_item_preferred_size (GdlDockItem *item,
2354 gtk_widget_get_allocation (GTK_WIDGET (item), &allocation);
2356 req->width = MAX (item->_priv->preferred_width, allocation.width);
2357 req->height = MAX (item->_priv->preferred_height, allocation.height);
2362 gdl_dock_item_or_child_has_focus (GdlDockItem *item)
2367 g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), FALSE);
2369 for (item_child = gtk_container_get_focus_child (GTK_CONTAINER (item));
2374 (gtk_widget_has_focus (GTK_WIDGET (item)) ||