/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
#include <config.h>
#include <gnome.h>
#include <gtk/gtk.h>
#include <bonobo/bonobo-object.h>
#include <bonobo/bonobo-selector.h>
#if USING_OAF
#include <liboaf/liboaf.h>
#else
#include <libgnorba/gnorba.h>
#endif
CORBA_Environment ev;
CORBA_ORB orb;
static void
noact_callback (GtkWidget *widget, gpointer data)
{
gchar *text;
text = bonobo_selector_select_id (_("Select an object"), NULL);
g_print ("%s\n", text);
g_free (text);
}
static void
quit_callback (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
static void
panel_callback (GtkWidget *widget, gpointer data)
{
/* it filters! */
#if USING_OAF
g_warning ("You can't get an id of a panel applet since the panel"
"is using GOAD at the moment");
#else
{
const gchar *ints [] = { "IDL:Bonobo/Applet:1.0", NULL };
gchar *text;
text = gnome_bonobo_select_goad_id (_("Select an object"), ints);
g_print ("%s\n", text);
g_free (text);
}
#endif
}
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *button;
CORBA_exception_init (&ev);
#if USING_OAF
gnome_init_with_popt_table("BonoboSel Test", "1.0",
argc, argv,
oaf_popt_options, 0, NULL);
orb = oaf_init (argc, argv);
#else
gnome_CORBA_init ("BonoboSel Test", "1.0", &argc, argv, 0, &ev);
orb = gnome_CORBA_ORB ();
#endif
window = gnome_app_new ("selector_test", "Bonobo Selection Test");
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (quit_callback), NULL);
vbox = gtk_vbox_new (TRUE, 0);
gnome_app_set_contents (GNOME_APP (window), vbox);
button = gtk_button_new_with_label ("Get id");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (noact_callback), NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 5);
button = gtk_button_new_with_label ("Get id of panel applet");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (panel_callback), NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 5);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1