diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-02-22 07:09:31 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-02-22 07:09:31 -0300 |
commit | b9d57b7ee57e79820c97c4d452c07972b73f3c7c (patch) | |
tree | 06a98c67240ee509b19d26ee54d8515f06f37230 /saedit/buffer.c | |
parent | a0c410d5ac8eeeeb4d7295c8f54931fa32664f4d (diff) | |
download | tools-b9d57b7ee57e79820c97c4d452c07972b73f3c7c.tar.gz tools-b9d57b7ee57e79820c97c4d452c07972b73f3c7c.tar.bz2 tools-b9d57b7ee57e79820c97c4d452c07972b73f3c7c.tar.xz tools-b9d57b7ee57e79820c97c4d452c07972b73f3c7c.zip |
Include saedit2
Diffstat (limited to 'saedit/buffer.c')
-rw-r--r-- | saedit/buffer.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/saedit/buffer.c b/saedit/buffer.c new file mode 100644 index 0000000..5c51bcc --- /dev/null +++ b/saedit/buffer.c @@ -0,0 +1,87 @@ +#include <gtksourceview/gtksource.h> +#include "main.h" +#include "buffer.h" + +gchar * +buffer_get_text () { + GtkTextIter start, end; + GtkTextBuffer *buffer = + GTK_TEXT_BUFFER (gtk_text_view_get_buffer ( + GTK_TEXT_VIEW (source_view) + )); + + gtk_text_buffer_get_start_iter (buffer, &start); + gtk_text_buffer_get_end_iter (buffer, &end); + + return gtk_text_buffer_get_text (buffer, &start, &end, TRUE); +} + +void +buffer_set_text ( + const gchar *text, + const guint len +) { + GtkTextBuffer *buffer = + GTK_TEXT_BUFFER (gtk_text_view_get_buffer ( + GTK_TEXT_VIEW (source_view) + )); + + gtk_text_buffer_set_text (buffer, text, len); +} + +void +buffer_mark_line (gint line_no) { + GtkTextIter iter, end; + GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER ( + gtk_text_view_get_buffer (GTK_TEXT_VIEW (source_view)) + ); + + gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER (buffer), &iter); + gtk_text_buffer_get_end_iter (GTK_TEXT_BUFFER (buffer), &end); + + gtk_source_buffer_remove_source_marks ( + buffer, + &iter, + &end, + "active-line" + ); + + if (line_no == -1) + return; + + gtk_text_iter_set_line (&iter, line_no); + gtk_text_view_scroll_to_mark ( + GTK_TEXT_VIEW (source_view), + (GtkTextMark *) gtk_source_buffer_create_source_mark ( + buffer, + NULL, + "active-line", + &iter + ), + 0.0, + TRUE, + 0.0, + 0.5 + ); +} + + +void +buffer_set_modified (gboolean modified) { + GtkTextBuffer *buffer = + GTK_TEXT_BUFFER (gtk_text_view_get_buffer ( + GTK_TEXT_VIEW (source_view) + )); + + gtk_text_buffer_set_modified (buffer, modified); +} + +gboolean +buffer_get_modified () { + GtkTextBuffer *buffer = + GTK_TEXT_BUFFER (gtk_text_view_get_buffer ( + GTK_TEXT_VIEW (source_view) + )); + + return gtk_text_buffer_get_modified (buffer); +} |