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

Reply via email to