布局容器 Layout Container

布局容器(The Layout container)与固定容器(the Fixed container)类似,不过它可以在一个无限的滚动区域定位控件(其实也不能大于2^32像素)。在X系统中,窗口的宽度和高度只能限于在32767像素以内。布局容器构件使用一些特殊的技巧(doing some exotic stuff using window and bit gravities)越过这种限制。所以,即使在滚动区域你有很多子构件,也可以平滑地滚动。

创建布局容器

用以下函数创建布局容器:

GtkWidget *gtk_layout_new( GtkAdjustment *hadjustment,
                           GtkAdjustment *vadjustment ); 

可以看到,你可以有选择地指定布局容器滚动时要使用的调整对象。

添加、移动、设置布局中控件的位置

你可以用下面的两个函数在布局容器构件你添加和移动构件。

void gtk_layout_put( GtkLayout *layout,
                     GtkWidget *widget,
                     gint       x,
                     gint       y );

void gtk_layout_move( GtkLayout *layout,
                      GtkWidget *widget,
                      gint       x,
                      gint       y );

布局容器构件的尺寸可以用接下来的这个函数指定:

void gtk_layout_set_size( GtkLayout *layout,
                          guint      width,
                          guint      height ); 

操纵垂直和水平的调整对象

GtkAdjustment* gtk_layout_get_hadjustment( GtkLayout *layout );

GtkAdjustment* gtk_layout_get_vadjustment( GtkLayout *layout );

void gtk_layout_set_hadjustment( GtkLayout     *layout,
                                 GtkAdjustment *adjustment );

void gtk_layout_set_vadjustment( GtkLayout     *layout,
                                 GtkAdjustment *adjustment);