X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libdocument%2Fev-form-field.c;h=413fbdd7a6da208c43df1d69a785b0a43018fd58;hb=c9525f15920d12cb778b342f30dacf9e3782204a;hp=b3cc79198d822edbadbe6754cc19b53f9a9b79f6;hpb=6426ce3672bf190ab39d9c49c841232c127d174f;p=evince.git diff --git a/libdocument/ev-form-field.c b/libdocument/ev-form-field.c index b3cc7919..413fbdd7 100644 --- a/libdocument/ev-form-field.c +++ b/libdocument/ev-form-field.c @@ -19,6 +19,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ +#include #include "ev-form-field.h" static void ev_form_field_init (EvFormField *field); @@ -41,14 +42,28 @@ G_DEFINE_TYPE (EvFormFieldSignature, ev_form_field_signature, EV_TYPE_FORM_FIELD static void ev_form_field_init (EvFormField *field) { - field->page = -1; + field->page = NULL; field->changed = FALSE; field->is_read_only = FALSE; } +static void +ev_form_field_finalize (GObject *object) +{ + EvFormField *field = EV_FORM_FIELD (object); + + g_object_unref (field->page); + field->page = NULL; + + (* G_OBJECT_CLASS (ev_form_field_parent_class)->finalize) (object); +} + static void ev_form_field_class_init (EvFormFieldClass *klass) { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = ev_form_field_finalize; } static void @@ -192,78 +207,3 @@ ev_form_field_signature_new (gint id) return field; } -/* EvFormFieldMapping */ -static void -ev_form_field_mapping_free_foreach (EvFormFieldMapping *mapping) -{ - g_object_unref (mapping->field); - g_free (mapping); -} - -void -ev_form_field_mapping_free (GList *field_mapping) -{ - if (!field_mapping) - return; - - g_list_foreach (field_mapping, (GFunc)ev_form_field_mapping_free_foreach, NULL); - g_list_free (field_mapping); -} - -EvFormField * -ev_form_field_mapping_find (GList *field_mapping, - gdouble x, - gdouble y) -{ - GList *list; - - for (list = field_mapping; list; list = list->next) { - EvFormFieldMapping *mapping = list->data; - - if ((x >= mapping->x1) && - (y >= mapping->y1) && - (x <= mapping->x2) && - (y <= mapping->y2)) { - return mapping->field; - } - } - - return NULL; -} - -void -ev_form_field_mapping_get_area (GList *field_mapping, - EvFormField *field, - EvRectangle *area) -{ - GList *list; - - for (list = field_mapping; list; list = list->next) { - EvFormFieldMapping *mapping = list->data; - - if (mapping->field->id == field->id) { - area->x1 = mapping->x1; - area->y1 = mapping->y1; - area->x2 = mapping->x2; - area->y2 = mapping->y2; - - break; - } - } -} - -EvFormField * -ev_form_field_mapping_find_by_id (GList *field_mapping, - gint id) -{ - GList *list; - - for (list = field_mapping; list; list = list->next) { - EvFormFieldMapping *mapping = list->data; - - if (id == mapping->field->id) - return mapping->field; - } - - return NULL; -}