Re: gtktextview with gdkpixbuf saving into file



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]