From: <br...@us...> - 2008-07-23 06:49:28
|
Revision: 3495 http://openvrml.svn.sourceforge.net/openvrml/?rev=3495&view=rev Author: braden Date: 2008-07-23 06:49:36 +0000 (Wed, 23 Jul 2008) Log Message: ----------- Use GtkBuilder in openvrml-player instead of libglade. Note that this changes the environment variable used to locate the UI definition from OPENVRML_PLAYER_GLADEDIR to OPENVRML_PLAYER_UIDIR. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac trunk/src/Makefile.am trunk/src/openvrml-player/filechooserdialog.cpp trunk/src/openvrml-player/filechooserdialog.h trunk/src/openvrml-player/player.cpp Added Paths: ----------- trunk/src/openvrml-player/openvrml-player.ui Removed Paths: ------------- trunk/src/openvrml-player/openvrml-player.glade Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/ChangeLog 2008-07-23 06:49:36 UTC (rev 3495) @@ -1,3 +1,56 @@ +2008-07-23 Braden McDaniel <br...@en...> + + Use GtkBuilder in openvrml-player instead of libglade. Note that + this changes the environment variable used to locate the UI + definition from OPENVRML_PLAYER_GLADEDIR to OPENVRML_PLAYER_UIDIR. + + * configure.ac: Removed check for libglade; require gtk+-2.0 >= + 2.12. + * src/Makefile.am + (openvrml_player_openvrml_player_CXXFLAGS): Removed GLADE_CFLAGS. + (openvrml_player_openvrml_player_LDFLAGS): Removed GLADE_LIBS. + (openvrml_player_gladedir): Removed; replaced with + openvrml_player_uidir. + (openvrml_player_glade_DATA): Removed; replaced with + openvrml_player_ui_DATA. + (openvrml_player_uidir): Added. + (openvrml_player_ui_DATA): Added. + (EXTRA_DIST): Distribute openvrml_player_ui_DATA files. + * src/openvrml-player/filechooserdialog.cpp + (openvrml_player_file_chooser_dialog_get_type()): Removed; use + definition provided by G_DEFINE_TYPE instead. + (openvrml_player_file_chooser_dialog_new(GtkWindow *)): Removed; + logic moved to constructor. + (constructor(GType, guint, GObjectConstructParam *)): Moved dialog + setup logic here. + (class_init(gpointer, gpointer)): Moved to + openvrml_player_file_chooser_dialog_class_init (because + G_DEFINE_TYPE wants the long name). + (init(GTypeInstance *, gpointer)): Moved to + openvrml_player_file_chooser_dialog_init (because G_DEFINE_TYPE + wants the long name). + (openvrml_player_file_chooser_dialog_class_init(OpenvrmlPlayerFileChooserDialogClass *)): + Specify the constructor function. + (openvrml_player_file_chooser_dialog_init(OpenvrmlPlayerFileChooserDialog *)): + Added. + * src/openvrml-player/filechooserdialog.h + (openvrml_player_file_chooser_dialog_new(GtkWindow *)): Removed. + * src/openvrml-player/openvrml-player.glade: Removed. + * src/openvrml-player/openvrml-player.ui: Added. + * src/openvrml-player/player.cpp + (main(int, char *[])): Removed calls to glade_init and + glade_register_widget; create a GtkBuilder instead of GladeXML; + call gtk_builder_connect_signals instead of + glade_xml_signal_autoconnect; call gtk_builder_get_object instead + of glade_xml_get_widget. + (xml_new(GnomeProgram &)): Removed; replaced with builder_new. + (builder_new(GnomeProgram &, GError **)): Create a GtkBuilder from + openvrml-player.ui. Use the environment variable + OPENVRML_PLAYER_UIDIR to locate this file if it is not in a known + location. + (openvrml_player_build_file_chooser_dialog(GladeXML *, GType, + GladeWidgetInfo *)): Removed. + 2008-07-20 Braden McDaniel <br...@en...> * src/openvrml-player/player.cpp: Apply OPENVRML_API to symbols Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/configure.ac 2008-07-23 06:49:36 UTC (rev 3495) @@ -160,9 +160,10 @@ # openvrml-xembed and openvrml-player both use GOption, which was # introduced in GLib 2.6. # -PKG_CHECK_MODULES([GTK], [gtk+-2.0 gthread-2.0 glib-2.0 >= 2.6], , +# openvrml-player uses GtkBuilder, which was introduced in GTK+ 2.12. +# +PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.12 gthread-2.0 glib-2.0 >= 2.6], , [have_gtk=no]) -PKG_CHECK_MODULES([GLADE], [libglade-2.0], , [have_libglade=no]) # # openvrml-player uses GNOME_PARAM_GOPTION_CONTEXT, which was # introduced in libgnome 2.14. Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/src/Makefile.am 2008-07-23 06:49:36 UTC (rev 3495) @@ -360,16 +360,14 @@ -I$(srcdir)/libopenvrml openvrml_player_openvrml_player_CXXFLAGS = \ $(GNOMEUI_CFLAGS) \ - $(GLADE_CFLAGS) \ $(CURL_CFLAGS) openvrml_player_openvrml_player_LDFLAGS = \ -export-dynamic \ $(GNOMEUI_LIBS) \ - $(GLADE_LIBS) \ $(CURL_LIBS) -openvrml_player_gladedir = $(datadir)/openvrml-player/glade -openvrml_player_glade_DATA = openvrml-player/openvrml-player.glade +openvrml_player_uidir = $(datadir)/openvrml-player/ui +openvrml_player_ui_DATA = openvrml-player/openvrml-player.ui openvrml_player_openvrml_player_SOURCES = \ openvrml-player/filechooserdialog.cpp \ @@ -379,7 +377,7 @@ EXTRA_DIST = \ libopenvrml/openvrml-config.h.in \ libopenvrml-gl/openvrml-gl-config.h.in \ - $(openvrml_player_glade_DATA) + $(openvrml_player_ui_DATA) # # Automake 1.10 seems to need this for distcheck to work. Modified: trunk/src/openvrml-player/filechooserdialog.cpp =================================================================== --- trunk/src/openvrml-player/filechooserdialog.cpp 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/src/openvrml-player/filechooserdialog.cpp 2008-07-23 06:49:36 UTC (rev 3495) @@ -23,90 +23,83 @@ using namespace boost::multi_index::detail; // for scope_guard +G_DEFINE_TYPE(OpenvrmlPlayerFileChooserDialog, + openvrml_player_file_chooser_dialog, + GTK_TYPE_FILE_CHOOSER_DIALOG) + namespace { - G_GNUC_INTERNAL void class_init(gpointer g_class, gpointer class_data); - G_GNUC_INTERNAL void init(GTypeInstance * instance, gpointer g_class); -} -GtkType openvrml_player_file_chooser_dialog_get_type() -{ - static GtkType type = 0; + G_GNUC_INTERNAL GObject * + constructor(GType type, + guint n_construct_properties, + GObjectConstructParam * construct_properties) + { + GObject * obj; + { + // Invoke parent constructor. + OpenvrmlPlayerFileChooserDialogClass * klass = + OPENVRML_PLAYER_FILE_CHOOSER_DIALOG_CLASS( + g_type_class_peek( + OPENVRML_PLAYER_TYPE_FILE_CHOOSER_DIALOG)); + GObjectClass * parent_class = + G_OBJECT_CLASS(g_type_class_peek_parent(klass)); + obj = parent_class->constructor(type, + n_construct_properties, + construct_properties); + } - if (G_UNLIKELY(!type)) { - type = - g_type_register_static_simple( - GTK_TYPE_FILE_CHOOSER_DIALOG, - "OpenvrmlPlayerFileChooserDialog", - sizeof (OpenvrmlPlayerFileChooserDialogClass), - class_init, - sizeof (OpenvrmlPlayerFileChooserDialog), - init, - GTypeFlags(0)); - } - return type; -} + GValue title = {}; + g_value_init(&title, G_TYPE_STRING); + g_value_set_string(&title, "Open"); + g_object_set_property(obj, "title", &title); + GValue action = {}; + g_value_init(&action, G_TYPE_UINT); + g_value_set_uint(&action, GTK_FILE_CHOOSER_ACTION_OPEN); + g_object_set_property(obj, "action", &action); -GtkWidget * openvrml_player_file_chooser_dialog_new(GtkWindow * parent) -{ - GtkWidget * const dialog = - static_cast<GtkWidget *>( - g_object_new(OPENVRML_PLAYER_TYPE_FILE_CHOOSER_DIALOG, - "title", "Open", - "action", GTK_FILE_CHOOSER_ACTION_OPEN, - NULL)); - scope_guard dialog_guard = make_guard(g_object_unref, dialog); - boost::ignore_unused_variable_warning(dialog_guard); + gtk_dialog_add_buttons(GTK_DIALOG(obj), + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); - if (parent) { - gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); - } + gtk_dialog_set_default_response(GTK_DIALOG(obj), + GTK_RESPONSE_ACCEPT); - gtk_dialog_add_buttons(GTK_DIALOG(dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); + GtkFileFilter * const world_filter = gtk_file_filter_new(); + g_return_val_if_fail(world_filter, 0); + scope_guard world_filter_guard = make_guard(g_object_unref, + world_filter); + boost::ignore_unused_variable_warning(world_filter_guard); + gtk_file_filter_set_name(world_filter, "VRML/X3D worlds"); + gtk_file_filter_add_mime_type(world_filter, "x-world/x-vrml"); + gtk_file_filter_add_mime_type(world_filter, "model/vrml"); + gtk_file_filter_add_mime_type(world_filter, "model/x3d+vrml"); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), - GTK_RESPONSE_ACCEPT); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(obj), world_filter); + world_filter_guard.dismiss(); - GtkFileFilter * const world_filter = gtk_file_filter_new(); - g_return_val_if_fail(world_filter, 0); - scope_guard world_filter_guard = make_guard(g_object_unref, world_filter); - boost::ignore_unused_variable_warning(world_filter_guard); - gtk_file_filter_set_name(world_filter, "VRML/X3D worlds"); - gtk_file_filter_add_mime_type(world_filter, "x-world/x-vrml"); - gtk_file_filter_add_mime_type(world_filter, "model/vrml"); - gtk_file_filter_add_mime_type(world_filter, "model/x3d+vrml"); + GtkFileFilter * const all_filter = gtk_file_filter_new(); + g_return_val_if_fail(all_filter, 0); + scope_guard all_filter_guard = make_guard(g_object_unref, all_filter); + boost::ignore_unused_variable_warning(all_filter_guard); + gtk_file_filter_set_name(all_filter, "All files"); + gtk_file_filter_add_pattern(all_filter, "*"); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), world_filter); - world_filter_guard.dismiss(); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(obj), all_filter); + all_filter_guard.dismiss(); - GtkFileFilter * const all_filter = gtk_file_filter_new(); - g_return_val_if_fail(all_filter, 0); - scope_guard all_filter_guard = make_guard(g_object_unref, all_filter); - boost::ignore_unused_variable_warning(all_filter_guard); - gtk_file_filter_set_name(all_filter, "All files"); - gtk_file_filter_add_pattern(all_filter, "*"); - - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), all_filter); - all_filter_guard.dismiss(); - - dialog_guard.dismiss(); - - return dialog; + return obj; + } } -namespace { - - G_GNUC_INTERNAL GtkWidgetClass * parent_class; - - void class_init(const gpointer g_class, gpointer /* class_data */) - { - ::parent_class = - static_cast<GtkWidgetClass *>( - g_type_class_peek_parent(G_OBJECT_CLASS(g_class))); - } - - void init(GTypeInstance * /* instance */, gpointer /* g_class */) - {} +void +openvrml_player_file_chooser_dialog_class_init( + OpenvrmlPlayerFileChooserDialogClass * const klass) +{ + G_OBJECT_CLASS(klass)->constructor = constructor; } + +void +openvrml_player_file_chooser_dialog_init( + OpenvrmlPlayerFileChooserDialog * dialog) +{} Modified: trunk/src/openvrml-player/filechooserdialog.h =================================================================== --- trunk/src/openvrml-player/filechooserdialog.h 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/src/openvrml-player/filechooserdialog.h 2008-07-23 06:49:36 UTC (rev 3495) @@ -43,7 +43,6 @@ }; GType openvrml_player_file_chooser_dialog_get_type() G_GNUC_CONST; -GtkWidget * openvrml_player_file_chooser_dialog_new(GtkWindow * parent); G_END_DECLS Deleted: trunk/src/openvrml-player/openvrml-player.glade =================================================================== --- trunk/src/openvrml-player/openvrml-player.glade 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/src/openvrml-player/openvrml-player.glade 2008-07-23 06:49:36 UTC (rev 3495) @@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> -<glade-interface> - <widget class="GtkWindow" id="window"> - <property name="default-width">640</property> - <property name="default-height">480</property> - <signal name="delete-event" handler="openvrml_player_quit"/> - <child> - <widget class="GtkVBox" id="vbox1"> - <property name="visible">True</property> - <child> - <widget class="GtkMenuBar" id="menubar1"> - <property name="visible">True</property> - <child> - <widget class="GtkMenuItem" id="menuitem1"> - <property name="visible">True</property> - <property name="label" translatable="yes">_File</property> - <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu1"> - <property name="visible">True</property> - <child> - <widget class="GtkImageMenuItem" id="imagemenuitemopen"> - <property name="visible">True</property> - <property name="label" translatable="yes">gtk-open</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - <signal name="activate" handler="openvrml_player_on_file_open_activated" object="filechooserdialog"/> - </widget> - </child> - <child> - <widget class="GtkSeparatorMenuItem" id="separatormenuitem1"> - <property name="visible">True</property> - </widget> - </child> - <child> - <widget class="GtkImageMenuItem" id="imagemenuitem5"> - <property name="visible">True</property> - <property name="label" translatable="yes">gtk-quit</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - <signal name="activate" handler="openvrml_player_quit"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - <child> - <widget class="GtkMenuItem" id="menuitem4"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Help</property> - <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu3"> - <property name="visible">True</property> - <child> - <widget class="GtkImageMenuItem" id="imagemenuitem10"> - <property name="visible">True</property> - <property name="label" translatable="yes">gtk-about</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - <signal name="activate" handler="openvrml_player_on_about_activated" object="window"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - </packing> - </child> - <child> - <widget class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <child> - <widget class="GtkEntry" id="locationentry"> - <property name="visible">True</property> - <signal name="activate" handler="openvrml_player_on_locationentry_activated"/> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <widget class="GtkSocket" id="socket"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="has-focus">True</property> - </widget> - </child> - <child> - <widget class="GtkStatusbar" id="statusbar1"> - <property name="visible">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">3</property> - </packing> - </child> - </widget> - </child> - </widget> - <widget class="OpenvrmlPlayerFileChooserDialog" id="filechooserdialog"> - </widget> -</glade-interface> Added: trunk/src/openvrml-player/openvrml-player.ui =================================================================== --- trunk/src/openvrml-player/openvrml-player.ui (rev 0) +++ trunk/src/openvrml-player/openvrml-player.ui 2008-07-23 06:49:36 UTC (rev 3495) @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<interface> + <object class="GtkUIManager" id="uimanager1"> + <child> + <object class="GtkActionGroup" id="actiongroup1"> + <child> + <object class="GtkAction" id="menuitem1"> + <property name="name">menuitem1</property> + <property name="label" translatable="yes">_File</property> + </object> + </child> + <child> + <object class="GtkAction" id="imagemenuitemopen"> + <property name="stock_id" translatable="yes">gtk-open</property> + <property name="name">imagemenuitemopen</property> + <signal handler="openvrml_player_on_file_open_activated" name="activate" object="filechooserdialog"/> + </object> + </child> + <child> + <object class="GtkAction" id="imagemenuitem5"> + <property name="stock_id" translatable="yes">gtk-quit</property> + <property name="name">imagemenuitem5</property> + <signal handler="openvrml_player_quit" name="activate"/> + </object> + </child> + <child> + <object class="GtkAction" id="menuitem4"> + <property name="name">menuitem4</property> + <property name="label" translatable="yes">_Help</property> + </object> + </child> + <child> + <object class="GtkAction" id="imagemenuitem10"> + <property name="stock_id" translatable="yes">gtk-about</property> + <property name="name">imagemenuitem10</property> + <signal handler="openvrml_player_on_about_activated" name="activate" object="window"/> + </object> + </child> + </object> + </child> + <ui> + <menubar name="menubar1"> + <menu action="menuitem1"> + <menuitem action="imagemenuitemopen"/> + <separator/> + <menuitem action="imagemenuitem5"/> + </menu> + <menu action="menuitem4"> + <menuitem action="imagemenuitem10"/> + </menu> + </menubar> + </ui> + </object> + <object class="GtkWindow" id="window"> + <property name="default-width">640</property> + <property name="default-height">480</property> + <signal handler="openvrml_player_quit" name="delete-event"/> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <child> + <object class="GtkMenuBar" constructor="uimanager1" id="menubar1"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <child> + <object class="GtkEntry" id="locationentry"> + <property name="visible">True</property> + <signal handler="openvrml_player_on_locationentry_activated" name="activate"/> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkSocket" id="socket"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="has-focus">True</property> + </object> + </child> + <child> + <object class="GtkStatusbar" id="statusbar1"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + </object> + <object class="OpenvrmlPlayerFileChooserDialog" id="filechooserdialog"> + </object> +</interface> Modified: trunk/src/openvrml-player/player.cpp =================================================================== --- trunk/src/openvrml-player/player.cpp 2008-07-20 09:43:51 UTC (rev 3494) +++ trunk/src/openvrml-player/player.cpp 2008-07-23 06:49:36 UTC (rev 3495) @@ -29,8 +29,7 @@ # include <curl/curl.h> # include <libgnomevfs/gnome-vfs.h> # include <libgnomeui/libgnomeui.h> -# include <glade/glade.h> -# include <glade/glade-build.h> +# include <gtk/gtkbuilder.h> # include <openvrml/browser.h> # include "filechooserdialog.h" @@ -43,7 +42,7 @@ extern "C" { // - // GTK+ signal handlers; libglade needs them to have external linkage in + // GTK+ signal handlers; GtkBuilder needs them to have external linkage in // order to connect them. // OPENVRML_API void openvrml_player_on_about_activated(GtkWindow * window); @@ -82,11 +81,6 @@ G_GNUC_INTERNAL void openvrml_player_watch_child(GPid pid, gint status, gpointer data); - G_GNUC_INTERNAL - GtkWidget * - openvrml_player_build_file_chooser_dialog(GladeXML * xml, - GType widget_type, - GladeWidgetInfo * info); } namespace { @@ -103,7 +97,8 @@ gint & out_fd); G_GNUC_INTERNAL ssize_t write_command(const std::string & command); G_GNUC_INTERNAL GSource * curl_source_new(CURLM * multi_handle); - G_GNUC_INTERNAL GladeXML * xml_new(GnomeProgram & program); + G_GNUC_INTERNAL GtkBuilder * builder_new(GnomeProgram & program, + GError ** error); G_GNUC_INTERNAL void set_locationentry_text(const gchar * text); G_GNUC_INTERNAL void load_url(const gchar * url); @@ -214,29 +209,32 @@ GNOME_PARAM_APP_DATADIR, OPENVRML_PLAYER_PKGDATADIR_, GNOME_PARAM_NONE); - glade_init(); - glade_register_widget(OPENVRML_PLAYER_TYPE_FILE_CHOOSER_DIALOG, - openvrml_player_build_file_chooser_dialog, - 0, - 0); + GError * error = 0; + scope_guard error_guard = make_guard(g_error_free, ref(error)); + GtkBuilder * const builder = builder_new(*program, &error); + if (!builder) { + g_critical("Failed to create UI builder: %s", error->message); + return EXIT_FAILURE; + } + gtk_builder_connect_signals(builder, 0); - GladeXML * const xml = xml_new(*program); - glade_xml_signal_autoconnect(xml); - - GtkWidget * const app_window = glade_xml_get_widget(xml, "window"); + GtkWidget * const app_window = + GTK_WIDGET(gtk_builder_get_object(builder, "window")); GtkWidget * const file_chooser_dialog = - glade_xml_get_widget(xml, "filechooserdialog"); + GTK_WIDGET(gtk_builder_get_object(builder, "filechooserdialog")); gtk_window_set_transient_for(GTK_WINDOW(file_chooser_dialog), GTK_WINDOW(app_window)); - ::location_entry = glade_xml_get_widget(xml, "locationentry"); + ::location_entry = + GTK_WIDGET(gtk_builder_get_object(builder, "locationentry")); g_signal_connect(file_chooser_dialog, "response", G_CALLBACK(openvrml_player_on_filechooserdialog_response), location_entry); gint standard_input, standard_output; - GtkWidget * const socket = glade_xml_get_widget(xml, "socket"); + GtkWidget * const socket = + GTK_WIDGET(gtk_builder_get_object(builder, "socket")); const GPid child_pid = spawn_openvrml_xembed(gtk_socket_get_id(GTK_SOCKET(socket)), standard_input, @@ -246,8 +244,6 @@ ::command_channel = g_io_channel_unix_new(standard_input); if (!::command_channel) { throw std::bad_alloc(); } - GError * error = 0; - scope_guard error_guard = make_guard(g_error_free, ref(error)); GIOStatus status = g_io_channel_set_encoding(::command_channel, 0, // binary (no encoding) &error); @@ -413,31 +409,36 @@ return child_pid; } - GladeXML * xml_new(GnomeProgram & program) + GtkBuilder * builder_new(GnomeProgram & program, GError ** error) { using std::string; - const gchar * const gladedir = g_getenv("OPENVRML_PLAYER_GLADEDIR"); - string glade_file_str; - const gchar * glade_file = 0; - if (gladedir) { - glade_file_str = string(gladedir) + "/openvrml-player.glade"; - glade_file = glade_file_str.c_str(); + const gchar * const uidir = g_getenv("OPENVRML_PLAYER_UIDIR"); + string ui_file_str; + const gchar * ui_file = 0; + if (uidir) { + ui_file_str = string(uidir) + "/openvrml-player.ui"; + ui_file = ui_file_str.c_str(); } - if (!glade_file) { + if (!ui_file) { static const gboolean only_if_exists = true; - glade_file = + ui_file = gnome_program_locate_file(&program, GNOME_FILE_DOMAIN_APP_DATADIR, - "/glade/openvrml-player.glade", + "/ui/openvrml-player.ui", only_if_exists, 0); } - g_return_val_if_fail(glade_file, 0); + g_return_val_if_fail(ui_file, 0); - return glade_xml_new(glade_file, 0, 0); + GtkBuilder * builder = gtk_builder_new(); + if (!gtk_builder_add_from_file(builder, ui_file, error)) { + return 0; + } + + return builder; } void set_locationentry_text(const gchar * const text) @@ -1020,15 +1021,6 @@ gtk_main_quit(); } -GtkWidget * -openvrml_player_build_file_chooser_dialog(GladeXML * /* xml */, - GType /* widget_type */, - GladeWidgetInfo * /* info */) -{ - GtkWidget * widget = openvrml_player_file_chooser_dialog_new(0); - return widget; -} - namespace { ssize_t write_command(const std::string & command) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |