? help/it/.xml2po.mo ? help/it/evince.xml Index: backend/ev-document.c =================================================================== RCS file: /cvs/gnome/evince/backend/ev-document.c,v retrieving revision 1.35.2.2 diff -u -8 -p -r1.35.2.2 ev-document.c --- backend/ev-document.c 20 Aug 2006 21:25:56 -0000 1.35.2.2 +++ backend/ev-document.c 8 Sep 2006 21:26:21 -0000 @@ -314,8 +314,17 @@ ev_document_set_form_field_button_state { EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE(document); LOG("ev_document_set_form_field_button_state"); if (iface->set_button_state == NULL) return; iface->set_button_state(document, field_id, index, state); } +gboolean ev_document_get_form_field_button_state (EvDocument *document, int field_id, int index) +{ + EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE(document); + LOG("ev_document_get_form_field_button_state"); + if (iface->get_button_state == NULL) + return FALSE; + iface->get_button_state(document, field_id, index); +} + Index: backend/ev-document.h =================================================================== RCS file: /cvs/gnome/evince/backend/ev-document.h,v retrieving revision 1.34.2.2 diff -u -8 -p -r1.34.2.2 ev-document.h --- backend/ev-document.h 20 Aug 2006 21:26:04 -0000 1.34.2.2 +++ backend/ev-document.h 8 Sep 2006 21:26:21 -0000 @@ -103,16 +103,20 @@ struct _EvDocumentIface int field_id); gboolean (* set_text_field_content) (EvDocument *document, int field_id, gchar* content); void (* set_button_state) (EvDocument *document, int field_id, int index, gboolean state); + gboolean (* get_button_state) (EvDocument *document, + int field_id, + int index); + }; GType ev_document_get_type (void); GQuark ev_document_error_quark (void); GMutex *ev_document_get_doc_mutex (void); void ev_document_doc_mutex_lock (void); void ev_document_doc_mutex_unlock (void); @@ -144,16 +148,17 @@ gint ev_rect_cmp GList *ev_document_get_form_field_mapping (EvDocument *document, int page); gchar *ev_document_get_form_field_text_content (EvDocument *document, int field_id); void ev_document_set_form_field_text_content (EvDocument *document, int field_id, gchar* content); void ev_document_set_form_field_button_state (EvDocument *document, int field_id, int index, gboolean state); +gboolean ev_document_get_form_field_button_state (EvDocument *document, int field_id, int index); gboolean ev_document_get_crop_box (EvDocument *document, int page, EvRectangle *rect); G_END_DECLS Index: pdf/ev-poppler.cc =================================================================== RCS file: /cvs/gnome/evince/pdf/ev-poppler.cc,v retrieving revision 1.69.2.2 diff -u -8 -p -r1.69.2.2 ev-poppler.cc --- pdf/ev-poppler.cc 20 Aug 2006 21:26:05 -0000 1.69.2.2 +++ pdf/ev-poppler.cc 8 Sep 2006 21:26:25 -0000 @@ -84,16 +84,17 @@ static EvLinkDest *ev_link_dest_from_des static EvLink *ev_link_from_action (PopplerAction *action); static void pdf_document_search_free (PdfDocumentSearch *search); static void pdf_document_get_crop_box (EvDocument *document, int page, EvRectangle *rect); static GList *pdf_document_get_form_field_mapping (EvDocument *document, int page); static gchar* pdf_document_get_text_field_content (EvDocument *document, int field_id); static gboolean pdf_document_set_text_field_content (EvDocument *document, int field_id, gchar* content); static void pdf_document_set_form_field_button_state (EvDocument *document, int field_id, int index, gboolean state); +static gboolean pdf_document_get_form_field_button_state (EvDocument *document, int field_id, int index); G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT, { G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT, @@ -643,16 +644,17 @@ pdf_document_document_iface_init (EvDocu iface->get_text = pdf_document_get_text; iface->get_form_field_mapping = pdf_document_get_form_field_mapping; iface->get_crop_box = pdf_document_get_crop_box; iface->can_get_text = pdf_document_can_get_text; iface->get_info = pdf_document_get_info; iface->set_text_field_content = pdf_document_set_text_field_content; iface->get_text_field_content = pdf_document_get_text_field_content; iface->set_button_state = pdf_document_set_form_field_button_state; + iface->get_button_state = pdf_document_get_form_field_button_state; }; static void pdf_document_security_iface_init (EvDocumentSecurityIface *iface) { iface->has_document_security = pdf_document_has_document_security; iface->set_password = pdf_document_set_password; } @@ -1624,10 +1626,15 @@ static gboolean pdf_document_set_text_fi static void pdf_document_set_form_field_button_state (EvDocument *document, int field_id, int index, gboolean state) { PdfDocument *pdf_document = PDF_DOCUMENT(document); poppler_document_set_form_field_button_state(pdf_document->document, field_id, index, state); } - +static gboolean +pdf_document_get_form_field_button_state (EvDocument *document, int field_id, int index) +{ + PdfDocument *pdf_document = PDF_DOCUMENT(document); + return poppler_document_get_form_field_button_state(pdf_document->document, field_id, index); +} Index: shell/ev-view.c =================================================================== RCS file: /cvs/gnome/evince/shell/ev-view.c,v retrieving revision 1.207.2.4 diff -u -8 -p -r1.207.2.4 ev-view.c --- shell/ev-view.c 20 Aug 2006 21:26:07 -0000 1.207.2.4 +++ shell/ev-view.c 8 Sep 2006 21:26:34 -0000 @@ -4456,16 +4456,17 @@ handle_click_at_location (EvView *view, gint x_offset = 0, y_offset = 0; GList *form_field_mapping; EvFormField *new_field; GtkWidget *wid; EvPoint p[2]; GdkPoint d[2]; gint v[4]; gchar *content; + gboolean current_state; x += view->scroll_x; y += view->scroll_y; find_page_at_location (view, x, y, &page, &x_offset, &y_offset); if (page == -1) @@ -4509,17 +4510,19 @@ handle_click_at_location (EvView *view, v[0] = d[0].x - view->scroll_x; v[1] = d[0].y - view->scroll_y; v[2] = d[1].x - view->scroll_x; v[3] = d[1].y - view->scroll_y; switch (new_field->type) { case EV_FORM_FIELD_TYPE_BUTTON: /*wid = gtk_button_new_with_label("Button");*/ printf("button clicked\n"); - ev_document_set_form_field_button_state(view->document, new_field->id, 0, TRUE); + current_state = ev_document_get_form_field_button_state(view->document, new_field->id, 0); + printf("state: %i\n", current_state); + ev_document_set_form_field_button_state(view->document, new_field->id, 0, !current_state); ev_pixbuf_cache_reload_page(view->pixbuf_cache, page, view->rotation, view->scale); return; //break; case EV_FORM_FIELD_TYPE_TEXT: wid = gtk_entry_new(); content = ev_document_get_form_field_text_content(view->document, new_field->id); if (content) gtk_entry_set_text(GTK_ENTRY(wid), content);