Gtk-Perl

 view release on metacpan or  search on metacpan

Gnome/xs/GnomeApp.xs  view on Meta::CPAN

	SV * handler;
	AV *stuff = (AV*)data;
	int i;
	dSP;

	handler = *av_fetch(stuff, 0, 0);

	ENTER;
	SAVETMPS;
	
	PUSHMARK(SP);
	XPUSHs(sv_2mortal(newSVpv(string, 0)));
	for (i=1;i<=av_len(stuff);i++)
		XPUSHs(sv_2mortal(newSVsv(*av_fetch(stuff, i, 0))));
	PUTBACK;
	perl_call_sv(handler, G_DISCARD);
	FREETMPS;
	LEAVE;
}

static void
reply_callback (gint reply, gpointer data) {
	SV * handler;
	AV *stuff = (AV*)data;
	int i;
	dSP;

	handler = *av_fetch(stuff, 0, 0);

	ENTER;
	SAVETMPS;
	
	PUSHMARK(SP);
	XPUSHs(sv_2mortal(newSViv(reply)));
	for (i=1;i<=av_len(stuff);i++)
		XPUSHs(sv_2mortal(newSVsv(*av_fetch(stuff, i, 0))));
	PUTBACK;
	perl_call_sv(handler, G_DISCARD);
	FREETMPS;
	LEAVE;
}


MODULE = Gnome::App		PACKAGE = Gnome::App		PREFIX = gnome_app_

#ifdef GNOME_APP

Gnome::App_Sink
new(Class, appname, title)
	SV *	Class
	char *	appname
	char *	title
	CODE:
	RETVAL = (GnomeApp*)(gnome_app_new(appname, title));
	OUTPUT:
	RETVAL

void
gnome_app_set_menus(app, menubar)
	Gnome::App	app
	Gtk::MenuBar	menubar

void
gnome_app_create_menus(app, info, ...)
	Gnome::App	app
	ALIAS:
		Gnome::App::create_toolbar = 1
	CODE:
	{
		int i, count;
		GnomeUIInfo *infos;

		fill_uiinfo(1, count, infos);
		if (ix == 1)
			gnome_app_create_toolbar(app, infos);
		else
			gnome_app_create_menus(app, infos);
		refill_uiinfo(1, count, infos);
	}


void
gnome_app_fill_menu (Class, menu_shell, uiinfo, accel_group, uline_accels, pos, ...)
	SV *	Class
	Gtk::MenuShell	menu_shell
	Gtk::AccelGroup_OrNULL	accel_group
	bool	uline_accels
	int	pos
	CODE:
	{
		int i, count;
		GnomeUIInfo *infos;

		fill_uiinfo(6, count, infos);
		gnome_app_fill_menu (menu_shell, infos, accel_group, uline_accels, pos);
		refill_uiinfo(6, count, infos);
	}

void
gnome_app_fill_toolbar (Class, toolbar, accel_group, ...)
	SV *	Class
	Gtk::Toolbar	toolbar
	Gtk::AccelGroup_OrNULL	accel_group
	CODE:
	{
		int i, count;
		GnomeUIInfo *infos;

		fill_uiinfo(3, count, infos);
		gnome_app_fill_toolbar (toolbar, infos, accel_group);
		refill_uiinfo(3, count, infos);
	}

void
gnome_app_set_toolbar(app, toolbar)
	Gnome::App	app
	Gtk::Toolbar	toolbar

void
gnome_app_set_statusbar(app, contents)
	Gnome::App	app
	Gtk::Widget	contents

void
gnome_app_set_contents(app, contents)
	Gnome::App	app
	Gtk::Widget	contents

void
gnome_app_set_statusbar_custom(app, container, statusbar)
	Gnome::App	app
	Gtk::Widget	container
	Gtk::Widget	statusbar

void
gnome_app_add_toolbar(app, toolbar, name, behavior, placement, band_num, band_position, offset)
	Gnome::App	app
	Gtk::Toolbar	toolbar
	char*	name
	Gnome::DockItemBehavior	behavior
	Gnome::DockPlacement	placement
	int	band_num
	int	band_position
	int	offset



( run in 1.810 second using v1.01-cache-2.11-cpan-5b529ec07f3 )