364. How to display buttons with arrows?

Problem

Suppose you would like to display some buttons with arrows as shown below:

How to display buttons with arrows?

For windows users, you would like to see the stock images too.


Solution


Sample Code

1   
2   
3   
4   
5   
6   
7   
8   
9   
10   
11   
12   
13   
14   
16   
17   
18   
19   
20   
21   
22   
23   
24   
25   
27   
28   
29   
30   
31   
32   
33   
34   
35   
36   
37   
38   
39   
40   
41   
42   
43   
44   
45   
46   
47   
<?php
$window = new GtkWindow();
$window->set_size_request(400, 150);
$window->connect_simple('destroy', array('Gtk','main_quit'));
$window->add($vbox = new GtkVBox());

// display title
$title = new GtkLabel("Display buttons with arrows");
$title->modify_font(new PangoFontDescription("Times New Roman Italic 10"));
$title->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#0000ff"));
$title->set_size_request(-1, 40);
$vbox->pack_start($title, 0, 0);
$vbox->pack_start(new GtkLabel(), 0, 0);

$arrow_label = array('up', 'down', 'left', 'right');
$arrow_type = array(Gtk::ARROW_UP, Gtk::ARROW_DOWN, Gtk::ARROW_LEFT, 
    Gtk::ARROW_RIGHT); // note 3

$hbox = new GtkHBox();
$hbox->pack_start(new GtkLabel('Click any of the arrow buttons: '), 0);
$vbox->pack_start($hbox, 0);

for($i=0; $i<4; ++$i) {
    $button = new GtkButton(); // create a standard button
    $button->connect('clicked', 'on_click', $arrow_label[$i]);
    $button_hbox = new GtkHBox();
    $button->add($button_hbox);

    $arrow = new GtkArrow($arrow_type[$i], Gtk::SHADOW_NONE); // note 1
    $button_hbox->pack_start($arrow); // note 2

    $hbox->pack_start($button, 0);
}


$window->show_all();
Gtk::main();

function on_click($button, $arrow_type) {
    print "You have clicked arrow type: $arrow_type\n";
}

?>

?>

Output

As shown above.

 

Explanation

  1. Create the arrow.
  2. Pack the arrow in the button.
  3. Note the different arrow types available in PHP-GTK2.

Related Links

Add comment


Security code
Refresh