Thanks, thats a much better way of doing it ^_^ Johnson
On Tue, 2008-11-18 at 08:05 +0000, Pavel A. da Mek wrote: > > 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 > > > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list