gnome-control-center/control-center/main.c

113 lines
2.5 KiB
C
Raw Normal View History

2000-08-01 20:22:57 +00:00
/* -*- mode: c; style: linux -*- */
/* main.c
* Copyright (C) 2000 Helix Code, Inc.
*
* Written by Bradford Hovinen (hovinen@helixcode.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gnome.h>
#include <glade/glade.h>
2000-08-01 20:22:57 +00:00
#include <bonobo.h>
#ifdef GTKHTML_HAVE_GCONF
#include <gconf/gconf.h>
#endif
2000-08-01 20:22:57 +00:00
#include "capplet-dir.h"
#include "capplet-dir-view.h"
2000-08-01 20:22:57 +00:00
#ifdef HAVE_BONOBO
static gint
real_launch_control (gchar *capplet)
{
GtkWidget *app;
if ((app = capplet_control_launch (capplet, _("Configuraiton"))) == NULL)
{
gtk_main_quit ();
return FALSE;
}
gtk_signal_connect (GTK_OBJECT (app), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
return FALSE;
}
#endif
2000-08-01 20:22:57 +00:00
int
main (int argc, char **argv)
{
CORBA_ORB orb;
2001-07-25 17:44:07 +00:00
CappletDirEntry *entry;
CappletDir *dir;
static gchar *capplet = NULL;
static struct poptOption gnomecc_options[] = {
#ifdef HAVE_BONOBO
{ "run-capplet", '\0', POPT_ARG_STRING, &capplet, 0,
N_("Run the capplet CAPPLET"), N_("CAPPLET") },
#endif
{ NULL, '\0', 0, NULL, 0, NULL, NULL }
};
2000-08-01 20:22:57 +00:00
bindtextdomain (PACKAGE, GNOMELOCALEDIR);
textdomain (PACKAGE);
gnomelib_register_popt_table (gnomecc_options, _("GNOME Control Center options"));
2000-08-01 20:22:57 +00:00
gnome_init ("control-center", VERSION, argc, argv);
glade_gnome_init ();
2000-08-01 20:22:57 +00:00
orb = oaf_init (argc, argv);
if (bonobo_init (orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE)
g_error ("Cannot initialize bonobo");
2001-07-13 17:21:49 +00:00
#ifdef GTKHTML_HAVE_GCONF
gconf_init (argc, argv, NULL);
#endif
#ifdef HAVE_BONOBO
if (capplet == NULL) {
#endif
gnomecc_init ();
dir = get_root_capplet_dir ();
if (!dir)
return -1;
entry = CAPPLET_DIR_ENTRY (dir);
if (!entry)
return -1;
capplet_dir_entry_activate (entry, NULL);
#ifdef HAVE_BONOBO
} else {
gtk_idle_add ((GtkFunction) real_launch_control, capplet);
}
#endif
2000-08-01 20:22:57 +00:00
bonobo_main ();
2000-08-01 20:22:57 +00:00
return 0;
}