1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_BASE_GTK_GTK_EXPANDED_CONTAINER_H_
6 #define UI_BASE_GTK_GTK_EXPANDED_CONTAINER_H_
11 #include "ui/base/ui_base_export.h"
13 // A specialized container derived from GtkFixed, which expands the size of its
14 // children to fill the container, in one or both directions. The usage of this
15 // container is similar to GtkFixed.
17 // The "child-size-request" signal is optional, if you want to expand child
18 // widgets to customized size other than the container's size. It should have
19 // the following signature:
21 // void (*child_size_request)(GtkExpandedContainer* container,
23 // GtkRequisition* requisition);
25 // This signal is emitted for each child with the requisition set to the size of
26 // the container. Your handler may adjust the value of the requisition. If the
27 // width or height is set to -1, then that direction will not be expanded, and
28 // the original size request of the child will be used.
32 #define GTK_TYPE_EXPANDED_CONTAINER \
33 (gtk_expanded_container_get_type())
34 #define GTK_EXPANDED_CONTAINER(obj) \
35 (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_EXPANDED_CONTAINER, \
36 GtkExpandedContainer))
37 #define GTK_EXPANDED_CONTAINER_CLASS(klass) \
38 (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_EXPANDED_CONTAINER, \
39 GtkExpandedContainerClass))
40 #define GTK_IS_EXPANDED_CONTAINER(obj) \
41 (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_EXPANDED_CONTAINER))
42 #define GTK_IS_EXPANDED_CONTAINER_CLASS(klass) \
43 (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_EXPANDED_CONTAINER))
44 #define GTK_EXPANDED_CONTAINER_GET_CLASS(obj) \
45 (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_EXPANDED_CONTAINER, \
46 GtkExpandedContainerClass))
48 typedef struct _GtkExpandedContainer GtkExpandedContainer
;
49 typedef struct _GtkExpandedContainerClass GtkExpandedContainerClass
;
51 struct _GtkExpandedContainer
{
56 struct _GtkExpandedContainerClass
{
57 GtkFixedClass parent_class
;
60 UI_BASE_EXPORT GType
gtk_expanded_container_get_type() G_GNUC_CONST
;
61 UI_BASE_EXPORT GtkWidget
* gtk_expanded_container_new();
62 UI_BASE_EXPORT
void gtk_expanded_container_put(GtkExpandedContainer
* container
,
66 UI_BASE_EXPORT
void gtk_expanded_container_move(GtkExpandedContainer
* container
,
70 UI_BASE_EXPORT
void gtk_expanded_container_set_has_window(
71 GtkExpandedContainer
* container
,
73 UI_BASE_EXPORT gboolean
gtk_expanded_container_get_has_window(
74 GtkExpandedContainer
* container
);
78 #endif // UI_BASE_GTK_GTK_EXPANDED_CONTAINER_H_