X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2Fgpdf.cc;h=e9a6f8410e8ab0f460cc90d22387bbccfcec204a;hb=4d3649a5c59f18447a0550c85d83b2976d9fdf6c;hp=cbeef126b3f2e252d961c5049841b79e6569abff;hpb=521f4104fc29be7b981d1b3c8573f2062b0ed940;p=evince.git diff --git a/pdf/xpdf/gpdf.cc b/pdf/xpdf/gpdf.cc index cbeef126..e9a6f841 100644 --- a/pdf/xpdf/gpdf.cc +++ b/pdf/xpdf/gpdf.cc @@ -3,7 +3,6 @@ * * Author: * Michael Meeks - * */ #include #include @@ -12,7 +11,13 @@ extern "C" { #define GString G_String #include + +#if USING_OAF +#include +#else #include +#endif + #include #include #include @@ -39,7 +44,7 @@ struct _Container { BonoboUIHandler *uih; GtkWidget *app; - GtkScrolledWindow *scroll; + GtkWidget *slot; GtkWidget *view_widget; Component *component; }; @@ -111,7 +116,12 @@ extern "C" { g_return_val_if_fail (container != NULL, FALSE); g_return_val_if_fail (container->view_widget == NULL, FALSE); +#if USING_OAF + comp = container_activate_component (container, "OAFIID:gpdf_component:892f2727-e2ec-423c-91ad-6f7b75fec6c8"); + +#else comp = container_activate_component (container, "bonobo-object:application-x-pdf"); +#endif if (!comp || !(object = comp->server)) { gnome_error_dialog (_("Could not launch bonobo object.")); return FALSE; @@ -120,11 +130,11 @@ extern "C" { CORBA_exception_init (&ev); persist = Bonobo_Unknown_query_interface ( bonobo_object_corba_objref (BONOBO_OBJECT (object)), - "IDL:GNOME/PersistStream:1.0", &ev); + "IDL:Bonobo/PersistStream:1.0", &ev); if (ev._major != CORBA_NO_EXCEPTION || persist == CORBA_OBJECT_NIL) { - gnome_error_dialog ("Panic: component is well broken."); + gnome_error_dialog ("Panic: component doesn't implement PersistStream."); return FALSE; } @@ -138,7 +148,9 @@ extern "C" { } Bonobo_PersistStream_load (persist, - (Bonobo_Stream) bonobo_object_corba_objref (BONOBO_OBJECT (stream)), &ev); + (Bonobo_Stream) bonobo_object_corba_objref (BONOBO_OBJECT (stream)), + "application/pdf", + &ev); Bonobo_Unknown_unref (persist, &ev); CORBA_Object_release (persist, &ev); @@ -301,7 +313,6 @@ static void container_about_cmd (GtkWidget *widget, Container *container) { GtkWidget *about; - int i; const gchar *authors[] = { N_("Derek B. Noonburg, main author"), @@ -312,6 +323,8 @@ container_about_cmd (GtkWidget *widget, Container *container) }; #ifdef ENABLE_NLS + int i; + for (i = 0; authors[i] != NULL; i++) authors [i] = _(authors [i]); #endif @@ -335,17 +348,11 @@ container_set_view (Container *container, Component *component) /* * Create the remote view and the local ViewFrame. */ - view_frame = bonobo_client_site_new_view (component->client_site); + view_frame = bonobo_client_site_new_view (component->client_site, + bonobo_object_corba_objref (BONOBO_OBJECT ( + container->uih))); component->view_frame = view_frame; - /* - * Set the BonoboUIHandler for this ViewFrame. That way, the - * embedded component can get access to our UIHandler server - * so that it can merge menu and toolbar items when it gets - * activated. - */ - bonobo_view_frame_set_ui_handler (view_frame, container->uih); - /* * Embed the view frame into the application. */ @@ -354,10 +361,7 @@ container_set_view (Container *container, Component *component) container->view_widget = view_widget; container->component = component; - /* - * Show the component. - */ - gtk_scrolled_window_add_with_viewport (container->scroll, view_widget); + gtk_container_add (GTK_CONTAINER (container->slot), view_widget); /* * Activate it ( get it to merge menus etc. ) @@ -365,7 +369,7 @@ container_set_view (Container *container, Component *component) bonobo_view_frame_view_activate (view_frame); bonobo_view_frame_set_covered (view_frame, FALSE); - gtk_widget_show_all (GTK_WIDGET (container->scroll)); + gtk_widget_show_all (GTK_WIDGET (container->slot)); } static BonoboObjectClient * @@ -378,8 +382,7 @@ container_launch_component (BonoboClientSite *client_site, /* * Launch the component. */ - object_server = bonobo_object_activate_with_goad_id ( - NULL, component_goad_id, GOAD_ACTIVATE_SHLIB, NULL); + object_server = bonobo_object_activate (component_goad_id, 0); if (object_server == NULL) return NULL; @@ -478,108 +481,8 @@ extern "C" { tmp_list = g_list_next (tmp_list); } } - - /* - * GtkWidget key_press method override - * - * Scrolls the window on keypress - */ - static gint - key_press_event_cb (GtkWidget *widget, GdkEventKey *event) - { - Container *container = (Container *) gtk_object_get_data (GTK_OBJECT (widget), "container_data"); - Component *component; - GtkScrolledWindow *win; - float delta; - - g_return_val_if_fail (container != NULL, FALSE); - - win = container->scroll; - component = container->component; - if (component == NULL || win == NULL) - return FALSE; - /* - * Scrolling the view. - */ - if (event->keyval == GDK_Up) { - GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment (win); - - if (event->state & GDK_CONTROL_MASK) - delta = adj->step_increment * 3; - else - delta = adj->step_increment; - - adj->value = CLAMP (adj->value - delta, - adj->lower, adj->upper - adj->page_size); - - gtk_adjustment_value_changed (adj); - return TRUE; - } else if (event->keyval == GDK_Down) { - GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment (win); - - if (event->state & GDK_CONTROL_MASK) - delta = adj->step_increment * 3; - else - delta = adj->step_increment; - - adj->value = CLAMP (adj->value + delta, - adj->lower, adj->upper - adj->page_size); - gtk_adjustment_value_changed (adj); - return TRUE; - } else if (event->keyval == GDK_Left) { - GtkAdjustment *adj = gtk_scrolled_window_get_hadjustment (win); - - if (event->state & GDK_CONTROL_MASK) - delta = adj->step_increment * 3; - else - delta = adj->step_increment; - - adj->value = CLAMP (adj->value - delta, - adj->lower, adj->upper - adj->page_size); - gtk_adjustment_value_changed (adj); - return TRUE; - } else if (event->keyval == GDK_Right) { - GtkAdjustment *adj = gtk_scrolled_window_get_hadjustment (win); - - if (event->state & GDK_CONTROL_MASK) - delta = adj->step_increment * 3; - else - delta = adj->step_increment; - - adj->value = CLAMP (adj->value + delta, - adj->lower, adj->upper - adj->page_size); - gtk_adjustment_value_changed (adj); - return TRUE; - - /* - * Various shortcuts mapped to verbs. - */ - - } else if (event->keyval == GDK_Home) { - bonobo_view_frame_view_do_verb (component->view_frame, VERB_FIRST); - return TRUE; - } else if (event->keyval == GDK_End) { - bonobo_view_frame_view_do_verb (component->view_frame, VERB_LAST); - return TRUE; - } else if (event->keyval == GDK_Page_Down || - event->keyval == GDK_Next) { - bonobo_view_frame_view_do_verb (component->view_frame, VERB_NEXT); - return TRUE; - } else if (event->keyval == GDK_Page_Up || - event->keyval == GDK_Prior) { - bonobo_view_frame_view_do_verb (component->view_frame, VERB_PREV); - return TRUE; - } else if (event->keyval == GDK_plus || - event->keyval == GDK_equal) { - bonobo_view_frame_view_do_verb (component->view_frame, VERB_Z_IN); - } else if (event->keyval == GDK_underscore || - event->keyval == GDK_minus) { - bonobo_view_frame_view_do_verb (component->view_frame, VERB_Z_OUT); - } - return FALSE; - } -} +} static void container_create_menus (Container *container) @@ -620,7 +523,7 @@ container_new (const char *fname) container = g_new0 (Container, 1); container->app = gnome_app_new ("pdf-viewer", - "GNOME PDF viewer"); + "GNOME PDF viewer"); gtk_drag_dest_set (container->app, GTK_DEST_DEFAULT_ALL, @@ -637,14 +540,12 @@ container_new (const char *fname) container->container = bonobo_container_new (); container->view_widget = NULL; - container->scroll = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new (NULL, NULL)); - gtk_scrolled_window_set_policy (container->scroll, GTK_POLICY_ALWAYS, - GTK_POLICY_ALWAYS); - gnome_app_set_contents (GNOME_APP (container->app), GTK_WIDGET (container->scroll)); + container->slot = gtk_event_box_new (); + gtk_widget_show (container->slot); + + gnome_app_set_contents (GNOME_APP (container->app), GTK_WIDGET (container->slot)); gtk_object_set_data (GTK_OBJECT (container->app), "container_data", container); - gtk_signal_connect (GTK_OBJECT (container->app), "key_press_event", - GTK_SIGNAL_FUNC (key_press_event_cb), NULL); gtk_signal_connect (GTK_OBJECT (container->app), "delete_event", GTK_SIGNAL_FUNC (container_destroy_cb), container); @@ -686,14 +587,23 @@ main (int argc, char **argv) CORBA_exception_init (&ev); + +#if USING_OAF + gnomelib_register_popt_table (oaf_popt_options, "OAF"); + gnome_init_with_popt_table("PDFViewer", "0.0.1", + argc, argv, + gpdf_popt_options, 0, &ctx); + orb = oaf_init (argc, argv); +#else gnome_CORBA_init_with_popt_table ("PDFViewer", "0.0.1", &argc, argv, gpdf_popt_options, 0, &ctx, GNORBA_INIT_SERVER_FUNC, &ev); - CORBA_exception_free (&ev); - orb = gnome_CORBA_ORB (); +#endif + + CORBA_exception_free (&ev); if (bonobo_init (orb, NULL, NULL) == FALSE) g_error (_("Could not initialize Bonobo!\n"));