Часть 34. Стрелки

Иерархия наследования

Object
   +--- Widget
         +--- Misc
               +--- Arrow
         

Внешне виджет стрелок представляет собой указатель. Ему можно задать направление и стиль стрелок. На практике очень удобно использовать эти виджеты на кнопках. Как и Label, виджет стрелок не отправляет сигналов.

Существует только две функции для управления виджетом стрелок.

$arrow = new Gtk::Arrow( $arrow_type, $shadow_type );

$arrow->set( $arrow_type, $shadow_type );

Первая создает новый виджет заданого направления и вида. Второй позволяет менять эти значения. $arrow_type может принимать одно из следующих значений:

'up'
'down'
'left'
'right'

Эти значения однозначно определеяют направление указателя стрелки. В свою очередь $shadow_type может принимать следующие значения:

'in'
'out' (the default)
'etched_in'
'etched_out'

34.1. Пример использования стрелок.

Приведем краткий пример для илюстрации использования стрелок.

Исходник

#!/usr/bin/perl -w use Gtk ; use strict ; set_locale Gtk; init Gtk; my $false = 0; my $true = 1; my $window; my $button; my $box; # Создаем окно приложения $window = new Gtk::Window( "toplevel" ); $window->set_title( "Arrow Buttons" ); $window->signal_connect( "destroy", sub { Gtk-> exit ( 0 ); } ); $window->border_width( 10 ); # Создаем контейнер для стрелок-кнопок $box = new Gtk::HBox( $false, 0 ); $box->border_width( 2 ); $window->add( $box ); # упаковываем и показываем наши виджеты $box->show(); $button = create_arrow_button( 'up', 'in' ); $box->pack_start( $button, $false, $false, 3 ); $button = create_arrow_button( 'down', 'out' ); $box->pack_start( $button, $false, $false, 3 ); $button = create_arrow_button( 'left', 'in' ); $box->pack_start( $button, $false, $false, 3 ); $button = create_arrow_button( 'right', 'out' ); $box->pack_start( $button, $false, $false, 3 ); $window->show(); main Gtk; exit ( 0 ); ### Функции # Создаем виджет стрелок с указанными параметрами и упаковываем # его в кнопку. Первый параметр - направление стрелки, второй - # тип тени. sub create_arrow_button { my ( $arrow_type, $shadow_type ) = @_; my $button; my $arrow; $button = new Gtk::Button(); $arrow = new Gtk::Arrow( $arrow_type, $shadow_type ); $button->add( $arrow ); $button->show(); $arrow->show(); return ( $button ); } # Конец примера

Скриншот