1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
2 /* this file is part of evince, a gnome document viewer
4 * Copyright (C) 2006 Julien Rebetez
6 * Evince is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * Evince is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
21 #ifndef EV_FORM_FIELD_H
22 #define EV_FORM_FIELD_H
24 #include <glib-object.h>
26 #include "ev-document.h"
30 #define EV_TYPE_FORM_FIELD (ev_form_field_get_type())
31 #define EV_FORM_FIELD(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD, EvFormField))
32 #define EV_FORM_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD, EvFormFieldClass))
33 #define EV_IS_FORM_FIELD(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD))
34 #define EV_IS_FORM_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD))
35 #define EV_FORM_FIELD_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD, EvFormFieldClass))
37 #define EV_TYPE_FORM_FIELD_TEXT (ev_form_field_text_get_type())
38 #define EV_FORM_FIELD_TEXT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_TEXT, EvFormFieldText))
39 #define EV_FORM_FIELD_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_TEXT, EvFormFieldTextClass))
40 #define EV_IS_FORM_FIELD_TEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_TEXT))
41 #define EV_IS_FORM_FIELD_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_TEXT))
42 #define EV_FORM_FIELD_TEXT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_TEXT, EvFormFieldTextClass))
44 #define EV_TYPE_FORM_FIELD_BUTTON (ev_form_field_button_get_type())
45 #define EV_FORM_FIELD_BUTTON(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_BUTTON, EvFormFieldButton))
46 #define EV_FORM_FIELD_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_BUTTON, EvFormFieldButtonClass))
47 #define EV_IS_FORM_FIELD_BUTTON(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_BUTTON))
48 #define EV_IS_FORM_FIELD_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_BUTTON))
49 #define EV_FORM_FIELD_BUTTON_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_BUTTON, EvFormFieldButtonClass))
51 #define EV_TYPE_FORM_FIELD_CHOICE (ev_form_field_choice_get_type())
52 #define EV_FORM_FIELD_CHOICE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_CHOICE, EvFormFieldChoice))
53 #define EV_FORM_FIELD_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_CHOICE, EvFormFieldChoiceClass))
54 #define EV_IS_FORM_FIELD_CHOICE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_CHOICE))
55 #define EV_IS_FORM_FIELD_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_CHOICE))
56 #define EV_FORM_FIELD_CHOICE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_CHOICE, EvFormFieldChoiceClass))
58 #define EV_TYPE_FORM_FIELD_SIGNATURE (ev_form_field_signature_get_type())
59 #define EV_FORM_FIELD_SIGNATURE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_FORM_FIELD_SIGNATURE, EvFormFieldSignature))
60 #define EV_FORM_FIELD_SIGNATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_FORM_FIELD_SIGNATURE, EvFormFieldSignatureClass))
61 #define EV_IS_FORM_FIELD_SIGNATURE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_FORM_FIELD_SIGNATURE))
62 #define EV_IS_FORM_FIELD_SIGNATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_FORM_FIELD_SIGNATURE))
63 #define EV_FORM_FIELD_SIGNATURE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_FORM_FIELD_SIGNATURE, EvFormFieldSignatureClass))
65 typedef struct _EvFormField EvFormField;
66 typedef struct _EvFormFieldClass EvFormFieldClass;
68 typedef struct _EvFormFieldText EvFormFieldText;
69 typedef struct _EvFormFieldTextClass EvFormFieldTextClass;
71 typedef struct _EvFormFieldButton EvFormFieldButton;
72 typedef struct _EvFormFieldButtonClass EvFormFieldButtonClass;
74 typedef struct _EvFormFieldChoice EvFormFieldChoice;
75 typedef struct _EvFormFieldChoiceClass EvFormFieldChoiceClass;
77 typedef struct _EvFormFieldSignature EvFormFieldSignature;
78 typedef struct _EvFormFieldSignatureClass EvFormFieldSignatureClass;
82 EV_FORM_FIELD_TEXT_NORMAL,
83 EV_FORM_FIELD_TEXT_MULTILINE,
84 EV_FORM_FIELD_TEXT_FILE_SELECT
85 } EvFormFieldTextType;
89 EV_FORM_FIELD_BUTTON_PUSH,
90 EV_FORM_FIELD_BUTTON_CHECK,
91 EV_FORM_FIELD_BUTTON_RADIO
92 } EvFormFieldButtonType;
96 EV_FORM_FIELD_CHOICE_COMBO,
97 EV_FORM_FIELD_CHOICE_LIST
98 } EvFormFieldChoiceType;
105 gboolean is_read_only;
112 struct _EvFormFieldClass
114 GObjectClass parent_class;
117 struct _EvFormFieldText
121 EvFormFieldTextType type;
123 gboolean do_spell_check : 1;
124 gboolean do_scroll : 1;
126 gboolean is_rich_text : 1;
127 gboolean is_password;
133 struct _EvFormFieldTextClass
135 EvFormFieldClass partent_class;
138 struct _EvFormFieldButton
142 EvFormFieldButtonType type;
147 struct _EvFormFieldButtonClass
149 EvFormFieldClass partent_class;
152 struct _EvFormFieldChoice
156 EvFormFieldChoiceType type;
158 gboolean multi_select : 1;
159 gboolean is_editable : 1;
160 gboolean do_spell_check : 1;
161 gboolean commit_on_sel_change : 1;
163 GList *selected_items;
167 struct _EvFormFieldChoiceClass
169 EvFormFieldClass partent_class;
172 struct _EvFormFieldSignature
179 struct _EvFormFieldSignatureClass
181 EvFormFieldClass partent_class;
184 /* EvFormField base class */
185 GType ev_form_field_get_type (void) G_GNUC_CONST;
187 /* EvFormFieldText */
188 GType ev_form_field_text_get_type (void) G_GNUC_CONST;
189 EvFormField *ev_form_field_text_new (gint id,
190 EvFormFieldTextType type);
192 /* EvFormFieldButton */
193 GType ev_form_field_button_get_type (void) G_GNUC_CONST;
194 EvFormField *ev_form_field_button_new (gint id,
195 EvFormFieldButtonType type);
197 /* EvFormFieldChoice */
198 GType ev_form_field_choice_get_type (void) G_GNUC_CONST;
199 EvFormField *ev_form_field_choice_new (gint id,
200 EvFormFieldChoiceType type);
202 /* EvFormFieldSignature */
203 GType ev_form_field_signature_get_type (void) G_GNUC_CONST;
204 EvFormField *ev_form_field_signature_new (gint id);
207 /* FormField Mapping stuff */
208 typedef struct _EvFormFieldMapping EvFormFieldMapping;
209 struct _EvFormFieldMapping {
217 void ev_form_field_mapping_free (GList *field_mapping);
218 EvFormField *ev_form_field_mapping_find (GList *field_mapping,
221 void ev_form_field_mapping_get_area (GList *field_mapping,
224 EvFormField *ev_form_field_mapping_find_by_id (GList *form_field_mapping,
229 #endif /* !EV_FORM_FIELD_H */