static void disable_bookmarks (PlumaView *view) { GtkTextIter start; GtkTextIter end; GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gpointer data; gtk_source_view_set_show_line_marks (GTK_SOURCE_VIEW (view), FALSE); gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_source_buffer_remove_source_marks (GTK_SOURCE_BUFFER (buffer), &start, &end, BOOKMARK_CATEGORY); g_signal_handlers_disconnect_by_func (buffer, on_style_scheme_notify, view); g_signal_handlers_disconnect_by_func (buffer, on_delete_range, NULL); data = g_object_get_data (G_OBJECT (buffer), INSERT_DATA_KEY); g_signal_handlers_disconnect_by_func (buffer, on_insert_text_before, data); g_signal_handlers_disconnect_by_func (buffer, on_begin_user_action, data); g_signal_handlers_disconnect_by_func (buffer, on_end_user_action, data); g_object_set_data (G_OBJECT (buffer), INSERT_DATA_KEY, NULL); }
void gui_editor_toggle_mark_at_line (GUIEditor * self, gint line_no) { g_assert (self); GtkTextIter line_start, line_end; GSList *marker_list; GtkSourceMark *marker; /* get line bounds */ gtk_text_buffer_get_iter_at_line (GTK_TEXT_BUFFER (self->buffer), &line_start, line_no); line_end = line_start; gtk_text_iter_forward_to_line_end (&line_end); /* get the breakpoint markers already in the line */ marker_list = gtk_source_buffer_get_source_marks_at_line (self->buffer, line_no, MARKER_BREAKPOINT); if (marker_list != NULL && g_slist_length(marker_list)!=0) { /* markers were found, so delete them */ gtk_source_buffer_remove_source_marks (self->buffer, &line_start, &line_end, MARKER_BREAKPOINT); } else { /* no marker found -> create one */ marker = gtk_source_buffer_create_source_mark (self->buffer, NULL, MARKER_BREAKPOINT, &(line_start)); } g_slist_free (marker_list); }
static void remove_all_marks (GtkSourceBuffer *buffer) { GtkTextIter start; GtkTextIter end; gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &start, &end); gtk_source_buffer_remove_source_marks (buffer, &start, &end, NULL); }
void gui_editor_clear_all_marks (GUIEditor * self) { GtkTextIter buffer_start, buffer_end; /* get buffer bounds */ gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER(self->buffer), &buffer_start, &buffer_end); /* delete all breakpoint mark */ gtk_source_buffer_remove_source_marks (self->buffer, &buffer_start, &buffer_end, MARKER_BREAKPOINT); }
VISIBLE void removeUserMark(const char *umark,unsigned line) { pageStruct *page=getPageStructByIDFromPage(-1); const gchar *mark_type; GtkTextMark *mark; GtkTextIter iter; if(page==NULL) return; mark_type=umark; if(line<0) { mark=gtk_text_buffer_get_insert((GtkTextBuffer*)page->buffer); gtk_text_buffer_get_iter_at_mark((GtkTextBuffer*)page->buffer,&iter,mark); } else { gtk_text_buffer_get_iter_at_line_offset((GtkTextBuffer*)page->buffer,&iter,line,0); } gtk_source_buffer_remove_source_marks(page->buffer,&iter,&iter,mark_type); }
VISIBLE void removeAllBookmarks(GtkWidget *widget,GtkTextIter *titer) { ERRDATA pageStruct *page=NULL; int numpages; GtkTextIter startiter; GtkTextIter enditer; numpages=gtk_notebook_get_n_pages(mainNotebook); for(int j=0; j<numpages; j++) { page=getPageStructByIDFromPage(j); if(page!=NULL) { gtk_text_buffer_get_start_iter((GtkTextBuffer*)page->buffer,&startiter); gtk_text_buffer_get_end_iter((GtkTextBuffer*)page->buffer,&enditer); gtk_source_buffer_remove_source_marks(page->buffer,&startiter,&enditer,NULL); } } g_list_free_full(newBookMarksList,destroyBMData); newBookMarksList=NULL; rebuildBookMarkMenu(); gtk_widget_show_all(bookMarkMenu); }