From: Braden M. <br...@us...> - 2007-02-08 05:53:21
|
Update of /cvsroot/openvrml/openvrml/src/openvrml-player In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv21247/src/openvrml-player Modified Files: Tag: OpenVRML-0_16-BRANCH openvrml-player.glade player.cpp Log Message: Don't bother with Glade XML for creating the GtkFileChooserDialog; doing this entirely in C++ is less code and easier to get right. Index: player.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-player/player.cpp,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -C2 -d -r1.1.2.6 -r1.1.2.7 *** player.cpp 6 Feb 2007 08:22:42 -0000 1.1.2.6 --- player.cpp 8 Feb 2007 05:53:19 -0000 1.1.2.7 *************** *** 54,61 **** void * stream); void openvrml_player_on_about_activated(GtkWindow * window); void openvrml_player_on_locationentry_activated(GtkEntry * entry); - void openvrml_player_on_filechooserdialog_file_activated( - GtkFileChooser * chooser, - gpointer user_data); void openvrml_player_quit(); } --- 54,59 ---- void * stream); void openvrml_player_on_about_activated(GtkWindow * window); + void openvrml_player_on_file_open_activated(GtkWindow * window); void openvrml_player_on_locationentry_activated(GtkEntry * entry); void openvrml_player_quit(); } *************** *** 72,75 **** --- 70,74 ---- G_GNUC_INTERNAL GSource * curl_source_new(CURLM * multi_handle); G_GNUC_INTERNAL GladeXML * xml_new(GnomeProgram & program); + G_GNUC_INTERNAL void load_url(const gchar * url); *************** *** 320,323 **** --- 319,329 ---- } + G_GNUC_INTERNAL void load_url(const gchar * url) + { + std::ostringstream command; + command << "load-url " << url << std::endl; + ::write_command(command.str()); + } + typedef std::list<GPollFD> poll_fds_t; *************** *** 749,771 **** } ! void openvrml_player_on_locationentry_activated(GtkEntry * const entry) { ! const gchar * const uri = gtk_entry_get_text(entry); ! std::ostringstream command; ! command << "load-url " << uri << std::endl; ! ::write_command(command.str()); } ! void ! openvrml_player_on_filechooserdialog_file_activated( ! GtkFileChooser * const chooser, ! gpointer) { ! gtk_widget_hide(GTK_WIDGET(chooser)); ! ! const gchar * const uri = gtk_file_chooser_get_uri(chooser); ! std::ostringstream command; ! command << "load-url " << uri << std::endl; ! ::write_command(command.str()); } --- 755,810 ---- } ! void openvrml_player_on_file_open_activated(GtkWindow * const parent) { ! static GtkWidget * file_chooser_dialog = 0; ! ! if (!file_chooser_dialog) { ! file_chooser_dialog = ! gtk_file_chooser_dialog_new("Open File", ! parent, ! GTK_FILE_CHOOSER_ACTION_OPEN, ! GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, ! GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, ! NULL); ! ! gtk_dialog_set_default_response(GTK_DIALOG(file_chooser_dialog), ! GTK_RESPONSE_ACCEPT); ! ! GtkFileFilter * const world_filter = gtk_file_filter_new(); ! g_return_if_fail(world_filter); ! 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_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser_dialog), ! world_filter); ! ! GtkFileFilter * const all_filter = gtk_file_filter_new(); ! g_return_if_fail(all_filter); ! gtk_file_filter_set_name(all_filter, "All files"); ! gtk_file_filter_add_pattern(all_filter, "*"); ! ! gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser_dialog), ! all_filter); ! } ! ! const gint response = gtk_dialog_run(GTK_DIALOG(file_chooser_dialog)); ! if (response == GTK_RESPONSE_ACCEPT) { ! gchar * uri = 0; ! uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(file_chooser_dialog)); ! g_return_if_fail(uri); ! scope_guard uri_guard = make_guard(g_free, uri); ! boost::ignore_unused_variable_warning(uri_guard); ! ::load_url(uri); ! } ! ! gtk_widget_hide(file_chooser_dialog); } ! void openvrml_player_on_locationentry_activated(GtkEntry * const entry) { ! const gchar * const uri = gtk_entry_get_text(entry); ! ::load_url(uri); } Index: openvrml-player.glade =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-player/openvrml-player.glade,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** openvrml-player.glade 6 Feb 2007 08:22:42 -0000 1.1.2.2 --- openvrml-player.glade 8 Feb 2007 05:53:19 -0000 1.1.2.3 *************** *** 21,30 **** <property name="visible">True</property> <child> ! <widget class="GtkImageMenuItem" id="imagemenuitem2"> <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="gtk_widget_show" object="filechooserdialog"/> </widget> </child> --- 21,30 ---- <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="window"/> </widget> </child> *************** *** 107,142 **** </child> </widget> - <widget class="GtkFileChooserDialog" id="filechooserdialog"> - <property name="border_width">5</property> - <property name="has_separator">False</property> - <signal name="delete-event" handler="gtk_widget_hide_on_delete"/> - <signal name="file-activated" handler="openvrml_player_on_filechooserdialog_file_activated"/> - <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox2"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK</property> - <property name="spacing">2</property> - <child> - <placeholder/> - </child> - <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="dialog-action_area2"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - </widget> - </child> - </widget> </glade-interface> --- 107,109 ---- |