Gtk2

 view release on metacpan or  search on metacpan

xs/GtkBuilder.xs  view on Meta::CPAN

	gperl_callback_invoke ((GPerlCallback *) user_data,
			       NULL,
	                       builder,
			       object,
			       signal_name,
			       handler_name,
			       connect_object,
			       flags);
}

MODULE = Gtk2::Builder	PACKAGE = Gtk2::Builder	PREFIX = gtk_builder_

BOOT:
	if (!gperl_type_from_package ("Glib::ConnectFlags")) {
		gperl_register_fundamental (gtk2perl_connect_flags_get_type (),
	                                    "Glib::ConnectFlags");
	}
	gperl_register_error_domain (GTK_BUILDER_ERROR,
				     GTK_TYPE_BUILDER_ERROR,
				     "Gtk2::Builder::Error");

GtkBuilder_noinc * gtk_builder_new (class)
    C_ARGS:
	/* void */

# guint gtk_builder_add_from_file (GtkBuilder *builder, const gchar *filename, GError **error);
=for apidoc __gerror__
=cut
guint gtk_builder_add_from_file (GtkBuilder *builder, GPerlFilename filename)
    PREINIT:
	GError *error = NULL;
    CODE:
	RETVAL = gtk_builder_add_from_file (builder, filename, &error);
	if (error)
		gperl_croak_gerror (NULL, error);
    OUTPUT:
	RETVAL

# guint gtk_builder_add_from_string (GtkBuilder *builder, const gchar *buffer, gsize length, GError **error);
=for apidoc __gerror__
=cut
guint gtk_builder_add_from_string (GtkBuilder *builder, const gchar *buffer)
    PREINIT:
	gsize length;
	GError *error = NULL;
    CODE:
	length = sv_len (ST (1));
	RETVAL = gtk_builder_add_from_string (builder, buffer, length, &error);
	if (error)
		gperl_croak_gerror (NULL, error);
    OUTPUT:
	RETVAL

GObject * gtk_builder_get_object (GtkBuilder *builder, const gchar *name);

# GSList * gtk_builder_get_objects (GtkBuilder *builder);
void
gtk_builder_get_objects (GtkBuilder *builder)
    PREINIT:
	GSList *list, *i;
    PPCODE:
	list = gtk_builder_get_objects (builder);
	for (i = list; i != NULL; i = i->next) {
		XPUSHs (sv_2mortal (newSVGObject (i->data)));
	}
	g_slist_free (list);

#if 0 /* evil hack to convince Glib::GenPod to output docs for connect_signals */

# connect_signals is implemented in Gtk2.pm
=for apidoc Gtk2::Builder::connect_signals
=for signature $builder->connect_signals ($user_data)
=for signature $builder->connect_signals ($user_data, $package)
=for signature $builder->connect_signals ($user_data, %handlers)
=for arg ... (__hide__)

There are four ways to let Gtk2::Builder do the signal connecting work for you:

=over

=item C<< $builder->connect_signals ($user_data) >>

When invoked like this, Gtk2::Builder will connect signals to functions in the
calling package.  The callback names are specified in the UI description.

=item C<< $builder->connect_signals ($user_data, $package) >>

When invoked like this, Gtk2::Builder will connect signals to functions in the
package I<$package>.

=item C<< $builder->connect_signals ($user_data, $object) >>

When invoked like this, Gtk2::Builder will connect signals to method calls
against the object $object.

=item C<< $builder->connect_signals ($user_data, %handlers) >>

When invoked like this, I<%handlers> is used as a mapping from handler names to
code references.

=back

=cut
void gtk_builder_connect_signals (GtkBuilder *builder, ...);

#endif /* evil hack */

# void gtk_builder_connect_signals_full (GtkBuilder *builder, GtkBuilderConnectFunc func, gpointer user_data);
void gtk_builder_connect_signals_full (GtkBuilder *builder, SV *func, SV *user_data=NULL);
    PREINIT:
	GPerlCallback *callback;
    CODE:
	callback = gtk2perl_builder_connect_func_create (func, user_data);
    	gtk_builder_connect_signals_full (
		builder,
		gtk2perl_builder_connect_func,
		callback);
	gperl_callback_destroy (callback);

void gtk_builder_set_translation_domain (GtkBuilder *builder, const gchar_ornull *domain);



( run in 1.390 second using v1.01-cache-2.11-cpan-5511b514fd6 )