视角 Viewports

一般很少直接使用视角(Viewport)构件。多数情况下是使用滚动窗口构件,它内部使用了视角。

视角构件允许在其中放置一个超过自身大小的构件,这样你可以一次看构件的一部分。它用调整对象定义当前显示的区域。

用下面的函数创建一个视角。

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

可以看到,创建构件时能够指定构件使用的水平和垂直调整对象。如果给函数传递 NULL 参数,构件会自己创建调整对象。

创建构件后,可以用下面四个函数取得和设置它的调整对象:

GtkAdjustment *gtk_viewport_get_hadjustment (GtkViewport *viewport );

GtkAdjustment *gtk_viewport_get_vadjustment (GtkViewport *viewport );

void gtk_viewport_set_hadjustment( GtkViewport   *viewport,
                                   GtkAdjustment *adjustment );

void gtk_viewport_set_vadjustment( GtkViewport   *viewport,
                                   GtkAdjustment *adjustment );

剩下的这个函数用于改变视角的外观:

void gtk_viewport_set_shadow_type( GtkViewport   *viewport,
                                   GtkShadowType  type );

type参数可以取以下值:

  GTK_SHADOW_NONE,
  GTK_SHADOW_IN,
  GTK_SHADOW_OUT,
  GTK_SHADOW_ETCHED_IN,
  GTK_SHADOW_ETCHED_OUT