Using Custom Parameters

When you are connecting signals to functions, it is possible to add one or more custom parameters to the signal handler. As seen earlier, connect_object() can be used to pass a particular widget into a function, however an alternative is to use connect() with extra parameters for the information you wish to use inside the function.

So, connect() could have been called like this:

$window->connect('button-press-event', 'show_popup', $menu);

The handler function would then need to have accepted three parameters - the event, the GtkWindow object that emitted the signal, and the custom parameter $menu. The only difference here is that behind the scenes a little more data needs to be passed around for the handler function to be called with the extra parameter.

Here is a complete code example you can try out to get the idea:

<?php
    
function btnClick($button, $window) {
        
$window->destroy();
        
gtk::main_quit();
    }

    
$window =& new GtkWindow();
    
$btnquit =& new GtkButton("Quit");
    
$btnquit->connect("clicked", "btnClick", $window);
    
$window->add($btnquit);
    
$window->show_all();

    
gtk::main();
?>

As you can see, the parameter $button is not being used inside btnClick(), however that is hardly a major speed hit.

 

Next chapter: GUI Themes >>

Previous chapter: Advanced GUIs

Jump to:

 

Home: Table of Contents

Follow us on Identi.ca or Twitter

Username:   Password:
Create Account | About TuxRadar