File: pps-form-field.h

package info (click to toggle)
papers 49.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 21,044 kB
  • sloc: ansic: 37,728; sh: 197; xml: 127; makefile: 113
file content (194 lines) | stat: -rw-r--r-- 6,839 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
// SPDX-License-Identifier: GPL-2.0-or-later
/* this file is part of papers, a gnome document viewer
 *
 *  Copyright (C) 2006 Julien Rebetez
 */

#pragma once

#if !defined(__PPS_PAPERS_DOCUMENT_H_INSIDE__) && !defined(PAPERS_COMPILATION)
#error "Only <papers-document.h> can be included directly."
#endif

#include <glib-object.h>

#include "pps-document.h"
#include "pps-link.h"
#include "pps-macros.h"

G_BEGIN_DECLS

#define PPS_TYPE_FORM_FIELD (pps_form_field_get_type ())
#define PPS_FORM_FIELD(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PPS_TYPE_FORM_FIELD, PpsFormField))
#define PPS_FORM_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PPS_TYPE_FORM_FIELD, PpsFormFieldClass))
#define PPS_IS_FORM_FIELD(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PPS_TYPE_FORM_FIELD))
#define PPS_IS_FORM_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PPS_TYPE_FORM_FIELD))
#define PPS_FORM_FIELD_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), PPS_TYPE_FORM_FIELD, PpsFormFieldClass))

#define PPS_TYPE_FORM_FIELD_TEXT (pps_form_field_text_get_type ())
#define PPS_FORM_FIELD_TEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PPS_TYPE_FORM_FIELD_TEXT, PpsFormFieldText))
#define PPS_FORM_FIELD_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PPS_TYPE_FORM_FIELD_TEXT, PpsFormFieldTextClass))
#define PPS_IS_FORM_FIELD_TEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PPS_TYPE_FORM_FIELD_TEXT))
#define PPS_IS_FORM_FIELD_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PPS_TYPE_FORM_FIELD_TEXT))
#define PPS_FORM_FIELD_TEXT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), PPS_TYPE_FORM_FIELD_TEXT, PpsFormFieldTextClass))

#define PPS_TYPE_FORM_FIELD_BUTTON (pps_form_field_button_get_type ())
#define PPS_FORM_FIELD_BUTTON(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PPS_TYPE_FORM_FIELD_BUTTON, PpsFormFieldButton))
#define PPS_FORM_FIELD_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PPS_TYPE_FORM_FIELD_BUTTON, PpsFormFieldButtonClass))
#define PPS_IS_FORM_FIELD_BUTTON(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PPS_TYPE_FORM_FIELD_BUTTON))
#define PPS_IS_FORM_FIELD_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PPS_TYPE_FORM_FIELD_BUTTON))
#define PPS_FORM_FIELD_BUTTON_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), PPS_TYPE_FORM_FIELD_BUTTON, PpsFormFieldButtonClass))

#define PPS_TYPE_FORM_FIELD_CHOICE (pps_form_field_choice_get_type ())
#define PPS_FORM_FIELD_CHOICE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PPS_TYPE_FORM_FIELD_CHOICE, PpsFormFieldChoice))
#define PPS_FORM_FIELD_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PPS_TYPE_FORM_FIELD_CHOICE, PpsFormFieldChoiceClass))
#define PPS_IS_FORM_FIELD_CHOICE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PPS_TYPE_FORM_FIELD_CHOICE))
#define PPS_IS_FORM_FIELD_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PPS_TYPE_FORM_FIELD_CHOICE))
#define PPS_FORM_FIELD_CHOICE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), PPS_TYPE_FORM_FIELD_CHOICE, PpsFormFieldChoiceClass))

#define PPS_TYPE_FORM_FIELD_SIGNATURE (pps_form_field_signature_get_type ())
#define PPS_FORM_FIELD_SIGNATURE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PPS_TYPE_FORM_FIELD_SIGNATURE, PpsFormFieldSignature))
#define PPS_FORM_FIELD_SIGNATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PPS_TYPE_FORM_FIELD_SIGNATURE, PpsFormFieldSignatureClass))
#define PPS_IS_FORM_FIELD_SIGNATURE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PPS_TYPE_FORM_FIELD_SIGNATURE))
#define PPS_IS_FORM_FIELD_SIGNATURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PPS_TYPE_FORM_FIELD_SIGNATURE))
#define PPS_FORM_FIELD_SIGNATURE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), PPS_TYPE_FORM_FIELD_SIGNATURE, PpsFormFieldSignatureClass))

typedef struct _PpsFormField PpsFormField;
typedef struct _PpsFormFieldClass PpsFormFieldClass;

typedef struct _PpsFormFieldText PpsFormFieldText;
typedef struct _PpsFormFieldTextClass PpsFormFieldTextClass;

typedef struct _PpsFormFieldButton PpsFormFieldButton;
typedef struct _PpsFormFieldButtonClass PpsFormFieldButtonClass;

typedef struct _PpsFormFieldChoice PpsFormFieldChoice;
typedef struct _PpsFormFieldChoiceClass PpsFormFieldChoiceClass;

typedef struct _PpsFormFieldSignature PpsFormFieldSignature;
typedef struct _PpsFormFieldSignatureClass PpsFormFieldSignatureClass;

typedef enum {
	PPS_FORM_FIELD_TEXT_NORMAL,
	PPS_FORM_FIELD_TEXT_MULTILINE,
	PPS_FORM_FIELD_TEXT_FILE_SELECT
} PpsFormFieldTextType;

typedef enum {
	PPS_FORM_FIELD_BUTTON_PUSH,
	PPS_FORM_FIELD_BUTTON_CHECK,
	PPS_FORM_FIELD_BUTTON_RADIO
} PpsFormFieldButtonType;

typedef enum {
	PPS_FORM_FIELD_CHOICE_COMBO,
	PPS_FORM_FIELD_CHOICE_LIST
} PpsFormFieldChoiceType;

struct _PpsFormField {
	GObject parent;

	gint id;
	gboolean is_read_only;
	gdouble font_size;
	PpsLink *activation_link;

	PpsPage *page;
	gboolean changed;
};

struct _PpsFormFieldClass {
	GObjectClass parent_class;
};

struct _PpsFormFieldText {
	PpsFormField parent;

	PpsFormFieldTextType type;

	gboolean do_spell_check : 1;
	gboolean do_scroll : 1;
	gboolean comb : 1;
	gboolean is_rich_text : 1;
	gboolean is_password;

	gint max_len;
	gchar *text;
};

struct _PpsFormFieldTextClass {
	PpsFormFieldClass parent_class;
};

struct _PpsFormFieldButton {
	PpsFormField parent;

	PpsFormFieldButtonType type;

	gboolean state;
};

struct _PpsFormFieldButtonClass {
	PpsFormFieldClass parent_class;
};

struct _PpsFormFieldChoice {
	PpsFormField parent;

	PpsFormFieldChoiceType type;

	gboolean multi_select : 1;
	gboolean is_editable : 1;
	gboolean do_spell_check : 1;
	gboolean commit_on_sel_change : 1;

	GList *selected_items;
	gchar *text;
};

struct _PpsFormFieldChoiceClass {
	PpsFormFieldClass parent_class;
};

struct _PpsFormFieldSignature {
	PpsFormField parent;

	/* TODO */
};

struct _PpsFormFieldSignatureClass {
	PpsFormFieldClass parent_class;
};

/* PpsFormField base class */
PPS_PUBLIC
GType pps_form_field_get_type (void) G_GNUC_CONST;

/* PpsFormFieldText */
PPS_PUBLIC
GType pps_form_field_text_get_type (void) G_GNUC_CONST;
PPS_PUBLIC
PpsFormField *pps_form_field_text_new (gint id,
                                       PpsFormFieldTextType type);

/* PpsFormFieldButton */
PPS_PUBLIC
GType pps_form_field_button_get_type (void) G_GNUC_CONST;
PPS_PUBLIC
PpsFormField *pps_form_field_button_new (gint id,
                                         PpsFormFieldButtonType type);

/* PpsFormFieldChoice */
PPS_PUBLIC
GType pps_form_field_choice_get_type (void) G_GNUC_CONST;
PPS_PUBLIC
PpsFormField *pps_form_field_choice_new (gint id,
                                         PpsFormFieldChoiceType type);

/* PpsFormFieldSignature */
PPS_PUBLIC
GType pps_form_field_signature_get_type (void) G_GNUC_CONST;
PPS_PUBLIC
PpsFormField *pps_form_field_signature_new (gint id);

G_END_DECLS