* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* SECTION:gtkbox
* @Short_description: A container box
* @Title: GtkBox
- * @See_also: #GtkFrame, #GtkTable, #GtkLayout
+ * @See_also: #GtkFrame, #GtkGrid, #GtkLayout
*
* The GtkBox widget organizes child widgets into a rectangular area.
*
#include "config.h"
#include "gtkbox.h"
+#include "gtkboxprivate.h"
+#include "gtkintl.h"
#include "gtkorientable.h"
-#include "gtksizerequest.h"
-#include "gtktypebuiltins.h"
+#include "gtkorientableprivate.h"
#include "gtkprivate.h"
-#include "gtkintl.h"
-#include "a11y/gtkboxaccessible.h"
+#include "gtktypebuiltins.h"
+#include "gtksizerequest.h"
+#include "gtkwidgetpath.h"
+#include "gtkwidgetprivate.h"
+#include "a11y/gtkcontaineraccessible.h"
enum {
g_type_class_add_private (object_class, sizeof (GtkBoxPrivate));
- gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BOX_ACCESSIBLE);
+ gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILLER);
}
static void
{
case PROP_ORIENTATION:
private->orientation = g_value_get_enum (value);
+ _gtk_orientable_set_style_classes (GTK_ORIENTABLE (box));
gtk_widget_queue_resize (GTK_WIDGET (box));
break;
case PROP_SPACING:
box = GTK_BOX (container);
private = box->priv;
- path = gtk_widget_path_copy (gtk_widget_get_path (GTK_WIDGET (container)));
+ path = _gtk_widget_create_path (GTK_WIDGET (container));
if (gtk_widget_get_visible (child))
{
return path;
}
+static void
+gtk_box_invalidate_order_foreach (GtkWidget *widget)
+{
+ _gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_SIBLING_POSITION);
+}
+
static void
gtk_box_invalidate_order (GtkBox *box)
{
gtk_container_foreach (GTK_CONTAINER (box),
- (GtkCallback) gtk_widget_reset_style,
+ (GtkCallback) gtk_box_invalidate_order_foreach,
NULL);
}
pack_type = GTK_PACK_START;
if (child_info->pack != pack_type)
{
- child_info->pack = GTK_PACK_END;
+ child_info->pack = pack_type;
gtk_widget_child_notify (child, "pack-type");
gtk_box_invalidate_order (box);
}
{
gboolean was_visible;
- was_visible = gtk_widget_get_visible (widget);
- gtk_widget_unparent (widget);
-
g_signal_handlers_disconnect_by_func (widget,
box_child_visibility_notify_cb,
box);
+ was_visible = gtk_widget_get_visible (widget);
+ gtk_widget_unparent (widget);
+
priv->children = g_list_remove_link (priv->children, children);
g_list_free (children);
g_free (child);