static void append_field_and_value (GcrCertificateDetailsWidget *self, const gchar *field, const gchar *value, gboolean monospace) { PangoRectangle extents; PangoTabArray *tabs; PangoLayout *layout; GtkTextIter iter; gchar *text; 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 > self->pv->field_width) { self->pv->field_width = extents.width + COLUMN_MARGIN; tabs = pango_tab_array_new (1, TRUE); pango_tab_array_set_tab (tabs, 0, PANGO_TAB_LEFT, self->pv->field_width); g_object_set (self->pv->field_tag, "left-margin", FIELD_MARGIN, "indent", 0 - self->pv->field_width, "tabs", tabs, NULL); pango_tab_array_free (tabs); } gtk_text_buffer_get_end_iter (self->pv->buffer, &iter); gtk_text_buffer_insert_with_tags_by_name (self->pv->buffer, &iter, text, -1, "field", NULL); gtk_text_buffer_insert (self->pv->buffer, &iter, "\t", 1); gtk_text_buffer_insert_with_tags_by_name (self->pv->buffer, &iter, value, -1, "field", monospace ? "monospace" : NULL, NULL); gtk_text_buffer_insert (self->pv->buffer, &iter, "\n", 1); g_free (text); }
static void insert_heading (GucharmapCharmap *charmap, GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *heading) { gtk_text_buffer_insert (buffer, iter, "\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, iter, heading, -1, "bold", NULL); gtk_text_buffer_insert (buffer, iter, "\n\n", -1); }
/** * 将好友信息数据写入指定的缓冲区. * @param buffer text-buffer * @param pal class PalInfo */ void DialogPeer::FillPalInfoToBuffer(GtkTextBuffer *buffer, PalInfo *pal) { char buf[MAX_BUFLEN], ipstr[INET_ADDRSTRLEN]; GdkPixbuf *pixbuf; GtkTextIter iter; gtk_text_buffer_get_end_iter(buffer, &iter); snprintf(buf, MAX_BUFLEN, _("Version: %s\n"), pal->version); gtk_text_buffer_insert(buffer, &iter, buf, -1); if (pal->group && *pal->group != '\0') snprintf(buf, MAX_BUFLEN, _("Nickname: %s@%s\n"), pal->name, pal->group); else snprintf(buf, MAX_BUFLEN, _("Nickname: %s\n"), pal->name); gtk_text_buffer_insert(buffer, &iter, buf, -1); snprintf(buf, MAX_BUFLEN, _("User: %s\n"), pal->user); gtk_text_buffer_insert(buffer, &iter, buf, -1); snprintf(buf, MAX_BUFLEN, _("Host: %s\n"), pal->host); gtk_text_buffer_insert(buffer, &iter, buf, -1); inet_ntop(AF_INET, &pal->ipv4, ipstr, INET_ADDRSTRLEN); if (pal->segdes && *pal->segdes != '\0') snprintf(buf, MAX_BUFLEN, _("Address: %s(%s)\n"), pal->segdes, ipstr); else snprintf(buf, MAX_BUFLEN, _("Address: %s\n"), ipstr); gtk_text_buffer_insert(buffer, &iter, buf, -1); if (!FLAG_ISSET(pal->flags, 0)) snprintf(buf, MAX_BUFLEN, _("Compatibility: Microsoft\n")); else snprintf(buf, MAX_BUFLEN, _("Compatibility: GNU/Linux\n")); gtk_text_buffer_insert(buffer, &iter, buf, -1); snprintf(buf, MAX_BUFLEN, _("System coding: %s\n"), pal->encode); gtk_text_buffer_insert(buffer, &iter, buf, -1); if (pal->sign && *pal->sign != '\0') { gtk_text_buffer_insert(buffer, &iter, _("Signature:\n"), -1); gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, pal->sign, -1, "sign-words", NULL); } if (pal->photo && *pal->photo != '\0' && (pixbuf = gdk_pixbuf_new_from_file(pal->photo, NULL))) { gtk_text_buffer_insert(buffer, &iter, _("\nPhoto:\n"), -1); //TODO 缩放多少才合适 pixbuf_shrink_scale_1(&pixbuf, 200, -1); gtk_text_buffer_insert_pixbuf(buffer, &iter, pixbuf); g_object_unref(pixbuf); } }
void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessage *msg){ GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); GtkWidget *page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); GHashTable *table=(GHashTable*)g_object_get_data(G_OBJECT(page),"table"); if(page!=NULL){ GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(page,"textview")); GtkTextBuffer *b=gtk_text_view_get_buffer(text); GtkTextIter iter; GtkTextIter end; GtkTextIter start; gchar *result; gint line; line=GPOINTER_TO_INT(g_hash_table_lookup(table,msg)); gtk_text_buffer_get_iter_at_line(b,&iter,line); if(gtk_text_iter_get_chars_in_line(&iter) >0) { gtk_text_buffer_get_iter_at_line_offset(b,&start,line, gtk_text_iter_get_chars_in_line(&iter)-1); }else{ gtk_text_buffer_get_iter_at_line_offset(b,&start,line,0); } gtk_text_buffer_get_iter_at_line_offset(b,&end,line,0); gtk_text_buffer_delete(b,&start,&end); gtk_text_buffer_get_iter_at_line(b,&iter,line); switch (state) { case LinphoneChatMessageStateInProgress: result="Sending .."; break; case LinphoneChatMessageStateDelivered: { time_t t=time(NULL); struct tm *tm=localtime(&t); char buf[80]; strftime(buf,80,"%H:%M",tm); result=buf; g_hash_table_remove(table,msg); break; } case LinphoneChatMessageStateNotDelivered: { result="Message not sent"; g_hash_table_remove(table,msg); break; } default : result="Sending .."; } gtk_text_buffer_insert_with_tags_by_name(b,&iter,result,-1, "right","small","italic","font_grey","bg",NULL); g_object_set_data(G_OBJECT(page),"table",table); } }
static void theme_irc_append_message (EmpathyChatTextView *view, EmpathyMessage *message) { GtkTextBuffer *buffer; const gchar *name; const gchar *nick_tag; GtkTextIter iter; gchar *tmp; EmpathyContact *contact; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); contact = empathy_message_get_sender (message); name = empathy_contact_get_logged_alias (contact); if (empathy_message_get_tptype (message) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) { tmp = g_strdup_printf (" * %s %s", empathy_contact_get_logged_alias (contact), empathy_message_get_body (message)); empathy_chat_text_view_append_body (view, tmp, EMPATHY_CHAT_TEXT_VIEW_TAG_ACTION); g_free (tmp); return; } if (empathy_contact_is_user (contact)) { nick_tag = EMPATHY_THEME_IRC_TAG_NICK_SELF; } else { if (empathy_message_should_highlight (message)) { nick_tag = EMPATHY_THEME_IRC_TAG_NICK_HIGHLIGHT; } else { nick_tag = EMPATHY_THEME_IRC_TAG_NICK_OTHER; } } gtk_text_buffer_get_end_iter (buffer, &iter); /* The nickname. */ tmp = g_strdup_printf ("%s: ", name); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, tmp, -1, "cut", nick_tag, NULL); g_free (tmp); /* The text body. */ empathy_chat_text_view_append_body (view, empathy_message_get_body (message), EMPATHY_CHAT_TEXT_VIEW_TAG_BODY); }
void add_message_to_chat(gpointer data, gchar *str, gchar type) { //pthread_mutex_lock(&mutex_guichange); GtkTextBuffer *text_view_buffer = GTK_TEXT_BUFFER(data); GtkTextIter textiter; INFO("debug","GUI: Adding Message: \"%s\" to chat\n", (char*) str); gtk_text_buffer_get_end_iter(text_view_buffer, &textiter); switch(type) { case 'j': //user join gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_join_fg", "bold", NULL); break; case 'l': //user leave gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_leave_fg", "bold", NULL); break; case 'm': //message received gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_msg_fg", NULL); break; case 'M': //message sent gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_msg_fg", "bold", NULL); break; case 'w': //whisp received gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_whisp_fg", NULL); break; case 'W': //whisp sent gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_whisp_fg", "bold", NULL); break; case 'e': // server communication type 1 gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_sys_msg_fg", "bold", NULL); break; case 's': //server communication type 2 gtk_text_buffer_insert_with_tags_by_name (text_view_buffer, &textiter, str, -1, "lmarg", "chat_sys_msg_fg", "bold", NULL); break; default: return; break; } scroll_down(gres.scrolledwindow_chat); //pthread_mutex_unlock(&mutex_guichange); }
static void insert_vanilla_detail (GucharmapCharmap *charmap, GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *name, const gchar *value) { gtk_text_buffer_insert (buffer, iter, name, -1); gtk_text_buffer_insert (buffer, iter, " ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, iter, value, -1, "detail-value", NULL); gtk_text_buffer_insert (buffer, iter, "\n", -1); }
/** * Display a vector of rules (either qpol_avrule_t or * qpol_syn_avrule_t) in the rules text buffer. */ static void policy_view_display_avrule_results(policy_view_t * pv, apol_vector_t * results, int is_syn_rules) { apol_policy_t *policy = toplevel_get_policy(pv->top); qpol_policy_t *qp = apol_policy_get_qpol(policy); GtkTextIter start, end; char *string, buf[64]; size_t i; gtk_text_buffer_get_start_iter(pv->rules_text, &start); gtk_text_buffer_get_end_iter(pv->rules_text, &end); gtk_text_buffer_delete(pv->rules_text, &start, &end); snprintf(buf, 64, "%zd rule(s) match the search criteria.\n\n", apol_vector_get_size(results)); gtk_text_buffer_insert_with_tags_by_name(pv->rules_text, &end, buf, -1, "summary", NULL); for (i = 0; i < apol_vector_get_size(results); i++) { if (!is_syn_rules) { qpol_avrule_t *rule = apol_vector_get_element(results, i); string = apol_avrule_render(policy, rule); } else { qpol_syn_avrule_t *rule = apol_vector_get_element(results, i); string = apol_syn_avrule_render(policy, rule); unsigned long lineno; if (qpol_policy_has_capability(qp, QPOL_CAP_LINE_NUMBERS)) { qpol_syn_avrule_get_lineno(qp, rule, &lineno); sprintf(buf, "%ld", lineno); gtk_text_buffer_insert_with_tags_by_name(pv->rules_text, &end, "[", -1, "rule", NULL); gtk_text_buffer_insert_with_tags_by_name(pv->rules_text, &end, buf, -1, "line-number", NULL); gtk_text_buffer_insert_with_tags_by_name(pv->rules_text, &end, "] ", -1, "rule", NULL); } } if (string == NULL) { toplevel_ERR(pv->top, "Error displaying rule: %s", strerror(errno)); return; } gtk_text_buffer_insert_with_tags_by_name(pv->rules_text, &end, string, -1, "rule", NULL); free(string); gtk_text_buffer_insert(pv->rules_text, &end, "\n", -1); } }
void ctk_help_term(GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *fmt, ...) { gchar *a, *b; NV_VSNPRINTF(a, fmt); b = g_strconcat("\n", a, NULL); gtk_text_buffer_insert_with_tags_by_name(buffer, iter, b, -1, CTK_HELP_BOLD_TAG, NULL); g_free(b); free(a); }
/* * called from debugger module to show a message in debugger messages pane */ void on_debugger_message (const gchar* message, const gchar *color) { gchar *msg = g_strdup_printf("%s\n", message); GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview)); GtkTextIter iter; gtk_text_buffer_get_end_iter(buffer, &iter); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, msg, -1, color, NULL); g_free(msg); gtk_adjustment_set_value(vadj, gtk_adjustment_get_upper(vadj)); }
static void insert_fortune_text (FishApplet *fish, const char *text) { GtkTextIter iter; gtk_text_buffer_get_iter_at_offset (fish->fortune_buffer, &iter, -1); gtk_text_buffer_insert_with_tags_by_name (fish->fortune_buffer, &iter, text, -1, "monospace_tag", NULL); while (gtk_events_pending ()) gtk_main_iteration (); }
void empathy_chat_text_view_append_spacing (EmpathyChatTextView *view) { EmpathyChatTextViewPriv *priv = GET_PRIV (view); GtkTextIter iter; gtk_text_buffer_get_end_iter (priv->buffer, &iter); gtk_text_buffer_insert_with_tags_by_name (priv->buffer, &iter, "\n", -1, EMPATHY_CHAT_TEXT_VIEW_TAG_CUT, EMPATHY_CHAT_TEXT_VIEW_TAG_SPACING, NULL); }
static void chat_text_view_replace_link (const gchar *text, gssize len, gpointer match_data, gpointer user_data) { GtkTextBuffer *buffer = GTK_TEXT_BUFFER (user_data); GtkTextIter iter; gtk_text_buffer_get_end_iter (buffer, &iter); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, text, len, EMPATHY_CHAT_TEXT_VIEW_TAG_LINK, NULL); }
void show_msg(GtkTextBuffer *buf, gchar *tagname, gchar *format, ...) { va_list args; va_start(args, format); gchar *text = g_strdup_vprintf(format, args); va_end(args); if (tagname) { GtkTextIter end; gtk_text_buffer_get_iter_at_offset (buf, &end, -1); gtk_text_buffer_insert_with_tags_by_name(buf, &end, text, -1, tagname, NULL); } else { gtk_text_buffer_insert_at_cursor(buf, text, -1); } g_free(text); }
static void chat_text_view_append_timestamp (EmpathyChatTextView *view, time_t timestamp, gboolean show_date) { EmpathyChatTextViewPriv *priv = GET_PRIV (view); GtkTextIter iter; gchar *tmp; GString *str; str = g_string_new ("- "); /* Append date if needed */ if (show_date) { GDate *date; gchar buf[256]; date = g_date_new (); g_date_set_time_t (date, timestamp); /* Translators: timestamp displayed between conversations in * chat windows (strftime format string) */ g_date_strftime (buf, 256, _("%A %B %d %Y"), date); g_string_append (str, buf); g_string_append (str, ", "); g_date_free (date); } /* Append time */ tmp = empathy_time_to_string_local (timestamp, EMPATHY_TIME_FORMAT_DISPLAY_SHORT); g_string_append (str, tmp); g_free (tmp); g_string_append (str, " -\n"); /* Insert the string in the buffer */ empathy_chat_text_view_append_spacing (view); gtk_text_buffer_get_end_iter (priv->buffer, &iter); gtk_text_buffer_insert_with_tags_by_name (priv->buffer, &iter, str->str, -1, EMPATHY_CHAT_TEXT_VIEW_TAG_TIME, NULL); priv->last_timestamp = timestamp; g_string_free (str, TRUE); }
/** * @brief Append error text to the end of the GUI log * @param message The text to append * @return result of transaction * * @code * gchar *message = "Adding error to log"; * * gui_erro_log(message); * @endcode */ void gui_error_log(const gchar *message) { GtkTextIter iter; if (SILENT) { fprintf(stderr, "\033[1;31m%s\033[0m\n", message); } else { gdk_threads_enter(); gtk_text_buffer_get_end_iter(buffer, &iter); gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, message, strlen(message), "error", NULL); gdk_threads_leave(); } }
static void vivi_command_line_append_message (ViviApplication *app, guint type, const char *message, GtkTextView *view) { GtkTextBuffer *buffer = gtk_text_view_get_buffer (view); GtkTextIter iter; GtkTextMark *mark; const char *tag_names[] = { "input", "output", "error" }; gtk_text_buffer_get_end_iter (buffer, &iter); mark = gtk_text_buffer_get_mark (buffer, "end"); if (mark == NULL) mark = gtk_text_buffer_create_mark (buffer, "end", &iter, FALSE); if (gtk_text_buffer_get_char_count (buffer) > 0) gtk_text_buffer_insert (buffer, &iter, "\n", 1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, message, -1, tag_names[type], NULL); gtk_text_view_scroll_to_mark (view, mark, 0.0, TRUE, 0.0, 0.0); }
void chat_add_colored_text(Chat *chat, const gchar *tagname, const gchar *format, ...) { va_list ap; gchar *text; GtkTextIter end; GtkTextBuffer *buffer; va_start(ap, format); text = g_strdup_vprintf(format, ap); va_end(ap); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chat->text_view)); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_insert_with_tags_by_name(buffer, &end, text, -1, tagname, NULL); g_free(text); }
void add_ics_entry_to_day_info_panel (gchar *name, gchar *entry, gchar *entry_desc, gboolean desc_flag, GUI *appGUI) { gchar tmpbuf[BUFFER_SIZE]; g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", name); gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "bold", NULL); g_snprintf (tmpbuf, BUFFER_SIZE, "%s\n", str_remove_backslash (entry)); gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1); if (entry_desc != NULL && desc_flag == TRUE) { g_snprintf (tmpbuf, BUFFER_SIZE, "(%s)\n\n", str_remove_backslash (entry_desc)); gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1); } else { gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n", -1); } }
void parasite_python_shell_append_text(ParasitePythonShell *python_shell, const char *str, const char *tag) { ParasitePythonShellPrivate *priv = python_shell->priv; GtkTextIter end; GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->textview)); GtkTextMark *mark = gtk_text_buffer_get_insert(buffer); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_move_mark(buffer, mark, &end); gtk_text_buffer_insert_with_tags_by_name(buffer, &end, str, -1, tag, NULL); gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(priv->textview), mark, 0, TRUE, 0, 1); }
void result_item_print_linenos(GtkTextBuffer * tb, GtkTextIter * iter, const gchar * prefix, const apol_vector_t * linenos, const gchar * tag, GString * string) { size_t i; unsigned long lineno; gtk_text_buffer_insert(tb, iter, " [", -1); if (prefix != NULL) { gtk_text_buffer_insert(tb, iter, prefix, -1); } for (i = 0; i < apol_vector_get_size(linenos); i++) { lineno = (unsigned long)apol_vector_get_element(linenos, i); if (i > 0) { gtk_text_buffer_insert(tb, iter, ", ", -1); } g_string_printf(string, "%lu", lineno); gtk_text_buffer_insert_with_tags_by_name(tb, iter, string->str, -1, tag, NULL); } gtk_text_buffer_insert(tb, iter, "]", -1); }
static void remmina_chat_window_append_text(RemminaChatWindow* window, const gchar* name, const gchar* tagname, const gchar* text) { GtkTextBuffer* buffer; GtkTextIter iter; gchar* ptr; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(window->history_text)); if (name) { ptr = g_strdup_printf("(%s) ", name); gtk_text_buffer_get_end_iter(buffer, &iter); if (tagname) { gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, ptr, -1, tagname, NULL); } else { gtk_text_buffer_insert(buffer, &iter, ptr, -1); } g_free(ptr); } if (text && text[0] != 0) { gtk_text_buffer_get_end_iter(buffer, &iter); if (text[strlen(text) - 1] == '\n') { gtk_text_buffer_insert(buffer, &iter, text, -1); } else { ptr = g_strdup_printf("%s\n", text); gtk_text_buffer_insert(buffer, &iter, ptr, -1); g_free(ptr); } } /* Use g_idle_add to make the scroll happen after the text has been actually updated */ g_idle_add((GSourceFunc) remmina_chat_window_scroll_proc, window); }
void gimp_color_profile_view_set_error (GimpColorProfileView *view, const gchar *message) { GtkTextBuffer *buffer; GtkTextIter iter; g_return_if_fail (GIMP_IS_COLOR_PROFILE_VIEW (view)); g_return_if_fail (message != NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, message, -1, "emphasis", NULL); }
void hybrid_chat_textview_notify(GtkWidget *textview, const gchar *text, gint type) { GtkTextBuffer *recv_tb; GtkTextIter end_iter; GtkTextIter stop_iter; GtkTextIter start_iter; GtkTextMark *mark; recv_tb = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); gtk_text_buffer_get_end_iter(recv_tb, &end_iter); gtk_text_view_backward_display_line(GTK_TEXT_VIEW(textview), &end_iter); gtk_text_buffer_get_end_iter(recv_tb, &stop_iter); gtk_text_buffer_get_start_iter(recv_tb, &start_iter); /* first line */ if (gtk_text_iter_equal(&end_iter, &stop_iter)) { gtk_text_buffer_delete(recv_tb, &start_iter, &stop_iter); } else { gtk_text_buffer_delete(recv_tb, &end_iter, &stop_iter); if (!gtk_text_iter_equal(&start_iter, &end_iter)) { gtk_text_buffer_insert(recv_tb, &end_iter, "\n", -1); } } gtk_text_buffer_get_end_iter(recv_tb, &end_iter); if (type == MSG_NOTIFICATION_INPUT) { gtk_text_buffer_insert_with_tags_by_name(recv_tb, &end_iter, text, strlen(text), "grey", "small", "wrap", NULL); } mark = gtk_text_buffer_get_mark(recv_tb, "scroll"); gtk_text_buffer_move_mark(recv_tb, mark, &end_iter); gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(textview), mark); }
void gui_readerview_print(unsigned event, const bytestring_t *command, unsigned short sw, const bytestring_t *response, void *extra_data) { const char* text; char buf[200]; GtkTextIter iter; char *string_sw = NULL; UNUSED(extra_data); if (event==CARDREADER_EVENT_RESET || event==CARDREADER_EVENT_CONNECT) { gtk_text_buffer_get_iter_at_offset (READER_BUFFER,&iter,-1); gtk_text_buffer_insert_with_tags_by_name(READER_BUFFER,&iter,"RSET ",-1,"red_text",NULL); text = hex_pretty_print(5,command,0); gtk_text_buffer_get_iter_at_offset (READER_BUFFER,&iter,-1); gtk_text_buffer_insert_with_tags_by_name(READER_BUFFER,&iter,text,-1,"red_text",NULL); } else if (event==CARDREADER_EVENT_TRANSMIT) { gtk_text_buffer_get_iter_at_offset (READER_BUFFER,&iter,-1); gtk_text_buffer_insert_with_tags_by_name(READER_BUFFER,&iter,"SEND ",-1,"green_text",NULL); text = hex_pretty_print(5,command,0); gtk_text_buffer_get_iter_at_offset (READER_BUFFER,&iter,-1); gtk_text_buffer_insert_with_tags_by_name(READER_BUFFER,&iter,text,-1,"green_text",NULL); luax_variable_call("card.stringify_sw","u>s",sw,&string_sw); snprintf(buf,200,"RECV %04X # %s\n ",sw,string_sw); if (string_sw) free(string_sw); gtk_text_buffer_get_iter_at_offset (READER_BUFFER,&iter,-1); gtk_text_buffer_insert_with_tags_by_name(READER_BUFFER,&iter,buf,-1,"blue_text",NULL); text = hex_pretty_print(5,response,1); if (text) { gtk_text_buffer_get_iter_at_offset (READER_BUFFER,&iter,-1); gtk_text_buffer_insert_with_tags_by_name(READER_BUFFER,&iter,text,-1,"blue_text",NULL); } } else if (event==CARDREADER_EVENT_CLEAR_LOG) { gtk_text_buffer_set_text(READER_BUFFER,"",0); } ui_update(); }
void console_print(ConsoleUI *cui, char *type, const char *text, ...) { char buf[4096]; va_list ap; GtkTextBuffer *buffer; GtkTextIter iter; va_start(ap, text); g_vsnprintf(buf, 4096, text, ap); va_end(ap); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(cui->display)); gtk_text_buffer_get_end_iter(buffer, &iter); if (type) { gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, buf, -1, type, NULL); } else { gtk_text_buffer_insert(buffer, &iter, buf, -1); } gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(cui->display), cui->mark_end, 0.0, FALSE, 0, 0); }
void fx_many_add_information(FxMany* fxmany , const char* text) { GtkTextIter iter; GtkTextBuffer* buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(fxmany->recv_text)); gtk_text_buffer_get_end_iter(buffer , &iter ); gtk_text_buffer_insert_with_tags_by_name(buffer , &iter , text , -1 , "blue" , NULL); gtk_text_buffer_insert(buffer , &iter , "\n" , -1); gtk_text_iter_set_line_offset (&iter, 0); fxmany->mark = gtk_text_buffer_get_mark (buffer, "scroll"); gtk_text_buffer_move_mark (buffer, fxmany->mark, &iter); gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW(fxmany->recv_text), fxmany->mark); }
void gimp_color_profile_view_set_profile (GimpColorProfileView *view, GimpColorProfile profile) { GtkTextBuffer *buffer; GtkTextIter iter; gchar *label; gchar *summary; g_return_if_fail (GIMP_IS_COLOR_PROFILE_VIEW (view)); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_set_text (buffer, "", 0); view->priv->profile = profile; if (! profile) return; gtk_text_buffer_get_start_iter (buffer, &iter); label = gimp_lcms_profile_get_label (profile); summary = gimp_lcms_profile_get_summary (profile); if (label && strlen (label)) { gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, label, -1, "strong", NULL); gtk_text_buffer_insert (buffer, &iter, "\n", 1); } if (summary) gtk_text_buffer_insert (buffer, &iter, summary, -1); g_free (label); g_free (summary); }
void nh_message_putstr(const char *str) { int len; char *buf; GtkTextIter iter, iter2; GtkTextBuffer *t; if (!message_text) return; t = gtk_text_view_get_buffer(GTK_TEXT_VIEW(message_text)); gtk_text_buffer_get_end_iter(t, &iter); len = strlen(str); buf = (char *)alloc(len + 2); sprintf(buf, "\n%s", str); if (nh_status_in_trouble()) gtk_text_buffer_insert_with_tags_by_name(t, &iter, buf, len + 1, "warning", NULL); else gtk_text_buffer_insert(t, &iter, buf, len + 1); free(buf); len = gtk_text_buffer_get_char_count(t); if (len > NH_TEXT_REMEMBER) { gtk_text_buffer_get_iter_at_offset(t, &iter, len - NH_TEXT_REMEMBER); gtk_text_buffer_get_iter_at_line(t, &iter2, gtk_text_iter_get_line(&iter) + 1); gtk_text_buffer_get_start_iter(t, &iter); gtk_text_buffer_delete(t, &iter, &iter2); } gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(message_text), gtk_text_buffer_get_mark(t, "nh_end")); }
static void chat_text_view_append_event (EmpathyChatView *view, const gchar *str) { EmpathyChatTextView *text_view = EMPATHY_CHAT_TEXT_VIEW (view); EmpathyChatTextViewPriv *priv = GET_PRIV (text_view); gboolean bottom; GtkTextIter iter; gchar *msg; g_return_if_fail (EMPATHY_IS_CHAT_TEXT_VIEW (view)); g_return_if_fail (!EMP_STR_EMPTY (str)); bottom = chat_text_view_is_scrolled_down (text_view); chat_text_view_maybe_trim_buffer (EMPATHY_CHAT_TEXT_VIEW (view)); chat_text_maybe_append_date_and_time (text_view, empathy_time_get_current ()); gtk_text_buffer_get_end_iter (priv->buffer, &iter); msg = g_strdup_printf (" - %s\n", str); gtk_text_buffer_insert_with_tags_by_name (priv->buffer, &iter, msg, -1, EMPATHY_CHAT_TEXT_VIEW_TAG_EVENT, NULL); g_free (msg); if (bottom) { chat_text_view_scroll_down (view); } if (priv->last_contact) { g_object_unref (priv->last_contact); priv->last_contact = NULL; g_object_notify (G_OBJECT (view), "last-contact"); } }