一般很少直接使用视角(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