summaryrefslogtreecommitdiff
path: root/src/eog-uri-converter.h
blob: a18815282a7c4033a6619a5346ff2c1e848adbaa (plain)
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
#ifndef _EOG_URI_CONVERTER_H_
#define _EOG_URI_CONVERTER_H_

#include <glib-object.h>
#include "eog-image.h"

G_BEGIN_DECLS

#define EOG_TYPE_URI_CONVERTER          (eog_uri_converter_get_type ())
#define EOG_URI_CONVERTER(o)            (G_TYPE_CHECK_INSTANCE_CAST ((o), EOG_TYPE_URI_CONVERTER, EogURIConverter))
#define EOG_URI_CONVERTER_CLASS(k)      (G_TYPE_CHECK_CLASS_CAST((k), EOG_TYPE_URI_CONVERTER, EogURIConverterClass))
#define EOG_IS_URI_CONVERTER(o)         (G_TYPE_CHECK_INSTANCE_TYPE ((o), EOG_TYPE_URI_CONVERTER))
#define EOG_IS_URI_CONVERTER_CLASS(k)   (G_TYPE_CHECK_CLASS_TYPE ((k), EOG_TYPE_URI_CONVERTER))
#define EOG_URI_CONVERTER_GET_CLASS(o)  (G_TYPE_INSTANCE_GET_CLASS ((o), EOG_TYPE_URI_CONVERTER, EogURIConverterClass))

#ifndef __EOG_URI_CONVERTER_DECLR__
#define __EOG_URI_CONVERTER_DECLR__
typedef struct _EogURIConverter EogURIConverter;
#endif
typedef struct _EogURIConverterClass EogURIConverterClass;
typedef struct _EogURIConverterPrivate EogURIConverterPrivate;

typedef enum {
	EOG_UC_STRING,
	EOG_UC_FILENAME,
	EOG_UC_COUNTER,
	EOG_UC_COMMENT,
	EOG_UC_DATE,
	EOG_UC_TIME,
	EOG_UC_DAY,
	EOG_UC_MONTH,
	EOG_UC_YEAR,
	EOG_UC_HOUR,
	EOG_UC_MINUTE,
	EOG_UC_SECOND,
	EOG_UC_END
} EogUCType;

typedef struct {
	char     *description;
	char     *rep;
	gboolean req_exif;
} EogUCInfo;

typedef enum {
	EOG_UC_ERROR_INVALID_UNICODE,
	EOG_UC_ERROR_INVALID_CHARACTER,
	EOG_UC_ERROR_EQUAL_FILENAMES,
	EOG_UC_ERROR_UNKNOWN
} EogUCError;

#define EOG_UC_ERROR eog_uc_error_quark ()


struct _EogURIConverter {
	GObject parent;

	EogURIConverterPrivate *priv;
};

struct _EogURIConverterClass {
	GObjectClass parent_klass;
};

GType              eog_uri_converter_get_type      (void) G_GNUC_CONST;

GQuark             eog_uc_error_quark              (void);

EogURIConverter*   eog_uri_converter_new           (GFile *base_file,
                                                    GdkPixbufFormat *img_format,
						    const char *format_string);

gboolean           eog_uri_converter_check         (EogURIConverter *converter,
                                                    GList *img_list,
                                                    GError **error);

gboolean           eog_uri_converter_requires_exif (EogURIConverter *converter);

gboolean           eog_uri_converter_do            (EogURIConverter *converter,
                                                    EogImage *image,
                                                    GFile **file,
                                                    GdkPixbufFormat **format,
                                                    GError **error);

char*              eog_uri_converter_preview       (const char *format_str,
                                                    EogImage *img,
                                                    GdkPixbufFormat *format,
						    gulong counter,
						    guint n_images,
						    gboolean convert_spaces,
						    gunichar space_char);

/* for debugging purpose only */
G_GNUC_INTERNAL
void                eog_uri_converter_print_list (EogURIConverter *conv);

G_END_DECLS

#endif /* _EOG_URI_CONVERTER_H_ */