GtkEventBox Constructor

GtkEventBox ();

Use this constructor to create a new GtkEventBox.

Example 61. A Demonstration of usage of the event box.

<?php
//Initialising the event box and adding an image to it
$imageEvent = new GtkEventBox();
$imageWidget = GtkImage::new_from_stock(
    Gtk::STOCK_DIALOG_WARNING,
    Gtk::ICON_SIZE_DIALOG
);
$imageEvent->add($imageWidget);

//Initialising another event box and adding a label to it
$labelEvent = new GtkEventBox();
$labelWidget = new GtkLabel('Click something!');
$labelEvent->add($labelWidget);

//Connecting the signals to the callback
$imageEvent->connect('button_press_event', 'doSomething');
$labelEvent->connect('button_press_event', 'doSomething');

//The callback function
function doSomething($widget, $event)
{
    //Determine which widget triggered the signal
    $widget = $widget->get_child()->get_name();
    if ($widget == 'GtkImage') {
        $type = 'image';
    } else {
        $type = 'label';
    }

    //Show a dialog that displays a message
    $dialog = new GtkMessageDialog(
        null,
        0,
        Gtk::MESSAGE_INFO,
        Gtk::BUTTONS_OK,
        'You clicked the ' . $type . '!'
    );
    $dialog->run();
    $dialog->destroy();
}

//Creating a VBox to add the event boxes to
$vbox = new GtkVBox();
$seperator = new GtkHSeparator();
$vbox->pack_start($imageEvent);
$vbox->pack_start($seperator);
$vbox->pack_start($labelEvent);

//Creating a window and adding the VBox to it
$window = new GtkWindow();
$window->add($vbox);
$window->set_position(Gtk::WIN_POS_CENTER);
$window->set_default_size(200,150);
$window->show_all();
$window->set_title("Event Boxes!");
$window->connect_simple(
    'destroy',
    array('Gtk', 'main_quit')
);

//Starting main loop
Gtk::main();
?>