Re: gtktextview with gdkpixbuf saving into file
- From: "Pavel A. da Mek" <a da_mek0 ufoni cz>
- To: "Johnson Wong" <jjwh tpg com au>, <gtk-app-devel-list gnome org>
- Subject: Re: gtktextview with gdkpixbuf saving into file
- Date: Tue, 18 Nov 2008 08:05:49 -0000
anyone know a way to save a gtktextview/gtktextbuffer with embedded
gdkpixbuf into a file. I am calling gtk_text_buffer_get_slice then
g_file_set_contents. Idealy it will be good if i can just call
g_file_get_contents to output the saved buffer onto the gtktextview.
void save_grt (GtkTextView *textView, const gchar *dstFileName) {
GtkTextBuffer *buffer;
GdkAtom grtSerializeFormat;
GtkTextIter startIter;
GtkTextIter endIter;
guint8* serializedData;
gsize length;
buffer = gtk_text_view_get_buffer (textView);
grtSerializeFormat = gtk_text_buffer_register_serialize_tagset (
buffer, //GtkTextBuffer *buffer,
NULL // const gchar *tagset_name
);
gtk_text_buffer_get_bounds (buffer, &startIter, &endIter);
serializedData = gtk_text_buffer_serialize (
buffer, // GtkTextBuffer *register_buffer,
buffer, // GtkTextBuffer *content_buffer,
grtSerializeFormat, // GdkAtom format,
&startIter, // const GtkTextIter *start,
&endIter, // const GtkTextIter *end,
&length // gsize *length
);
// gboolean success =
g_file_set_contents (dstFileName,
serializedData, // const gchar *contents,
length, // gssize length,
NULL // GError **error
);
g_free (serializedData);
gtk_text_buffer_unregister_serialize_format (buffer,
grtSerializeFormat);
} // *** of void save_grt
void open_grt (GtkTextView *textView, const gchar *srcFileName) {
GtkTextBuffer *buffer;
GdkAtom grtDeserializeFormat;
GtkTextIter startIter;
GtkTextIter endIter;
guint8* serializedData;
gsize length;
// gboolean success =
g_file_get_contents (
srcFileName,
(gchar **)&serializedData, // gchar **contents,
&length, // gsize *length,
NULL // GError **error
);
buffer = gtk_text_view_get_buffer (textView);
grtDeserializeFormat = gtk_text_buffer_register_deserialize_tagset (
buffer, //GtkTextBuffer *buffer,
NULL // const gchar *tagset_name
);
gtk_text_buffer_deserialize_set_can_create_tags (
buffer, grtDeserializeFormat, TRUE);
gtk_text_buffer_get_bounds (buffer, &startIter, &endIter);
gtk_text_buffer_delete (buffer, &startIter, &endIter);
// gboolean success =
gtk_text_buffer_deserialize (
buffer, // GtkTextBuffer *register_buffer,
buffer, // GtkTextBuffer *content_buffer,
grtDeserializeFormat, // GdkAtom format,
&startIter, // const GtkTextIter *iter,
serializedData, // const guint8 *data,
length, // gsize length
NULL // GError **error
);
g_free (serializedData);
gtk_text_buffer_unregister_deserialize_format (buffer,
grtDeserializeFormat);
} // *** of void open_grt
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]