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.


Copyright 2010 Future Publishing Limited (company
registered number 2008885), a company registered
in England and Wales whose registered office is at
Beauford Court, 30 Monmouth Street, Bath, BA1 2BW, UK