gedit-document-loader.h 3.88 KB
Newer Older
Paolo Borelli's avatar
Paolo Borelli committed
1 2 3 4
/*
 * gedit-document-loader.h
 * This file is part of gedit
 *
5 6
 * Copyright (C) 2005 - Paolo Maggi
 * Copyright (C) 2007 - Paolo Maggi, Steve Frécinaux
7
 * Copyright (C) 2008 - Jesse van den Kieboom
Paolo Borelli's avatar
Paolo Borelli committed
8 9 10 11 12 13 14 15 16 17 18 19
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
Paolo Borelli's avatar
Paolo Borelli committed
21
 */
22

Paolo Borelli's avatar
Paolo Borelli committed
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
#ifndef __GEDIT_DOCUMENT_LOADER_H__
#define __GEDIT_DOCUMENT_LOADER_H__

#include <gedit/gedit-document.h>

G_BEGIN_DECLS

/*
 * Type checking and casting macros
 */
#define GEDIT_TYPE_DOCUMENT_LOADER              (gedit_document_loader_get_type())
#define GEDIT_DOCUMENT_LOADER(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj), GEDIT_TYPE_DOCUMENT_LOADER, GeditDocumentLoader))
#define GEDIT_DOCUMENT_LOADER_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), GEDIT_TYPE_DOCUMENT_LOADER, GeditDocumentLoaderClass))
#define GEDIT_IS_DOCUMENT_LOADER(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEDIT_TYPE_DOCUMENT_LOADER))
#define GEDIT_IS_DOCUMENT_LOADER_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GEDIT_TYPE_DOCUMENT_LOADER))
#define GEDIT_DOCUMENT_LOADER_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), GEDIT_TYPE_DOCUMENT_LOADER, GeditDocumentLoaderClass))

/* Private structure type */
typedef struct _GeditDocumentLoaderPrivate GeditDocumentLoaderPrivate;

/*
 * Main object structure
 */
typedef struct _GeditDocumentLoader GeditDocumentLoader;

48
struct _GeditDocumentLoader
Paolo Borelli's avatar
Paolo Borelli committed
49 50 51
{
	GObject object;

52 53
	/*< private > */
	GeditDocumentLoaderPrivate *priv;
Paolo Borelli's avatar
Paolo Borelli committed
54 55 56 57 58 59 60
};

/*
 * Class definition
 */
typedef struct _GeditDocumentLoaderClass GeditDocumentLoaderClass;

61
struct _GeditDocumentLoaderClass
Paolo Borelli's avatar
Paolo Borelli committed
62 63 64
{
	GObjectClass parent_class;

65
	/* Signals */
Paolo Borelli's avatar
Paolo Borelli committed
66 67 68 69 70 71 72 73 74 75 76
	void (* loading) (GeditDocumentLoader *loader,
			  gboolean             completed,
			  const GError        *error);
};

/*
 * Public methods
 */
GType 		 	 gedit_document_loader_get_type		(void) G_GNUC_CONST;

/* If enconding == NULL, the encoding will be autodetected */
77
GeditDocumentLoader 	*gedit_document_loader_new 		(GeditDocument       *doc,
78
								 GFile               *location,
Paolo Borelli's avatar
Paolo Borelli committed
79
								 const GeditEncoding *encoding);
80 81 82 83 84 85

void			 gedit_document_loader_loading		(GeditDocumentLoader *loader,
								 gboolean             completed,
								 GError              *error);

void			 gedit_document_loader_load		(GeditDocumentLoader *loader);
86 87 88 89 90

GeditDocumentLoader	*gedit_document_loader_new_from_stream	(GeditDocument       *doc,
								 GInputStream        *stream,
								 const GeditEncoding *encoding);

Paolo Borelli's avatar
Paolo Borelli committed
91 92
gboolean		 gedit_document_loader_cancel		(GeditDocumentLoader *loader);

93
GeditDocument		*gedit_document_loader_get_document	(GeditDocumentLoader *loader);
Paolo Borelli's avatar
Paolo Borelli committed
94 95

/* Returns STDIN_URI if loading from stdin */
96
#define STDIN_URI "stdin:"
97
GFile			*gedit_document_loader_get_location	(GeditDocumentLoader *loader);
Paolo Borelli's avatar
Paolo Borelli committed
98 99 100

const GeditEncoding	*gedit_document_loader_get_encoding	(GeditDocumentLoader *loader);

101 102
GeditDocumentNewlineType gedit_document_loader_get_newline_type (GeditDocumentLoader *loader);

Garrett Regier's avatar
Garrett Regier committed
103 104
GeditDocumentCompressionType gedit_document_loader_get_compression_type
								(GeditDocumentLoader *loader);
105

Paolo Borelli's avatar
Paolo Borelli committed
106
goffset			 gedit_document_loader_get_bytes_read	(GeditDocumentLoader *loader);
Paolo Borelli's avatar
Paolo Borelli committed
107

108
/* You can get from the info: content_type, time_modified, standard_size, access_can_write
109 110 111
   and also the metadata*/
GFileInfo		*gedit_document_loader_get_info		(GeditDocumentLoader *loader);

Paolo Borelli's avatar
Paolo Borelli committed
112 113 114
G_END_DECLS

#endif  /* __GEDIT_DOCUMENT_LOADER_H__  */
Garrett Regier's avatar
Garrett Regier committed
115

116
/* ex:set ts=8 noet: */