void Amt::LoggerImpl::insertLine(const char* _ctime, const char* _mess, unsigned _type, bool newString ){ if (_type >= riku::logger::NUM_ERR_MESS_TYPE ) return; if (!_in_textbuffer || !_in_textview) return; GtkTextIter iter; /*Добавим новое сообщение*/ gtk_text_buffer_get_end_iter (_in_textbuffer, &iter ); gtk_text_buffer_insert_with_tags ( _in_textbuffer, &iter, _ctime, -1, _in_tagArr[_type], NULL ); gtk_text_buffer_insert ( _in_textbuffer, &iter, " ", -1 ); gtk_text_buffer_insert_with_tags(_in_textbuffer, &iter, _mess, -1, _in_tagArr[_type], NULL ); if (newString) gtk_text_buffer_insert(_in_textbuffer, &iter, "\n", -1); /*Передвинем маркер скроллинга, и прокрутим список*/ GtkTextMark *mark = gtk_text_buffer_get_mark (_in_textbuffer, "scroll"); gtk_text_buffer_move_mark (_in_textbuffer, mark, &iter); gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW(_in_textview), mark); /*Удалим записи, если их стало больше чем maxLines*/ if (_in_maxLines < gtk_text_buffer_get_line_count(_in_textbuffer) ){ GtkTextIter startI, endI; gtk_text_buffer_get_iter_at_line(_in_textbuffer, &endI, 9); gtk_text_buffer_get_iter_at_line(_in_textbuffer, &startI, 9); gtk_text_iter_forward_line(&endI ); gtk_text_buffer_delete(_in_textbuffer, &startI, &endI); } }
gboolean follow_add_to_gtk_text(char *buffer, size_t nchars, gboolean is_server, void *arg) { GtkWidget *text = arg; GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); GtkTextIter iter; /* While our isprint() hack is in place, we * have to convert some chars to '.' in order * to be able to see the data we *should* see * in the GtkText widget. */ size_t i; for (i = 0; i < nchars; i++) { if (buffer[i] == '\n' || buffer[i] == '\r') continue; if (! isprint((guchar)buffer[i])) { buffer[i] = '.'; } } gtk_text_buffer_get_end_iter(buf, &iter); if (is_server) { gtk_text_buffer_insert_with_tags(buf, &iter, buffer, (gint) nchars, server_tag, NULL); } else { gtk_text_buffer_insert_with_tags(buf, &iter, buffer, (gint) nchars, client_tag, NULL); } return TRUE; }
void _gcr_display_view_append_content (GcrDisplayView *self, GcrRenderer *renderer, const gchar *content, const gchar *details) { GcrDisplayItem *item; GtkTextIter iter; gchar *memory = NULL; g_return_if_fail (GCR_IS_DISPLAY_VIEW (self)); g_return_if_fail (content); item = lookup_display_item (self, renderer); g_return_if_fail (item); if (item->details && !item->expanded) return; if (details) content = memory = g_strdup_printf ("%s: %s", content, details); gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, content, -1, self->pv->content_tag, item->extra_tag, NULL); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1, item->extra_tag, NULL); g_free (memory); }
static void add_notes (GtkTextBuffer *buffer, GtkTextIter *pos, GtkTextTag *header_tag, GtrMsg *msg) { GtkTextTag *tag; const gchar *comments; tag = gtk_text_buffer_create_tag (buffer, NULL, "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_insert_with_tags (buffer, pos, _("Notes:"), -1, header_tag, NULL); gtk_text_buffer_insert (buffer, pos, "\n", 1); g_object_set_data (G_OBJECT (tag), "is_path", GINT_TO_POINTER (1)); comments = gtr_msg_get_comment (msg); if (comments == NULL || *comments == '\0') gtk_text_buffer_insert_with_tags (buffer, pos, _("Add Note"), -1, tag, NULL); else { gtk_text_buffer_insert (buffer, pos, comments, -1); gtk_text_buffer_insert (buffer, pos, "(", 1); gtk_text_buffer_insert_with_tags (buffer, pos, _("Edit"), -1, tag, NULL); gtk_text_buffer_insert (buffer, pos, ")", 1); } gtk_text_buffer_insert (buffer, pos, "\n", 1); }
static void create_gpl(GtkTextView *view) { GtkTextTag *tag; GtkTextIter iter; char *buf1 = N_("This program is free software; you can redistribute it and/or modify " "it under the terms of the GNU General Public License as published by " "the Free Software Foundation; either version 2 of the License, or " "(at your option) any later version.\n\n"); char *buf2 = N_("This program is distributed in the hope that it will be useful, " "but WITHOUT ANY WARRANTY; without even the implied warranty of " "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " "GNU General Public License for more details.\n\n"); char *buf3 = N_("You should have received a copy of the GNU General Public License " "along with this program; if not, see:"); gtk_text_view_set_editable(view, FALSE); gtk_text_view_set_wrap_mode(view, GTK_WRAP_WORD); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); GtkTextBuffer *buffer = gtk_text_view_get_buffer(view); tag = gtk_text_buffer_create_tag (buffer, NULL, "left-margin", 5, "right-margin", 5, NULL); gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert(buffer, &iter, "\n\n", 2); gtk_text_buffer_insert_with_tags(buffer, &iter, _(buf1), -1, tag, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, _(buf2), -1, tag, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, _(buf3), -1, tag, NULL); insert_link(buffer, &iter, "http://www.gnu.org/licenses/gpl-2.0.txt", NULL); }
static void text_insert_help(struct menu *menu) { GtkTextBuffer *buffer; GtkTextIter start, end; const char *prompt = menu_get_prompt(menu); gchar *name; const char *help = _(nohelp_text); if (!menu->sym) help = ""; else if (menu->sym->help) help = _(menu->sym->help); if (menu->sym && menu->sym->name) name = g_strdup_printf(_(menu->sym->name)); else name = g_strdup(""); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); gtk_text_buffer_get_bounds(buffer, &start, &end); gtk_text_buffer_delete(buffer, &start, &end); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1, NULL); gtk_text_buffer_insert_at_cursor(buffer, " ", 1); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, name, -1, tag1, NULL); gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2, NULL); }
static void xfce_about_credits (GtkTextBuffer *buffer) { guint i; GtkTextTag *title; GtkTextTag *indent; GtkTextIter end; const ContributorGroup *group; const ContributorInfo *user; g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer)); title = gtk_text_buffer_create_tag (buffer, "title", "scale", 1.1, "weight", PANGO_WEIGHT_BOLD, NULL); indent = gtk_text_buffer_create_tag (buffer, "indent", "left-margin", MARGIN, "indent", -MARGIN, NULL); gtk_text_buffer_get_end_iter (buffer, &end); for (i = 0; i < G_N_ELEMENTS (xfce_contributors); i++) { group = xfce_contributors + i; gtk_text_buffer_insert_with_tags (buffer, &end, _(group->name), -1, title, NULL); gtk_text_buffer_insert (buffer, &end, "\n", -1); if (group->contributors != NULL) { for (user = group->contributors; user->name != NULL; user++) { gtk_text_buffer_insert_with_tags (buffer, &end, user->name, -1, indent, NULL); gtk_text_buffer_insert (buffer, &end, " <", -1); gtk_text_buffer_insert (buffer, &end, user->email, -1); gtk_text_buffer_insert (buffer, &end, ">\n", -1); } } else { /* add the translators */ xfce_about_credits_translators (buffer, &end); } gtk_text_buffer_insert (buffer, &end, "\n", -1); } gtk_text_buffer_insert (buffer, &end, _("If you know of anyone missing from this list; don't hesitate and " "file a bug on <https://bugzilla.xfce.org> ."), -1); gtk_text_buffer_insert (buffer, &end, "\n\n", -1); gtk_text_buffer_insert_with_tags (buffer, &end, _("Thanks to all who helped making this software available!"), -1, title, NULL); gtk_text_buffer_insert (buffer, &end, "\n", -1); }
void _gcr_display_view_append_value (GcrDisplayView *self, GcrRenderer *renderer, const gchar *field, const gchar *value, gboolean monospace) { GcrDisplayItem *item; PangoRectangle extents; PangoTabArray *tabs; PangoLayout *layout; GtkTextIter iter; gchar *text; g_return_if_fail (GCR_IS_DISPLAY_VIEW (self)); g_return_if_fail (field); item = lookup_display_item (self, renderer); g_return_if_fail (item); if (item->details && !item->expanded) return; text = g_strdup_printf ("%s:", field); if (value == NULL) value = ""; /* Measure the width of the field */ layout = gtk_widget_create_pango_layout (GTK_WIDGET (self), text); pango_layout_get_extents (layout, NULL, &extents); pango_extents_to_pixels (&extents, NULL); g_object_unref (layout); /* Make the tab wide enough to accomodate */ if (extents.width > item->field_width) { item->field_width = extents.width + COLUMN_MARGIN; tabs = pango_tab_array_new (1, TRUE); pango_tab_array_set_tab (tabs, 0, PANGO_TAB_LEFT, item->field_width); g_object_set (item->field_tag, "left-margin", FIELD_MARGIN, "indent", 0 - item->field_width, "tabs", tabs, NULL); pango_tab_array_free (tabs); } gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, text, -1, item->field_tag, item->extra_tag, NULL); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\t", 1, item->extra_tag, NULL); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, value, -1, item->field_tag, monospace ? self->pv->monospace_tag : item->extra_tag, monospace ? item->extra_tag : NULL, NULL); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1, item->extra_tag, NULL); g_free (text); }
static void create_intro(GtkTextView *view) { GtkTextTag *tag; GtkTextTag *tag1; GtkTextIter iter; const char title[] = N_("Openfetion "OPENFETION_VERSION"\n\n"); const char intro[] = N_("OpenFetion is a Fetion client for linux based on GTK+2.0, " "implementing Fetion Protocol Version 4.\n" "It supports most features of Fetion. \n" "What's more, it's lightweight and efficient with intuitive interface.\n\n" "Project homepage: "); gtk_text_view_set_editable(view,FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD_CHAR); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); g_signal_connect(view, "event-after", G_CALLBACK (event_after), NULL); GtkTextBuffer *buffer = gtk_text_view_get_buffer(view); tag = gtk_text_buffer_create_tag (buffer, NULL, "size", 15 * PANGO_SCALE, "justification", GTK_JUSTIFY_CENTER, "weight", PANGO_WEIGHT_BOLD, NULL); tag1 = gtk_text_buffer_create_tag (buffer, NULL, "left-margin", 25, "right-margin", 25, NULL); gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert_with_tags(buffer, &iter, title, -1, tag, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, _(intro), -1, tag1, NULL); insert_link(buffer, &iter, "http://code.google.com/p/ofetion/"); gtk_text_buffer_insert_with_tags(buffer, &iter, _("\nBug report: "), -1, tag1, NULL); insert_link(buffer, &iter, "http://code.google.com/p/ofetion/issues/"); gtk_text_buffer_insert_with_tags(buffer, &iter, _("\n\nPage on author's blog: "), -1, tag1, NULL); insert_link(buffer, &iter, "http://basiccoder.com/openfetion"); }
static void put_text_in_textview_impl(const gchar * txt, GtkWidget * textview_output) { GtkTextBuffer * text_buffer; GtkTextIter end; GtkTextTag *tt; GtkTextTagTable *tt_table; text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview_output)); tt_table = gtk_text_buffer_get_tag_table(text_buffer); tt = gtk_text_tag_table_lookup(tt_table, "mono"); if (!tt) { #ifdef win32 tt = gtk_text_buffer_create_tag(text_buffer, "mono", "font", "Courier", NULL); #else tt = gtk_text_buffer_create_tag(text_buffer, "mono", "font", "Mono", "size-points", (double)8.0, NULL); #endif } if (gtk_text_buffer_get_char_count(text_buffer) > 0) { GtkTextIter b, e; gtk_text_buffer_get_start_iter(text_buffer, &b); gtk_text_buffer_get_end_iter(text_buffer, &e); gtk_text_buffer_delete(text_buffer, &b, &e); } gtk_text_buffer_get_end_iter(text_buffer, &end); gtk_text_buffer_insert_with_tags(text_buffer, &end, txt, -1, tt, NULL); }
void fill_query_results(void) { GtkTextIter iter, start, end; /* Clear the buffer first */ if (food_db_buffer != NULL) { gtk_text_buffer_get_start_iter (food_db_buffer,&start); gtk_text_buffer_get_end_iter (food_db_buffer,&end); //gtk_text_buffer_remove_all_tags(food_db_buffer, &start, &end); gtk_text_buffer_delete (food_db_buffer,&start,&end); } /* Iterator is used to traverse line by line. */ gtk_text_buffer_get_iter_at_offset(food_db_buffer, &iter, 0); if(flag == FALSE) { hlink = gtk_text_buffer_create_tag (food_db_buffer, "hlink", "foreground", "#0000ff", NULL); flag = TRUE; } /* Values and row_count are two shared structures included from sqlite * which are filled upon execution of a database query */ int i; for(i=0; i<row_count; i++) { //g_print("%s\n", values[i]); //gtk_text_buffer_insert(food_db_buffer, &iter, values[i], -1); gtk_text_buffer_insert_with_tags(food_db_buffer,&iter,(const gchar*)values[i],-1,hlink,NULL); gtk_text_buffer_insert(food_db_buffer, &iter, "\n", -1); } }
static G_GNUC_PRINTF(3, 4) void appendf(struct log_s *log, const char *colname, const char *fmt, ...) { va_list args; va_start( args, fmt ); char *buf = g_strdup_vprintf(fmt, args); va_end( args ); printf("%s", buf); GtkTextTag *tag = NULL; if(colname) tag = gtk_text_buffer_create_tag(log->buffer, NULL, "foreground", colname, NULL); GtkTextIter end; gtk_text_buffer_get_end_iter(log->buffer, &end); if(tag) gtk_text_buffer_insert_with_tags(log->buffer, &end, buf, -1, tag, NULL); else gtk_text_buffer_insert(log->buffer, &end, buf, -1); g_free(buf); gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(log->view), &end, 0.0, FALSE, 0, 0); while(gtk_events_pending()) gtk_main_iteration(); }
static void _document_load_write_node(GHtml * ghtml, XMLNode * node) { GtkTextIter iter; if(node == NULL) return; switch(node->type) { case XML_NODE_TYPE_DATA: if(ghtml->position == GHTML_POSITION_HEAD_TITLE) { free(ghtml->title); ghtml->title = strdup(node->data.buffer); surfer_set_title(ghtml->surfer, ghtml->title); break; } else if(ghtml->position != GHTML_POSITION_BODY) break; /* FIXME looks like memory corruption at some point */ gtk_text_buffer_get_end_iter(ghtml->tbuffer, &iter); gtk_text_buffer_insert_with_tags(ghtml->tbuffer, &iter, node->data.buffer, node->data.size, ghtml->tag, NULL); break; case XML_NODE_TYPE_ENTITY: _document_load_write_node_entity(ghtml, &node->entity); break; case XML_NODE_TYPE_TAG: _document_load_write_node_tag(ghtml, &node->tag); break; } }
void *catch_info(void *arg) { FILE *f; char buf[100]; GtkTextIter end; GtkTextTag *tag; f = fdopen(fd_info[0], "r"); while (!feof (f)) { fgets (buf, 100, f); gtk_text_buffer_get_end_iter(text1b, &end); tag = gtk_text_buffer_create_tag(text1b, NULL, "foreground", "black", NULL); gtk_text_buffer_insert_with_tags(text1b, &end, buf, -1, tag, NULL); if (!strncmp(buf, "Estimated time :", 16)) break; } fclose(f); pthread_exit(NULL); }
static void fill_buffer (GtkTextBuffer *buffer, GtkTextTag *tag) { GtkTextIter iter; gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "---\n" "\tText without draw-spaces tag.\n" "\tNon-breaking whitespace: .\n" "\tTrailing spaces.\t \n" "---\n\n", -1); gtk_text_buffer_insert_with_tags (buffer, &iter, "---\n" "\tText with draw-spaces tag.\n" "\tNon-breaking whitespace: .\n" "\tTrailing spaces.\t \n" "---", -1, tag, NULL); }
static void create_author(GtkTextView *view) { GtkTextTag *tag; GtkTextTag *tag1; GtkTextIter iter; const char title[] = "Levin\n\n"; const char *intro = _("Graduate student at Beijing University of Post & Telecommunication." "Love Linux,Love OpenSource.Started this project in order to help " "linux users including myself to get a better way to use fetion.\n\n" "Blog:"); gtk_text_view_set_editable(view,FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD_CHAR); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); g_signal_connect(view, "event-after", G_CALLBACK (event_after), NULL); GtkTextBuffer *buffer = gtk_text_view_get_buffer(view); tag = gtk_text_buffer_create_tag (buffer, NULL, "size", 15 * PANGO_SCALE, "justification", GTK_JUSTIFY_CENTER, "weight", PANGO_WEIGHT_BOLD, NULL); tag1 = gtk_text_buffer_create_tag (buffer, NULL, "left-margin", 25, "right-margin", 25, NULL); gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert_with_tags(buffer, &iter, title, -1, tag, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, intro, -1, tag1, NULL); insert_link(buffer, &iter, "http://basiccoder.com"); gtk_text_buffer_insert_with_tags(buffer, &iter, "\nE-mail: [email protected]\n", -1, tag1, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, "Twitter: ", -1, tag1, NULL); insert_link(buffer, &iter, "http://twitter.com/levin108"); }
void log_text_bold(GtkWidget *text, GdkFont *font, char *str) { #if defined(WAVE_USE_GTK2) && !defined(GTK_ENABLE_BROKEN) gtk_text_buffer_insert_with_tags (GTK_TEXT_VIEW (text)->buffer, &GLOBALS->iter_logfile_c_2, str, -1, GLOBALS->bold_tag_logfile_c_2, GLOBALS->mono_tag_logfile_c_1, GLOBALS->size_tag_logfile_c_1, NULL); #else gtk_text_insert (GTK_TEXT (text), font, &text->style->fg[GTK_STATE_SELECTED], &text->style->bg[GTK_STATE_SELECTED], str, -1); #endif }
static void create_contri(GtkTextView *view) { GtkTextTag *tag1; GtkTextTag *tag2; GtkTextIter iter; gtk_text_view_set_editable(view,FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD_CHAR); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); g_signal_connect(view, "event-after", G_CALLBACK (event_after), NULL); GtkTextBuffer *buffer = gtk_text_view_get_buffer(view); tag1 = gtk_text_buffer_create_tag (buffer, NULL, "left-margin", 25, "right-margin", 25, NULL); tag2 = gtk_text_buffer_create_tag (buffer, NULL, "left-margin", 25, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert(buffer, &iter, "\n\n", 2); gtk_text_buffer_insert_with_tags(buffer, &iter, "Levin Li <", -1, tag1, NULL); insert_link(buffer, &iter, "*****@*****.**", "mailto:[email protected]"); gtk_text_buffer_insert(buffer, &iter, ("> ("), 3); insert_link(buffer, &iter, "@levin108", "http://twitter.com/levin108"); gtk_text_buffer_insert(buffer, &iter, (")\n"), 2); gtk_text_buffer_insert_with_tags(buffer, &iter, "Yichao Yu <", -1, tag1, NULL); insert_link(buffer, &iter, "*****@*****.**", "mailto:[email protected]"); gtk_text_buffer_insert(buffer, &iter, ("> ("), 3); insert_link(buffer, &iter, "@yuyichao", "http://twitter.com/yuyichao"); gtk_text_buffer_insert(buffer, &iter, (")\n"), 2); }
static void text_insert_msg(const char *title, const char *message) { GtkTextBuffer *buffer; GtkTextIter start, end; const char *msg = message; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); gtk_text_buffer_get_bounds(buffer, &start, &end); gtk_text_buffer_delete(buffer, &start, &end); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, title, -1, tag1, NULL); gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, msg, -1, tag2, NULL); }
static void add_line(module_t *Module, const char *Line) { // printf("Adding line to %s: %s\n", Module->Name, Line); gdk_threads_enter(); GtkTextIter Iter; gtk_text_buffer_get_end_iter(Module->Source, &Iter); gtk_text_buffer_insert_pixbuf(Module->Source, &Iter, NoBreakpointPixbuf); gtk_text_buffer_insert_with_tags(Module->Source, &Iter, Line, strlen(Line), SourceTag, 0); Module->NoOfLines++; gdk_threads_leave(); };
void context_output(int fd, const char *text, gint length) { static int last_fd = -1; GtkTextIter end; gchar *utf8; gtk_text_buffer_get_end_iter(context, &end); if (last_fd == 3 && fd != 0) gtk_text_buffer_insert(context, &end, "\n", 1); if (fd != last_fd) last_fd = fd; if (length == -1) length = strlen(text); dc_chars += length; utf8 = g_locale_to_utf8(text, length, NULL, NULL, NULL); if (utf8) { gtk_text_buffer_insert_with_tags(context, &end, utf8, -1, fd_tags[fd], NULL); g_free(utf8); } else gtk_text_buffer_insert_with_tags(context, &end, text, length, fd_tags[fd], NULL); if (dc_chars > DC_LIMIT + (DC_DELTA / 2)) { GtkTextIter start, delta; gtk_text_buffer_get_start_iter(context, &start); gtk_text_buffer_get_iter_at_offset(context, &delta, DC_DELTA); gtk_text_buffer_delete(context, &start, &delta); gtk_text_buffer_get_end_iter(context, &end); dc_chars = gtk_text_buffer_get_char_count(context); } gtk_text_buffer_place_cursor(context, &end); gtk_text_view_scroll_mark_onscreen(debug_context, gtk_text_buffer_get_insert(context)); }
/** * \internal */ static void validate_insert_text_valist(struct validate *validate, GtkTextTag * text_tag, GtkTextIter * iter, const gchar * format, va_list argp) { if (format == NULL) return; gchar *string; string = g_strdup_vprintf(format, argp); gtk_text_buffer_insert_with_tags(validate->text_buffer, iter, string, -1, text_tag, NULL); g_free(string); }
static void gglk_textbuffer_put_buffer(GtkWidget *widget, const glui32 *buf, int len) { GglkTextBuffer *tb = GGLK_TEXTBUFFER(widget); char *utfstr; utfstr = g_ucs4_to_utf8(buf, len, NULL, NULL, NULL); gtk_text_buffer_insert_with_tags(tb->base.buffer, &tb->base.iter, utfstr, -1, tb->base.style_tag, NULL); g_free(utfstr); }
void _gcr_display_view_append_heading (GcrDisplayView *self, GcrRenderer *renderer, const gchar *heading) { GcrDisplayItem *item; GtkTextIter iter; g_return_if_fail (GCR_IS_DISPLAY_VIEW (self)); g_return_if_fail (heading); item = lookup_display_item (self, renderer); g_return_if_fail (item); if (item->details && !item->expanded) return; gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, heading, -1, self->pv->heading_tag, item->extra_tag, NULL); gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1, item->extra_tag, NULL); }
static void app_text_print (const char *line, PrintFormat format, gboolean newline) { GtkTextIter iter; gtk_text_buffer_get_end_iter (app->text_buffer, &iter); gtk_text_buffer_insert_with_tags ( app->text_buffer, &iter, line, -1, app->text_tags[format], NULL); if (newline) { gtk_text_buffer_insert (app->text_buffer, &iter, "\n", -1); } gtk_text_view_scroll_mark_onscreen (app->text_view, app->text_end); }
static void create_intro(GtkTextView *view) { GtkTextTag *tag1; GtkTextIter iter; const char intro[] = N_("Hybrid is a lightweight extensible IM framework," "currently supports China Mobile Fetion protocol," "XMPP protocol, and IMAP mail notifier.\n\n\n"); gtk_text_view_set_editable(view,FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD_CHAR); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); g_signal_connect(view, "event-after", G_CALLBACK (event_after), NULL); GtkTextBuffer *buffer = gtk_text_view_get_buffer(view); tag1 = gtk_text_buffer_create_tag (buffer, NULL, "left-margin", 25, "right-margin", 25, NULL); gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert(buffer, &iter, "\n\n", 2); gtk_text_buffer_insert_with_tags(buffer, &iter, _(intro), -1, tag1, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, _("\nWebsite: "), -1, tag1, NULL); insert_link(buffer, &iter, "https://github.com/levin108/hybrid", NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, _("\nBug report: "), -1, tag1, NULL); insert_link(buffer, &iter, "https://github.com/levin108/hybrid/issues", NULL); }
static void add_text (GtkTextBuffer *buffer, GtkTextTag *tag, GtkTextIter *pos, const gchar *header, const gchar *text) { if (text && *text != '\0') { gtk_text_buffer_insert (buffer, pos, "\n", 1); gtk_text_buffer_insert_with_tags (buffer, pos, header, -1, tag, NULL); gtk_text_buffer_insert (buffer, pos, "\n", 1); gtk_text_buffer_insert (buffer, pos, text, -1); gtk_text_buffer_insert (buffer, pos, "\n", 1); } }
static void insert_link (GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data (G_OBJECT (tag), "url", text); gtk_text_buffer_insert_with_tags (buffer, iter, text, -1, tag, NULL); }
static void text_insert_help(struct menu *menu) { GtkTextBuffer *buffer; GtkTextIter start, end; const char *prompt = _(menu_get_prompt(menu)); struct gstr help = str_new(); menu_get_ext_help(menu, &help); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w)); gtk_text_buffer_get_bounds(buffer, &start, &end); gtk_text_buffer_delete(buffer, &start, &end); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1, NULL); gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags(buffer, &end, str_get(&help), -1, tag2, NULL); str_free(&help); }
static FmJobErrorAction on_error(FmFileOpsJob* job, GError* err, FmJobErrorSeverity severity, FmProgressDisplay* data) { GtkTextIter it; if(err->domain == G_IO_ERROR) { if(err->code == G_IO_ERROR_CANCELLED) return FM_JOB_ABORT; else if(err->code == G_IO_ERROR_FAILED_HANDLED) return FM_JOB_CONTINUE; } if(data->timer) g_timer_stop(data->timer); data->has_error = TRUE; ensure_dlg(data); /* FIXME: Need to mount volumes on demand here, too. if( err->domain == G_IO_ERROR ) { if( err->code == G_IO_ERROR_NOT_MOUNTED && severity < FM_JOB_ERROR_CRITICAL ) if(fm_mount_path(parent, dest_path)) return FM_JOB_RETRY; } */ gtk_text_buffer_get_end_iter(data->error_buf, &it); if(data->cur_file == NULL) g_warning("FmProgressDialog on_error: assertion `cur_file != NULL' failed"); if(data->cur_file || data->old_cur_file) { gtk_text_buffer_insert_with_tags(data->error_buf, &it, data->cur_file ? data->cur_file : data->old_cur_file, -1, data->bold_tag, NULL); gtk_text_buffer_insert(data->error_buf, &it, _(": "), -1); } gtk_text_buffer_insert(data->error_buf, &it, err->message, -1); gtk_text_buffer_insert(data->error_buf, &it, "\n", 1); if(!gtk_widget_get_visible(data->error_pane)) gtk_widget_show(data->error_pane); if(data->timer) g_timer_continue(data->timer); return FM_JOB_CONTINUE; }