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:

function btnClick($button, $window) {

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


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 or Twitter

Username:   Password:
Create Account | About TuxRadar