#include #include "katoobdocument.h" struct _KatoobDocumentPrivate { GtkWidget *textview; GtkWidget *scrolledwin; gboolean textwrap; gboolean readonly; gint encoding; gchar *file; GList *UNDO; GList *REDO; }; enum { CREATED, DESTROYED, LAST_SIGNAL }; static void katoob_document_class_init (KatoobDocumentClass *class); static void katoob_document_init (KatoobDocument *document); static gint katoob_document_signals[LAST_SIGNAL] = { 0 }; static GtkTextViewClass *parent_class; GType katoob_document_get_type (void) { static GType document_type = 0; if (!document_type) { static const GTypeInfo document_info = { sizeof (KatoobDocumentClass), NULL, NULL, (GClassInitFunc) katoob_document_class_init, NULL, NULL, sizeof (KatoobDocument), 0, (GInstanceInitFunc) katoob_document_init, }; document_type = g_type_register_static (GTK_TYPE_NOTEBOOK, "KatoobDocument", &document_info, 0); } return document_type; } static void katoob_document_class_init (KatoobDocumentClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); parent_class = g_type_class_peek_parent (klass); klass->created = NULL; klass->destroyed = NULL; katoob_document_signals[CREATED] = g_signal_new ("created", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (KatoobDocumentClass, created), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); katoob_document_signals[DESTROYED] = g_signal_new ("destroyed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (KatoobDocumentClass, destroyed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void katoob_document_init (KatoobDocument *document) { document->priv = g_new0 (KatoobDocumentPrivate, 1); document->priv->textwrap = TRUE; document->priv->readonly = FALSE; document->priv->encoding = 0; document->priv->file = NULL; document->priv->UNDO = NULL; document->priv->REDO = NULL; document->priv->textview = gtk_text_view_new(); } KatoobDocument* katoob_document_new () { KatoobDocument *document; document = KATOOB_DOCUMENT (g_object_new (KATOOB_TYPE_DOCUMENT, NULL)); g_return_val_if_fail (document->priv != NULL, NULL); return document; } GtkTextBuffer *katoob_document_get_buffer(KatoobDocument *document) { return gtk_text_view_get_buffer(GTK_TEXT_VIEW(document->priv->textview)); }