GtkTextTagTable *SourceEditor::createSharedTagTable() { GtkTextTagTable *tagTable = TextEditor::createSharedTagTable(); for (int i = 0; i < N_TOKEN_KINDS; ++i) { GtkTextTag *tag; std::string tagName(SOURCE_EDITOR "/"); tagName += TOKEN_KIND_NAMES[i]; tag = gtk_text_tag_new(tagName.c_str()); g_object_set(tag, "foreground", TOKEN_COLORS[i], NULL); gtk_text_tag_table_add(tagTable, tag); g_object_unref(tag); tokenTags[i] = tag; } GtkTextTag *tag; tag = gtk_text_tag_new(SOURCE_EDITOR "/invisible"); g_object_set(tag, "invisible", TRUE, NULL); gtk_text_tag_table_add(tagTable, tag); g_object_unref(tag); tagInvisible = tag; return tagTable; }
GtkWidget * gui_chat_create () { /* tag table */ tag_table = gtk_text_tag_table_new (); tags[0] = gtk_text_tag_new ("team0"); g_object_set (tags[0], "foreground", "orange", NULL); gtk_text_tag_table_add (tag_table, tags[0]); tags[1] = gtk_text_tag_new ("team1"); g_object_set (tags[1], "foreground", "dark red", NULL); gtk_text_tag_table_add (tag_table, tags[1]); tags[2] = gtk_text_tag_new ("team2"); g_object_set (tags[2], "foreground", "dark blue", NULL); gtk_text_tag_table_add (tag_table, tags[2]); tags[3] = gtk_text_tag_new ("team3"); g_object_set (tags[3], "foreground", "dark gray", NULL); gtk_text_tag_table_add (tag_table, tags[3]); /* widgets */ logview = gtk_text_view_new (); g_object_set (G_OBJECT (logview), "editable", FALSE, "wrap-mode", GTK_WRAP_WORD, NULL); GtkWidget *scrolled = gtk_scrolled_window_new (NULL, NULL); g_object_set (G_OBJECT (scrolled), "shadow-type", GTK_SHADOW_IN, "hscrollbar-policy", GTK_POLICY_NEVER, "vscrollbar-policy", GTK_POLICY_ALWAYS, NULL); gtk_container_add (GTK_CONTAINER (scrolled), logview); entry = gtk_entry_new (); g_object_set (G_OBJECT (entry), "secondary-icon-stock", GTK_STOCK_MEDIA_PLAY, NULL); g_signal_connect (entry, "activate", G_CALLBACK (gui_chat_entry_activated), NULL); g_signal_connect (entry, "icon-release", G_CALLBACK (gui_chat_entry_icon_clicked), NULL); page = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4); g_object_set (G_OBJECT (page), "border-width", 2, "sensitive", FALSE, NULL); gtk_box_pack_start (GTK_BOX (page), scrolled, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (page), entry, FALSE, TRUE, 0); gtk_widget_show_all (page); return page; }
bg_gtk_textview_t * bg_gtk_textview_create() { bg_gtk_textview_t * t; t = calloc(1, sizeof(*t)); if(!tag_table) { tag_table = gtk_text_tag_table_new(); text_tag = gtk_text_tag_new("Font"); g_object_set(text_tag, "editable", 0, NULL); gtk_text_tag_table_add(tag_table, text_tag); } t->buffer = gtk_text_buffer_new(tag_table); t->textview = gtk_text_view_new_with_buffer(t->buffer); g_signal_connect(G_OBJECT(t->textview), "realize", G_CALLBACK(set_bg), NULL); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(t->textview), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(t->textview), GTK_WRAP_NONE); gtk_text_view_set_editable(GTK_TEXT_VIEW(t->textview), 0); gtk_widget_show(t->textview); return t; }
static VALUE rg_add(VALUE self, VALUE tag) { G_CHILD_ADD(self, tag); gtk_text_tag_table_add(_SELF(self), RVAL2GTKTEXTTAG(tag)); return self; }
void interface_image_add(GtkWidget * tab, GtkTextIter * iter, GdkPixbuf * pixbuf) { if (pixbuf == NULL) return; GtkTextView *out1 = GTK_TEXT_VIEW(interface_get_widget(tab, "output1")); GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(out1)); GtkTextIter it; if (iter != NULL) it = *iter; else gtk_text_buffer_get_end_iter(buffer, &it); gtk_text_buffer_insert_pixbuf(buffer, &it, pixbuf); // append tag name, if needed SESSION_STATE *session = g_object_get_data(G_OBJECT(tab), "session"); if (!session->imagemapName) return; GtkTextTag *t = gtk_text_tag_new (session->imagemapName); g_object_set_data(G_OBJECT(t), "imagemap", g_strdup(session->imagemapName)); GtkTextTagTable *table = gtk_text_buffer_get_tag_table(buffer); gtk_text_tag_table_add(table, t); gtk_text_buffer_apply_tag(buffer, t, &it, &it); g_signal_connect(G_OBJECT(t), "event", G_CALLBACK(on_tag_click), session); }
static GtkTextTagTable* create_tag_table (GcrDisplayView *self) { GtkTextTagTable *tags; gint width, height; g_assert (GCR_IS_DISPLAY_VIEW (self)); tags = gtk_text_tag_table_new (); if (!gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &width, &height)) width = 48; self->pv->title_tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "title", "scale", PANGO_SCALE_LARGE, "right-margin", (ICON_MARGIN * 2) + width, "pixels-above-lines", 9, "pixels-below-lines", 6, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add (tags, self->pv->title_tag); self->pv->content_tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "content", "right-margin", (ICON_MARGIN * 2) + width, "left-margin", FIELD_MARGIN, "pixels-below-lines", 3, NULL); gtk_text_tag_table_add (tags, self->pv->content_tag); self->pv->heading_tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "heading", "pixels-above-lines", 9, "pixels-below-lines", 3, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add (tags, self->pv->heading_tag); self->pv->monospace_tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "monospace", "family", "monospace", NULL); gtk_text_tag_table_add (tags, self->pv->monospace_tag); return tags; }
static GtkTextTagTable* create_tag_table (GcrCertificateDetailsWidget *self) { GtkTextTagTable *tags; GtkTextTag *tag; g_assert (GCR_IS_CERTIFICATE_DETAILS_WIDGET (self)); tags = gtk_text_tag_table_new (); tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "heading", "left-margin", 5, "right-margin", 5, "pixels-above-lines", 9, "pixels-below-lines", 3, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add (tags, tag); g_object_unref (tag); tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "monospace", "family", "monospace", NULL); gtk_text_tag_table_add (tags, tag); g_object_unref (tag); g_assert (!self->pv->field_tag); self->pv->field_width = 0; self->pv->field_tag = g_object_new (GTK_TYPE_TEXT_TAG, "name", "field", "left-margin", self->pv->field_width + FIELD_MARGIN, "indent", self->pv->field_width, "right-margin", 5, "pixels-below-lines", 3, "wrap-mode", GTK_WRAP_WORD_CHAR, NULL); gtk_text_tag_table_add (tags, self->pv->field_tag); return tags; }
/*# @method add GtkTextTagTable @brief Add a tag to the table. The tag is assigned the highest priority in the table. @param tag a GtkTextTag tag must not be in a tag table already, and may not have the same name as an already-added tag. */ FALCON_FUNC TextTagTable::add( VMARG ) { Item* i_tag = vm->param( 0 ); #ifndef NO_PARAMETER_CHECK if ( !i_tag || i_tag->isNil() || !i_tag->isObject() || !IS_DERIVED( i_tag, GtkTextTag ) ) throw_inv_params( "GtkTextTag" ); #endif GtkTextTag* tag = (GtkTextTag*) COREGOBJECT( i_tag )->getObject(); MYSELF; GET_OBJ( self ); gtk_text_tag_table_add( (GtkTextTagTable*)_obj, tag ); }
Php::Value GtkTextTagTable_::add(Php::Parameters ¶meters) { GtkTextTag *tag; if(parameters.size() > 0) { Php::Value object_tag = parameters[0]; GtkTextTag_ *phpgtk_tag = (GtkTextTag_ *)object_tag.implementation(); tag = (phpgtk_tag->get_tag()); } gboolean ret = gtk_text_tag_table_add (GTK_TEXT_TAG_TABLE(instance), tag); return ret; }
/** * \internal * Appends \p text into validate log with pair of style/values, as seen in #GtkTextTag properties. * * \see GtkTextTag */ static GtkTextTag * validate_append_text_with_property_list(struct validate *validate, const gchar * text, const gchar * first_property_name, ...) { GtkTextTag *text_tag; va_list argp; text_tag = gtk_text_tag_new(NULL); gtk_text_tag_table_add(gtk_text_buffer_get_tag_table(validate->text_buffer), text_tag); va_start(argp, first_property_name); g_object_set_valist(G_OBJECT(text_tag), first_property_name, argp); va_end(argp); validate_append_text_with_tag(validate, text_tag, text); return text_tag; }
GtkTextTag *get_bg_color_tag(GtkTextBuffer * buffer, int color) { /* "background" is property name for color */ char s[10]; colorCode(s, color, FALSE); GtkTextTagTable *table = gtk_text_buffer_get_tag_table(buffer); GtkTextTag *tag = gtk_text_tag_table_lookup(table, s); if (!tag) { // tag not found - need to create it tag = gtk_text_tag_new(s); // first character is F/B (foreground/background), hence we need to // get the color name from the second char, hence that s+1 // g_object_set(tag, "background", s + 1, NULL); g_object_set(tag, "background", g_strdup (s + 1), NULL); gtk_text_tag_table_add(table, tag); } return tag; }
static void highlight_add_tag (const char *name, const GdkRGBA *text, const GdkRGBA *background, const char *font) { GtkTextTag *tag; g_assert (highlight_tag_table != NULL); tag = gtk_text_tag_table_lookup (highlight_tag_table, name); g_assert (tag == NULL); tag = gtk_text_tag_new (name); g_object_set (G_OBJECT (tag), "foreground-rgba", text, "background-rgba", background, "font", font, NULL); gtk_text_tag_table_add (highlight_tag_table, tag); gtk_text_tag_set_priority (tag, next_priority); next_priority++; }
GtkTextTag * gb_source_view_ref_search_tag (GbSourceView *view) { GtkTextTagTable *tag_table; GtkTextBuffer *buffer; GtkTextTag *search_tag; g_return_val_if_fail(GB_IS_SOURCE_VIEW(view), NULL); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); tag_table = gtk_text_buffer_get_tag_table(buffer); if (!(search_tag = gtk_text_tag_table_lookup(tag_table, "search-tag"))) { search_tag = g_object_new(GTK_TYPE_TEXT_TAG, "name", "search-tag", "background", "#fce94f", "foreground", "#2e3436", NULL); gtk_text_tag_table_add(tag_table, search_tag); return search_tag; } return g_object_ref(search_tag); }
static gboolean on_show_dlg (FmProgressDisplay *data) { GtkBuilder *builder = gtk_builder_new (); GtkWidget *to, *to_label; FmPath *dest; const char *title = NULL; GtkTextTagTable *tag_table = gtk_text_tag_table_new (); gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); gtk_builder_add_from_string (builder, PROGRESS_DLG, -1, NULL); data->dlg = (GtkWidget*) gtk_builder_get_object (builder, "dlg"); g_signal_connect (data->dlg, "response", (GCallback) on_response, data); to_label = (GtkWidget*) gtk_builder_get_object (builder, "to_label"); to = (GtkWidget*) gtk_builder_get_object (builder, "dest"); data->icon = (GtkWidget*) gtk_builder_get_object (builder, "icon"); data->msg = (GtkWidget*) gtk_builder_get_object (builder, "msg"); data->act = (GtkWidget*) gtk_builder_get_object (builder, "action"); data->src = (GtkWidget*) gtk_builder_get_object (builder, "src"); data->dest = (GtkWidget*) gtk_builder_get_object (builder, "dest"); data->current = (GtkWidget*) gtk_builder_get_object (builder, "current"); data->progress = (GtkWidget*) gtk_builder_get_object (builder, "progress"); data->error_pane = (GtkWidget*) gtk_builder_get_object (builder, "error_pane"); data->error_msg = (GtkWidget*) gtk_builder_get_object (builder, "error_msg"); data->remaining_time = (GtkWidget*) gtk_builder_get_object (builder, "remaining_time"); data->bold_tag = gtk_text_tag_new ("bold"); g_object_set (data->bold_tag, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add (tag_table, data->bold_tag); data->error_buf = gtk_text_buffer_new (tag_table); g_object_unref (tag_table); gtk_text_view_set_buffer (GTK_TEXT_VIEW (data->error_msg), data->error_buf); g_object_unref (builder); // set the src label if (data->job->srcs) { GList *l = fm_list_peek_head_link (data->job->srcs); int i; char *disp; FmPath *path; GString *str = g_string_sized_new (512); path = FM_PATH (l->data); disp = fm_path_display_basename (path); g_string_assign (str, disp); g_free (disp); for ( i =1, l=l->next; i < 10 && l; l=l->next, ++i) { path = FM_PATH (l->data); g_string_append (str, _(", ")); disp = fm_path_display_basename (path); g_string_append (str, disp); g_free (disp); } if (l) g_string_append (str, "..."); gtk_label_set_text (GTK_LABEL (data->src), str->str); g_string_free (str, TRUE); } // FIXME_pcm: use accessor functions instead switch (data->job->type) { case FM_FILE_OP_MOVE: title = _("Moving files"); break; case FM_FILE_OP_COPY: title = _("Copying files"); break; case FM_FILE_OP_TRASH: title = _("Trashing files"); break; case FM_FILE_OP_DELETE: title = _("Deleting files"); break; case FM_FILE_OP_LINK: title = _("Creating symlinks"); break; case FM_FILE_OP_CHANGE_ATTR: title = _("Changing file attributes"); break; } if (title) { gtk_window_set_title (GTK_WINDOW (data->dlg), title); gtk_label_set_text (GTK_LABEL (data->act), title); } if (dest = fm_file_ops_job_get_dest (data->job)) { char *dest_str = fm_path_display_name (dest, TRUE); gtk_label_set_text (GTK_LABEL (to), dest_str); g_free (dest_str); } else { gtk_widget_destroy (data->dest); gtk_widget_destroy (to_label); } gtk_window_present (GTK_WINDOW (data->dlg)); data->update_timeout = g_timeout_add (500, (GSourceFunc)on_update_dlg, data); data->delay_timeout = 0; return FALSE; }
static void add_chat_msg(GtTwitchChatView* self, const gchar* sender, const gchar* colour, const gchar* msg, GList* emotes, gint user_modes) { GtTwitchChatViewPrivate* priv = gt_twitch_chat_view_get_instance_private(self); GtkTextTag* sender_colour_tag = NULL; gint offset = 0; gtk_text_buffer_get_end_iter(priv->chat_buffer, &priv->bottom_iter); if (!colour || strlen(colour) < 1) //TODO: Set random colour instead of just black colour = get_default_chat_colour(sender); sender_colour_tag = gtk_text_tag_table_lookup(priv->tag_table, colour); if (!sender_colour_tag) { sender_colour_tag = gtk_text_tag_new(colour); g_object_set(sender_colour_tag, "foreground", colour, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add(priv->tag_table, sender_colour_tag); } offset = strlen(sender) + 2; //TODO: Cleanup? #define INSERT_USER_MOD_PIXBUF(mode, name) \ if (user_modes & mode) \ { \ gtk_text_buffer_insert_pixbuf(priv->chat_buffer, &priv->bottom_iter, priv->chat_badges->name); \ gtk_text_buffer_insert(priv->chat_buffer, &priv->bottom_iter, " ", -1); \ gtk_text_iter_forward_chars(&priv->bottom_iter, 2); \ offset += 2; \ } \ INSERT_USER_MOD_PIXBUF(USER_MODE_SUBSCRIBER, subscriber); INSERT_USER_MOD_PIXBUF(USER_MODE_TURBO, turbo); INSERT_USER_MOD_PIXBUF(USER_MODE_GLOBAL_MOD, global_mod); INSERT_USER_MOD_PIXBUF(USER_MODE_BROADCASTER, broadcaster); INSERT_USER_MOD_PIXBUF(USER_MODE_STAFF, staff); INSERT_USER_MOD_PIXBUF(USER_MODE_ADMIN, admin); INSERT_USER_MOD_PIXBUF(USER_MODE_MOD, mod); #undef INSERT_USER_MOD_PIXBUF gtk_text_buffer_insert_with_tags(priv->chat_buffer, &priv->bottom_iter, sender, -1, sender_colour_tag, NULL); gtk_text_iter_forward_word_end(&priv->bottom_iter); gtk_text_buffer_insert(priv->chat_buffer, &priv->bottom_iter, ": ", -1); gtk_text_iter_forward_chars(&priv->bottom_iter, 2); insert_message_with_emotes(priv->chat_buffer, &priv->bottom_iter, emotes, msg, offset); gtk_text_iter_forward_to_line_end(&priv->bottom_iter); gtk_text_buffer_insert(priv->chat_buffer, &priv->bottom_iter, "\n", -1); gtk_text_buffer_move_mark(priv->chat_buffer, priv->bottom_mark, &priv->bottom_iter); gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(priv->chat_view), priv->bottom_mark); }
static gboolean on_show_dlg(gpointer user_data) { FmProgressDisplay* data = (FmProgressDisplay*)user_data; GtkBuilder* builder; GtkLabel* to; GtkWidget *to_label; FmPath* dest; const char* title = NULL; GtkTextTagTable* tag_table; GDK_THREADS_ENTER(); if(g_source_is_destroyed(g_main_current_source())) goto _end; builder = gtk_builder_new(); tag_table = gtk_text_tag_table_new(); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); gtk_builder_add_from_file(builder, PACKAGE_UI_DIR "/progress.ui", NULL); data->dlg = GTK_DIALOG(gtk_builder_get_object(builder, "dlg")); g_object_weak_ref(G_OBJECT(data->dlg), on_progress_dialog_destroy, data); g_signal_connect(data->dlg, "response", G_CALLBACK(on_response), data); /* FIXME: connect to "close" signal */ to_label = (GtkWidget*)gtk_builder_get_object(builder, "to_label"); to = GTK_LABEL(gtk_builder_get_object(builder, "dest")); data->icon = GTK_IMAGE(gtk_builder_get_object(builder, "icon")); data->msg = GTK_LABEL(gtk_builder_get_object(builder, "msg")); data->act = GTK_LABEL(gtk_builder_get_object(builder, "action")); data->src = GTK_LABEL(gtk_builder_get_object(builder, "src")); data->dest = (GtkWidget*)gtk_builder_get_object(builder, "dest"); data->current = GTK_LABEL(gtk_builder_get_object(builder, "current")); data->progress = GTK_PROGRESS_BAR(gtk_builder_get_object(builder, "progress")); data->error_pane = (GtkWidget*)gtk_builder_get_object(builder, "error_pane"); data->error_msg = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "error_msg")); data->remaining_time = GTK_LABEL(gtk_builder_get_object(builder, "remaining_time")); data->bold_tag = gtk_text_tag_new("bold"); g_object_set(data->bold_tag, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add(tag_table, data->bold_tag); data->error_buf = gtk_text_buffer_new(tag_table); g_object_unref(tag_table); gtk_text_view_set_buffer(data->error_msg, data->error_buf); g_object_unref(builder); /* set the src label */ /* FIXME: direct access to job struct! */ if(data->job->srcs) { GList* l = fm_path_list_peek_head_link(data->job->srcs); int i; char* disp; FmPath* path; GString* str = g_string_sized_new(512); path = FM_PATH(l->data); disp = fm_path_display_basename(path); g_string_assign(str, disp); g_free(disp); for( i =1, l=l->next; i < 10 && l; l=l->next, ++i) { path = FM_PATH(l->data); g_string_append(str, _(", ")); disp = fm_path_display_basename(path); g_string_append(str, disp); g_free(disp); } if(l) g_string_append(str, "..."); gtk_label_set_text(data->src, str->str); g_string_free(str, TRUE); } /* FIXME: use accessor functions instead */ /* FIXME: direct access to job struct! */ switch(data->job->type) { case FM_FILE_OP_MOVE: title = _("Moving files"); break; case FM_FILE_OP_COPY: title = _("Copying files"); break; case FM_FILE_OP_TRASH: title = _("Trashing files"); break; case FM_FILE_OP_DELETE: title = _("Deleting files"); break; case FM_FILE_OP_LINK: title = _("Creating symlinks"); break; case FM_FILE_OP_CHANGE_ATTR: title = _("Changing file attributes"); break; case FM_FILE_OP_UNTRASH: break; case FM_FILE_OP_NONE: ; } if(title) { gtk_window_set_title(GTK_WINDOW(data->dlg), title); gtk_label_set_text(data->act, title); } dest = fm_file_ops_job_get_dest(data->job); if(dest) { char* dest_str = fm_path_display_name(dest, TRUE); gtk_label_set_text(to, dest_str); g_free(dest_str); } else { gtk_widget_destroy(data->dest); gtk_widget_destroy(to_label); } gtk_window_set_transient_for(GTK_WINDOW(data->dlg), data->parent); gtk_window_present(GTK_WINDOW(data->dlg)); data->update_timeout = g_timeout_add(500, on_update_dlg, data); data->delay_timeout = 0; _end: GDK_THREADS_LEAVE(); return FALSE; }
static gboolean _on_show_dlg(gpointer user_data) { FmProgressDisplay* data = (FmProgressDisplay*)user_data; GtkBuilder* builder; GtkLabel* to; GtkWidget *to_label; FmPath* dest; const char* title = NULL; GtkTextTagTable* tag_table; builder = gtk_builder_new(); tag_table = gtk_text_tag_table_new(); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); gtk_builder_add_from_file(builder, PACKAGE_UI_DIR "/progress.ui", NULL); data->dlg = GTK_DIALOG(gtk_builder_get_object(builder, "dlg")); g_object_weak_ref(G_OBJECT(data->dlg), on_progress_dialog_destroy, data); g_signal_connect(data->dlg, "response", G_CALLBACK(on_response), data); /* FIXME: connect to "close" signal */ to_label = (GtkWidget*)gtk_builder_get_object(builder, "to_label"); to = GTK_LABEL(gtk_builder_get_object(builder, "dest")); data->icon = GTK_IMAGE(gtk_builder_get_object(builder, "icon")); data->msg = GTK_LABEL(gtk_builder_get_object(builder, "msg")); data->act = GTK_LABEL(gtk_builder_get_object(builder, "action")); data->src = GTK_LABEL(gtk_builder_get_object(builder, "src")); data->dest = (GtkWidget*)gtk_builder_get_object(builder, "dest"); data->current = GTK_LABEL(gtk_builder_get_object(builder, "current")); data->progress = GTK_PROGRESS_BAR(gtk_builder_get_object(builder, "progress")); data->error_pane = (GtkWidget*)gtk_builder_get_object(builder, "error_pane"); data->error_msg = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "error_msg")); data->data_transferred = GTK_LABEL(gtk_builder_get_object(builder, "data_transferred")); data->data_transferred_label = GTK_LABEL(gtk_builder_get_object(builder, "data_transferred_label")); data->remaining_time = GTK_LABEL(gtk_builder_get_object(builder, "remaining_time")); data->remaining_time_label = GTK_LABEL(gtk_builder_get_object(builder, "remaining_time_label")); data->cancel = GTK_BUTTON(gtk_builder_get_object(builder, "cancel")); data->suspend = GTK_BUTTON(gtk_dialog_add_button(data->dlg, _("_Pause"), 1)); gtk_button_set_use_stock(data->suspend, FALSE); gtk_button_set_use_underline(data->suspend, TRUE); gtk_button_set_image(data->suspend, gtk_image_new_from_stock(GTK_STOCK_MEDIA_PAUSE, GTK_ICON_SIZE_BUTTON)); gtk_dialog_set_alternative_button_order(data->dlg, 1, GTK_RESPONSE_CANCEL, -1); data->bold_tag = gtk_text_tag_new("bold"); g_object_set(data->bold_tag, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add(tag_table, data->bold_tag); data->error_buf = gtk_text_buffer_new(tag_table); g_object_unref(tag_table); gtk_text_view_set_buffer(data->error_msg, data->error_buf); gtk_widget_hide(GTK_WIDGET(data->icon)); g_object_unref(builder); /* set the src label */ /* FIXME: direct access to job struct! */ if(data->job->srcs) { GList* l = fm_path_list_peek_head_link(data->job->srcs); int i; char* disp; FmPath* path; GString* str = g_string_sized_new(512); path = FM_PATH(l->data); disp = fm_path_display_basename(path); g_string_assign(str, disp); g_free(disp); for( i =1, l=l->next; i < 10 && l; l=l->next, ++i) { path = FM_PATH(l->data); g_string_append(str, _(", ")); disp = fm_path_display_basename(path); g_string_append(str, disp); g_free(disp); } if(l) g_string_append(str, "..."); gtk_label_set_text(data->src, str->str); gtk_widget_set_tooltip_text(GTK_WIDGET(data->src), str->str); g_string_free(str, TRUE); } /* FIXME: use accessor functions instead */ /* FIXME: direct access to job struct! */ switch(data->job->type) { /* we set title here if text is complex so may be different from the op_text when is translated to other languages */ case FM_FILE_OP_MOVE: /* translators: it is part of "Moving files:" or "Moving xxx.txt" */ data->op_text = _("Moving"); break; case FM_FILE_OP_COPY: /* translators: it is part of "Copying files:" or "Copying xxx.txt" */ data->op_text = _("Copying"); break; case FM_FILE_OP_TRASH: /* translators: it is part of "Trashing files:" or "Trashing xxx.txt" */ data->op_text = _("Trashing"); break; case FM_FILE_OP_DELETE: /* translators: it is part of "Deleting files:" or "Deleting xxx.txt" */ data->op_text = _("Deleting"); break; case FM_FILE_OP_LINK: /* translators: it is part of "Creating link /path/xxx.txt" */ data->op_text = _("Creating link"); /* translators: 'In:' string is followed by destination folder path */ gtk_label_set_markup(GTK_LABEL(to_label), _("<b>In:</b>")); title = _("Creating links to files"); /* NOTE: on creating single symlink or shortcut all operation is done in single I/O therefore it should fit into 0.5s timeout and progress window will never be shown */ break; case FM_FILE_OP_CHANGE_ATTR: /* translators: it is part of "Changing attributes of xxx.txt" */ data->op_text = _("Changing attributes of"); title = _("Changing attributes of files"); /* NOTE: the same about single symlink is appliable here so there is no need to add never used string for translation */ break; case FM_FILE_OP_UNTRASH: /* translators: it is part of "Restoring files:" or "Restoring xxx.txt" */ data->op_text = _("Restoring"); break; case FM_FILE_OP_NONE: ; } data->str = g_string_sized_new(64); if (title) gtk_window_set_title(GTK_WINDOW(data->dlg), title); else { /* note to translators: resulting string is such as "Deleting files" */ g_string_printf(data->str, _("%s files"), data->op_text); gtk_window_set_title(GTK_WINDOW(data->dlg), data->str->str); } gtk_label_set_markup(data->msg, _("<b>File operation is in progress...</b>")); gtk_widget_show(GTK_WIDGET(data->msg)); if (title) /* we already know the exact string */ g_string_printf(data->str, "<b>%s:</b>", title); else if (fm_path_list_get_length(data->job->srcs) == 1) /* note to translators: resulting string is such as "Deleting file" */ g_string_printf(data->str, _("<b>%s file:</b>"), data->op_text); else /* note to translators: resulting string is such as "Deleting files" */ g_string_printf(data->str, _("<b>%s files:</b>"), data->op_text); gtk_label_set_markup(data->act, data->str->str); dest = fm_file_ops_job_get_dest(data->job); if(dest) { char* dest_str = fm_path_display_name(dest, TRUE); gtk_label_set_text(to, dest_str); gtk_widget_set_tooltip_text(GTK_WIDGET(data->dest), dest_str); g_free(dest_str); } else { gtk_widget_destroy(data->dest); gtk_widget_destroy(to_label); } gtk_window_set_transient_for(GTK_WINDOW(data->dlg), data->parent); gtk_window_present(GTK_WINDOW(data->dlg)); data->delay_timeout = 0; return FALSE; }
/* Process plain text in the font table (font names separated by semicolons) */ static void font_table_text(ParserContext *ctx) { gchar *name, *semicolon, *tagname, *fontstring = NULL; FontProperties *fontprop; FontTableState *state = (FontTableState *)get_state(ctx); GtkTextTag *tag; static gchar *font_suggestions[] = { "Sans", /* Default font for \fnil */ "Serif", /* \froman */ "Sans", /* \fswiss */ "Monospace", /* \fmodern */ "Script", /* \fscript */ NULL, /* \fdecor */ NULL, /* \ftech */ NULL /* \fbidi */ }; name = g_strdup(ctx->text->str); semicolon = strchr(name, ';'); if(!semicolon) { gchar *newname = g_strconcat(state->name, name, NULL); g_free(state->name); state->name = newname; g_string_truncate(ctx->text, 0); return; } g_string_assign(ctx->text, semicolon + 1); /* Leave the text after the semicolon in the buffer */ *semicolon = '\0'; fontprop = g_slice_new0(FontProperties); fontprop->index = state->index; fontprop->codepage = state->codepage; fontprop->font_name = g_strconcat(state->name, name, NULL); ctx->font_table = g_slist_prepend(ctx->font_table, fontprop); /* Add the tag to the buffer right now instead of when the font is used, since any font might be declared the default font; remove any previous font with this font table index first */ tagname = g_strdup_printf("osxcart-rtf-font-%i", state->index); if((tag = gtk_text_tag_table_lookup(ctx->tags, tagname))) gtk_text_tag_table_remove(ctx->tags, tag); tag = gtk_text_tag_new(tagname); if(fontprop->font_name && font_suggestions[state->family]) fontstring = g_strconcat(fontprop->font_name, ",", font_suggestions[state->family], NULL); else if(fontprop->font_name) fontstring = g_strdup(fontprop->font_name); else if(font_suggestions[state->family]) fontstring = g_strdup(font_suggestions[state->family]); if(fontstring) { g_object_set(tag, "family", fontstring, "family-set", TRUE, NULL); g_free(fontstring); } gtk_text_tag_table_add(ctx->tags, tag); g_free(tagname); g_free(state->name); state->index = 0; state->family = FONT_FAMILY_NIL; state->codepage = -1; state->name = g_strdup(""); }
void create_text_buffer() { gint i; LOG(LOG_DEBUG, "IN : create_text_buffer()"); if(text_buffer != NULL){ g_object_unref(G_OBJECT(text_buffer)); /* g_object_unref(G_OBJECT(text_buffer)); g_object_unref(tag_keyword); g_object_unref(tag_bold); g_object_unref(tag_link); g_object_unref(tag_sound); g_object_unref(tag_movie); g_object_unref(tag_italic); g_object_unref(tag_subscript); g_object_unref(tag_superscript); g_object_unref(tag_gaiji); g_object_unref(tag_plain); g_object_unref(tag_colored); g_object_unref(tag_reverse); for(i=0; i < MAX_INDENT ; i ++){ g_object_unref(tag_indent[i]); } */ } tag_table = gtk_text_tag_table_new(); text_buffer = gtk_text_buffer_new (tag_table); /* g_object_set(text_buffer, "tag-table", tag_table); */ tag_keyword = gtk_text_tag_new("keyword"); g_object_set(tag_keyword, "weight", PANGO_WEIGHT_BOLD, "foreground", color_str[COLOR_KEYWORD], "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_keyword); tag_bold = gtk_text_tag_new("bold"); g_object_set(tag_bold, "weight", PANGO_WEIGHT_BOLD, "font", fontset_bold, NULL); gtk_text_tag_table_add(tag_table, tag_bold); tag_link = gtk_text_tag_new("link"); g_object_set(tag_link, "foreground", color_str[COLOR_LINK], "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_link); tag_sound = gtk_text_tag_new("sound"); g_object_set(tag_sound, "foreground", color_str[COLOR_SOUND], "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_sound); tag_movie = gtk_text_tag_new("movie"); g_object_set(tag_movie, "foreground", color_str[COLOR_MOVIE], "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_movie); tag_italic = gtk_text_tag_new("italic"); g_object_set(tag_italic, "style", PANGO_STYLE_ITALIC, "font", fontset_italic, NULL); gtk_text_tag_table_add(tag_table, tag_italic); tag_superscript = gtk_text_tag_new("superscript"); g_object_set(tag_superscript, "rise", 5 * PANGO_SCALE, "rise", 3, "font", fontset_superscript, NULL); gtk_text_tag_table_add(tag_table, tag_superscript); tag_subscript = gtk_text_tag_new("subscript"); g_object_set(tag_subscript, // "rise", -5 * PANGO_SCALE, "rise", -3, "font", fontset_superscript, NULL); gtk_text_tag_table_add(tag_table, tag_subscript); tag_gaiji = gtk_text_tag_new("gaiji"); g_object_set(tag_gaiji, "rise", -2 * PANGO_SCALE, NULL); gtk_text_tag_table_add(tag_table, tag_gaiji); tag_center = gtk_text_tag_new("center"); g_object_set(tag_center, "justification", GTK_JUSTIFY_CENTER, "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_center); tag_plain = gtk_text_tag_new("plain"); g_object_set(tag_plain, "wrap_mode", GTK_WRAP_WORD, "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_plain); tag_colored = gtk_text_tag_new("colored"); g_object_set(tag_colored, "foreground", color_str[COLOR_EMPHASIS], NULL); gtk_text_tag_table_add(tag_table, tag_colored); tag_reverse = gtk_text_tag_new("reverse"); g_object_set(tag_reverse, "background", color_str[COLOR_REVERSE_BG], // "foreground", color_str[COLOR_EMPHASIS], // "foreground", "#ff0000", // "font", fontset_normal, NULL); gtk_text_tag_table_add(tag_table, tag_reverse); for(i=0; i < MAX_INDENT ; i ++){ gchar name[16]; sprintf(name, "tag%d", i); tag_indent[i] = gtk_text_tag_new(name); g_object_set(tag_indent[i], "left_margin", i * INDENT_LEFT_MARGIN + INITIAL_LEFT_MARGIN, NULL); gtk_text_tag_table_add(tag_table, tag_indent[i]); } /* tag_keyword = gtk_text_buffer_create_tag(text_buffer, "keyword", "weight", PANGO_WEIGHT_BOLD, "foreground", color_str[COLOR_KEYWORD], "font", fontset_normal, NULL); tag_bold = gtk_text_buffer_create_tag(text_buffer, "bold", "weight", PANGO_WEIGHT_BOLD, "font", fontset_bold, NULL); tag_link = gtk_text_buffer_create_tag(text_buffer, "link", "foreground", color_str[COLOR_LINK], "font", fontset_normal, NULL); tag_sound = gtk_text_buffer_create_tag(text_buffer, "sound", "foreground", color_str[COLOR_SOUND], "font", fontset_normal, NULL); tag_movie = gtk_text_buffer_create_tag(text_buffer, "movie", "foreground", color_str[COLOR_MOVIE], "font", fontset_normal, NULL); tag_italic = gtk_text_buffer_create_tag(text_buffer, "italic", "style", PANGO_STYLE_ITALIC, "font", fontset_italic, NULL); tag_superscript = gtk_text_buffer_create_tag(text_buffer, "superscript", // "rise", 5 * PANGO_SCALE, "rise", 3, "font", fontset_superscript, NULL); tag_subscript = gtk_text_buffer_create_tag(text_buffer, "subscript", // "rise", -5 * PANGO_SCALE, "rise", -3, "font", fontset_superscript, NULL); tag_gaiji = gtk_text_buffer_create_tag(text_buffer, "gaiji", "rise", -2 * PANGO_SCALE, NULL); tag_center = gtk_text_buffer_create_tag(text_buffer, "center", "justification", GTK_JUSTIFY_CENTER, "font", fontset_normal, NULL); tag_plain = gtk_text_buffer_create_tag(text_buffer, "plain", "wrap_mode", GTK_WRAP_WORD, "font", fontset_normal, NULL); for(i=0; i < MAX_INDENT ; i ++){ gchar name[16]; sprintf(name, "tag%d", i); tag_indent[i] = gtk_text_buffer_create_tag(text_buffer, name, "left_margin", i * INDENT_LEFT_MARGIN + INITIAL_LEFT_MARGIN, NULL); } */ LOG(LOG_DEBUG, "OUT : create_text_buffer()"); }
void internal_output_add_text(SESSION_STATE *session, GtkTextView *output, gchar * data, gsize len, TEXT_ATTR * ansi) { GtkTextBuffer *buffer; GtkTextIter start, end; gint offset; GtkTextTagTable *tagtable; g_return_if_fail(session != NULL); // gsize read, written; // GError *error = NULL; // gchar *new_data; g_return_if_fail(data != NULL); buffer = gtk_text_view_get_buffer (output); gtk_text_buffer_get_end_iter(buffer, &end); offset = gtk_text_iter_get_offset(&end); /* Conversion sometimes causes weird crashes - disabled new_data = g_convert(data, len, "UTF-8", "ISO-8859-1", &read, &written, &error); gtk_text_buffer_insert(buffer, &end, new_data, -1); g_free(new_data); */ gtk_text_buffer_insert( buffer, &end, data, len ); if (ansi == NULL) return; // nothing to do // apply some tags on inserted text gtk_text_buffer_get_iter_at_offset(buffer, &start, offset); gtk_text_buffer_get_end_iter(buffer, &end); tagtable = gtk_text_buffer_get_tag_table(buffer); if (ansi->boldfont) { gtk_text_buffer_apply_tag_by_name(buffer, "bold", &start, &end); } if (ansi->italic) { gtk_text_buffer_apply_tag_by_name(buffer, "italic", &start, &end); } if (ansi->underline) { gtk_text_buffer_apply_tag_by_name(buffer, "underline", &start, &end); } if (session->linkCmd) { // create the link-tag char *name = 0; static char tmpln[] = "AAAAAAAAAA-tmplink"; if (session->linkName) name = g_strdup(session->linkName); else { int i = 0; name = strdup(tmpln); while (i < 10) { // generate name for next unnamed link tmpln[i]++; if (tmpln[i] > 'Z') { tmpln[i] = 'A'; i++; } else break; } } GtkTextTag *t = gtk_text_tag_new(name); g_object_set_data(G_OBJECT(t), "linkname", g_strdup(session->linkName)); g_object_set_data(G_OBJECT(t), "action", g_strdup(session->linkCmd)); g_object_set_data(G_OBJECT(t), "type", session->isSendLink ? "command" : "url"); g_object_set_data(G_OBJECT(t), "menu", session->isMenuLink ? "yes" : "no"); GtkTextTagTable *table = gtk_text_buffer_get_tag_table(buffer); gtk_text_tag_table_add(table, t); gtk_text_buffer_apply_tag(buffer, t, &start, &end); g_signal_connect(G_OBJECT(t), "event", G_CALLBACK(on_tag_click), session); g_free(name); } GtkTextTag *tag = get_fg_color_tag(buffer, ansi->fgcolor); if (tag) gtk_text_buffer_apply_tag(buffer, tag, &start, &end); if (ansi->bgcolor != 0) { GtkTextTag *tag = get_bg_color_tag(buffer, ansi->bgcolor); gtk_text_buffer_apply_tag(buffer, tag, &start, &end); } }
GtkTextTagTable *ctk_help_create_tag_table(void) { GtkTextTagTable *table; GtkTextTag *tag; table = gtk_text_tag_table_new(); /* CTK_HELP_TITLE_TAG */ tag = gtk_text_tag_new(CTK_HELP_TITLE_TAG); g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_BOLD, "size", 15 * PANGO_SCALE, NULL); gtk_text_tag_table_add(table, tag); /* CTK_HELP_HEADING_TAG */ tag = gtk_text_tag_new(CTK_HELP_HEADING_TAG); g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_BOLD, "size", 12 * PANGO_SCALE, NULL); gtk_text_tag_table_add(table, tag); /* CTK_HELP_HEADING_NOT_EDITABLE */ tag = gtk_text_tag_new(CTK_HELP_HEADING_NOT_EDITABLE_TAG); g_object_set(G_OBJECT(tag), "editable", FALSE, NULL); gtk_text_tag_table_add(table, tag); /* CTK_HELP_WORD_WRAP_TAG */ tag = gtk_text_tag_new(CTK_HELP_WORD_WRAP_TAG); g_object_set(G_OBJECT(tag), "wrap_mode", GTK_WRAP_WORD, NULL); gtk_text_tag_table_add(table, tag); /* CTK_HELP_MARGIN_TAG */ tag = gtk_text_tag_new(CTK_HELP_MARGIN_TAG); g_object_set(G_OBJECT(tag), "left_margin", 10, "right_margin", 10, NULL); gtk_text_tag_table_add(table, tag); /* CTK_HELP_SINGLE_SPACE_TAG */ tag = gtk_text_tag_new(CTK_HELP_SINGLE_SPACE_TAG); g_object_set(G_OBJECT(tag), "pixels_inside_wrap", 0, NULL); gtk_text_tag_table_add(table, tag); /* CTK_HELP_BOLD_TAG */ tag = gtk_text_tag_new(CTK_HELP_BOLD_TAG); g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add(table, tag); return table; }
static void entry_info_fetched_done (EntryProperties *eprop, GdaLdapEntry *entry) { GtkTextBuffer *tbuffer; GtkTextIter start, end; TConnection *tcnc = eprop->priv->tcnc; tbuffer = eprop->priv->text; gtk_text_buffer_get_start_iter (tbuffer, &start); gtk_text_buffer_get_end_iter (tbuffer, &end); gtk_text_buffer_delete (tbuffer, &start, &end); guint i; GtkTextIter current; gtk_text_buffer_get_start_iter (tbuffer, ¤t); /* DN */ gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, _("Distinguished Name:"), -1, "section", NULL); gtk_text_buffer_insert (tbuffer, ¤t, "\n", -1); gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, " ", -1, "starter", NULL); gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, entry->dn, -1, "data", NULL); gtk_text_buffer_insert (tbuffer, ¤t, "\n", -1); /* other attributes */ const gchar *basedn; GdaDataHandler *ts_dh = NULL; basedn = t_connection_ldap_get_base_dn (tcnc); for (i = 0; i < entry->nb_attributes; i++) { GdaLdapAttribute *attr; gchar *tmp; attr = entry->attributes [i]; tmp = g_strdup_printf ("%s:", attr->attr_name); gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, tmp, -1, "section", NULL); g_free (tmp); gtk_text_buffer_insert (tbuffer, ¤t, "\n", -1); guint j; for (j = 0; j < attr->nb_values; j++) { const GValue *cvalue; cvalue = attr->values [j]; gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, " ", -1, "starter", NULL); if (G_VALUE_TYPE (cvalue) == GDA_TYPE_BINARY) { GValue *copyvalue; GtkTextTagTable *table; GtkTextTag *tag; GtkTextMark *mark; copyvalue = gda_value_copy (cvalue); table = gtk_text_buffer_get_tag_table (tbuffer); tag = gtk_text_tag_new (NULL); gtk_text_tag_table_add (table, tag); g_object_set_data_full ((GObject*) tag, "binvalue", copyvalue, (GDestroyNotify) gda_value_free); g_object_unref ((GObject*) tag); mark = gtk_text_buffer_create_mark (tbuffer, NULL, ¤t, TRUE); GdkPixbuf *pixbuf; pixbuf = data_to_pixbuf (cvalue); if (pixbuf) { gtk_text_buffer_insert_pixbuf (tbuffer, ¤t, pixbuf); g_object_unref (pixbuf); } else { GdaDataHandler *dh; dh = gda_data_handler_get_default (G_VALUE_TYPE (cvalue)); if (dh) tmp = gda_data_handler_get_str_from_value (dh, cvalue); else tmp = gda_value_stringify (cvalue); gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, tmp, -1, "data", NULL); g_free (tmp); } GtkTextIter before; gtk_text_buffer_get_iter_at_mark (tbuffer, &before, mark); gtk_text_buffer_apply_tag (tbuffer, tag, &before, ¤t); gtk_text_buffer_delete_mark (tbuffer, mark); gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, "\n", 1, "data", NULL); } else { GdaDataHandler *dh; dh = gda_data_handler_get_default (G_VALUE_TYPE (cvalue)); if (dh) tmp = gda_data_handler_get_str_from_value (dh, cvalue); else tmp = gda_value_stringify (cvalue); if (tmp) { if (*tmp && ((basedn && g_str_has_suffix (tmp, basedn)) || !basedn) && gda_ldap_is_dn (tmp)) { /* we have a DN */ GtkTextTag *tag; tag = gtk_text_buffer_create_tag (tbuffer, NULL, "foreground", "blue", "weight", PANGO_WEIGHT_NORMAL, "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data_full (G_OBJECT (tag), "dn", g_strdup (tmp), g_free); gtk_text_buffer_insert_with_tags (tbuffer, ¤t, tmp, -1, tag, NULL); } else if (attr->attr_name && !g_ascii_strcasecmp (attr->attr_name, "objectClass")) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (tbuffer, NULL, "foreground", "blue", "weight", PANGO_WEIGHT_NORMAL, "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data_full (G_OBJECT (tag), "class", g_strdup (tmp), g_free); gtk_text_buffer_insert_with_tags (tbuffer, ¤t, tmp, -1, tag, NULL); } else gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, tmp, -1, "data", NULL); gchar *extrainfo = NULL; if (!strncmp (attr->attr_name, "shadow", 6) && (!strcmp (attr->attr_name, "shadowLastChange") || !strcmp (attr->attr_name, "shadowMax") || !strcmp (attr->attr_name, "shadowMin") || !strcmp (attr->attr_name, "shadowInactive") || !strcmp (attr->attr_name, "shadowExpire"))) extrainfo = unix_shadow_to_string (tmp, attr->attr_name); else if (!strcmp (attr->attr_name, "badPasswordTime") || !strcmp (attr->attr_name, "lastLogon") || !strcmp (attr->attr_name, "pwdLastSet") || !strcmp (attr->attr_name, "accountExpires") || !strcmp (attr->attr_name, "lockoutTime") || !strcmp (attr->attr_name, "lastLogonTimestamp")) extrainfo = ad_1601_timestamp_to_string (tmp, attr->attr_name); else if (!strcmp (attr->attr_name, "userAccountControl")) extrainfo = ad_1601_uac_to_string (tmp); else if (!strcmp (attr->attr_name, "sAMAccountType")) extrainfo = ad_sam_account_type_to_string (tmp); if (extrainfo) { gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, " ", 1, "data", NULL); gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, extrainfo, -1, "convdata", NULL); g_free (extrainfo); } g_free (tmp); } else { gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, _("Can't display attribute value"), -1, "error", NULL); } gtk_text_buffer_insert_with_tags_by_name (tbuffer, ¤t, "\n", 1, "data", NULL); } } } if (ts_dh) g_object_unref (ts_dh); gda_ldap_entry_free (entry); if (eprop->priv->text_search && gtk_widget_get_visible (eprop->priv->text_search)) text_search_rerun (TEXT_SEARCH (eprop->priv->text_search)); }
static GcrDisplayItem* create_display_item (GcrDisplayView *self, GcrRenderer *renderer) { GcrDisplayItem *item; GtkTextTagTable *tags; GtkTextIter iter; GtkWidget *widget; GtkWidget *label; GtkWidget *alignment; item = g_new0 (GcrDisplayItem, 1); item->display_view = self; item->renderer = renderer; tags = gtk_text_buffer_get_tag_table (self->pv->buffer); g_assert (!item->field_tag); item->field_width = 0; item->field_tag = g_object_new (GTK_TYPE_TEXT_TAG, "left-margin", item->field_width + FIELD_MARGIN, "indent", item->field_width, "pixels-below-lines", 3, "wrap-mode", GTK_WRAP_WORD_CHAR, NULL); gtk_text_tag_table_add (tags, item->field_tag); g_assert (!item->details_tag); item->details_tag = g_object_new (GTK_TYPE_TEXT_TAG, NULL); gtk_text_tag_table_add (tags, item->details_tag); /* The mark that determines the beginning of this item, with left gravity. */ gtk_text_buffer_get_end_iter (self->pv->buffer, &iter); item->beginning = gtk_text_buffer_create_mark (self->pv->buffer, NULL, &iter, TRUE); g_object_ref (item->beginning); /* The mark that determines the end of this item, with right gravity. */ gtk_text_buffer_get_end_iter (self->pv->buffer, &iter); item->ending = gtk_text_buffer_create_mark (self->pv->buffer, NULL, &iter, FALSE); g_object_ref (item->ending); widget = gtk_expander_new_with_mnemonic (""); label = gtk_expander_get_label_widget (GTK_EXPANDER (widget)); gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), "<b>_Details</b>"); g_signal_connect (widget, "notify::expanded", G_CALLBACK (on_expander_expanded), item); g_signal_connect (widget, "realize", G_CALLBACK (on_expander_realize), NULL); item->expanded = gtk_expander_get_expanded (GTK_EXPANDER (widget)); alignment = gtk_alignment_new (0.5, 0.5, 0.5, 0.5); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 9, 0, 0); gtk_container_add (GTK_CONTAINER (alignment), widget); gtk_widget_show_all (alignment); item->details_widget = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (item->details_widget), alignment); g_signal_connect (item->details_widget, "realize", G_CALLBACK (on_expander_realize), NULL); g_object_ref (item->details_widget); if (gtk_widget_get_realized (GTK_WIDGET (self))) style_display_item (GTK_WIDGET (self), item); /* TODO: Initialize the rest of the fields */ return item; }
static void gtk_text_buffer_insert_markup(GtkTextBuffer * buffer, GtkTextIter * iter, const gchar * markup) { PangoAttrIterator *paiter; PangoAttrList *attrlist; GtkTextMark *mark; GError *error = NULL; gchar *text; g_return_if_fail(GTK_IS_TEXT_BUFFER(buffer)); g_return_if_fail(markup != NULL); if (*markup == '\000') return; /* invalid */ if (!pango_parse_markup(markup, -1, 0, &attrlist, &text, NULL, &error)) { g_warning("Invalid markup string: %s", error->message); g_error_free(error); return; } /* trivial, no markup */ if (attrlist == NULL) { gtk_text_buffer_insert(buffer, iter, text, -1); g_free(text); return; } /* create mark with right gravity */ mark = gtk_text_buffer_create_mark(buffer, NULL, iter, FALSE); paiter = pango_attr_list_get_iterator(attrlist); do { PangoAttribute *attr; GtkTextTag *tag; GtkTextTag *tag_para; gint start, end; pango_attr_iterator_range(paiter, &start, &end); if (end == G_MAXINT) /* last chunk */ end = start - 1; /* resulting in -1 to be passed to _insert */ tag = gtk_text_tag_new(NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_LANGUAGE))) g_object_set(tag, "language", pango_language_to_string(((PangoAttrLanguage *) attr)->value), NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_FAMILY))) g_object_set(tag, "family", ((PangoAttrString *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_STYLE))) g_object_set(tag, "style", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_WEIGHT))) g_object_set(tag, "weight", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_VARIANT))) g_object_set(tag, "variant", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_STRETCH))) g_object_set(tag, "stretch", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_SIZE))) g_object_set(tag, "size", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_FONT_DESC))) g_object_set(tag, "font-desc", ((PangoAttrFontDesc *) attr)->desc, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_FOREGROUND))) { GdkColor col = { 0, ((PangoAttrColor *) attr)->color.red, ((PangoAttrColor *) attr)->color.green, ((PangoAttrColor *) attr)->color.blue }; g_object_set(tag, "foreground-gdk", &col, NULL); } if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_BACKGROUND))) { GdkColor col = { 0, ((PangoAttrColor *) attr)->color.red, ((PangoAttrColor *) attr)->color.green, ((PangoAttrColor *) attr)->color.blue }; g_object_set(tag, "background-gdk", &col, NULL); } if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_UNDERLINE))) g_object_set(tag, "underline", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_STRIKETHROUGH))) g_object_set(tag, "strikethrough", (gboolean) (((PangoAttrInt *) attr)->value != 0), NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_RISE))) g_object_set(tag, "rise", ((PangoAttrInt *) attr)->value, NULL); if ((attr = pango_attr_iterator_get(paiter, PANGO_ATTR_SCALE))) g_object_set(tag, "scale", ((PangoAttrFloat *) attr)->value, NULL); gtk_text_tag_table_add(gtk_text_buffer_get_tag_table(buffer), tag); tag_para = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table (buffer), "para"); gtk_text_buffer_insert_with_tags(buffer, iter, text + start, end - start, tag, tag_para, NULL); /* mark had right gravity, so it should be * at the end of the inserted text now */ gtk_text_buffer_get_iter_at_mark(buffer, iter, mark); } while (pango_attr_iterator_next(paiter)); gtk_text_buffer_delete_mark(buffer, mark); pango_attr_iterator_destroy(paiter); pango_attr_list_unref(attrlist); g_free(text); }
static void bug_information_generate_message(GtkTextBuffer * buffer) { int i; gchar *temp; GtkTextIter iter; GtkTextTag *bold_tag, *larger_tag; GtkTextTagTable *table; /* get buffer's tag table */ table = gtk_text_buffer_get_tag_table(buffer); /* Create bold tag */ bold_tag = gtk_text_tag_new("bold"); g_object_set(G_OBJECT(bold_tag), "weight", PANGO_WEIGHT_BOLD, NULL); /* add bold_tag to tag table */ gtk_text_tag_table_add(table, bold_tag); /* Create bold tag */ larger_tag = gtk_text_tag_new("larger"); g_object_set(G_OBJECT(larger_tag), "scale", PANGO_SCALE_X_LARGE, NULL); /* add larger_tag to tag table */ gtk_text_tag_table_add(table, larger_tag); /* Get the start */ gtk_text_buffer_get_start_iter(buffer, &iter); /* insert program name */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Gnome Music Player Client\n", -1, bold_tag, larger_tag, NULL); /* insert copyright */ gtk_text_buffer_insert_with_tags(buffer, &iter, GMPC_COPYRIGHT "\n\n", -1, bold_tag, NULL); /* insert tagline */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Tagline:\t", -1, bold_tag, NULL); gtk_text_buffer_insert(buffer, &iter, GMPC_TAGLINE "\n", -1); /* insert version */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Version:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", GMPC_MAJOR_VERSION, GMPC_MINOR_VERSION, GMPC_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* insert revision */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Revision:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%s\n", revision); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /** support libs */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nSupport libraries:\n", -1, bold_tag, larger_tag, NULL); /* libmpd */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Libmpd:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", LIBMPD_MAJOR_VERSION, LIBMPD_MINOR_VERSION, LIBMPD_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* gtk+-2.0 */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Compile time Gtk+-2.0:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); gtk_text_buffer_insert_with_tags(buffer, &iter, "Runtime Gtk+-2.0:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", gtk_major_version, gtk_minor_version, gtk_micro_version); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* glib-2.0 */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Glib-2.0:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* glib-2.0 */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Runtime sqlite3:\t", -1, bold_tag, NULL); gtk_text_buffer_insert(buffer, &iter, sqlite3_libversion(), -1); gtk_text_buffer_insert_with_tags(buffer, &iter, "\nCompile time sqlite3:\t", -1, bold_tag, NULL); gtk_text_buffer_insert(buffer, &iter, SQLITE_VERSION, -1); #ifdef HAVE_UNIQUE gtk_text_buffer_insert_with_tags(buffer, &iter, "\nLibunique:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%s\n", UNIQUE_VERSION_S); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); #endif /* platform */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nPlatform:\t", -1, bold_tag, NULL); #ifdef WIN32 gtk_text_buffer_insert(buffer, &iter, "Windows\n", -1); gtk_text_buffer_insert_with_tags(buffer, &iter, "Windows version:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i\n", g_win32_get_windows_version()); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); #else #ifdef OSX gtk_text_buffer_insert(buffer, &iter, "Mac OsX\n", -1); #else gtk_text_buffer_insert(buffer, &iter, "*nix\n", -1); #endif #endif /** compile flags*/ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nCompile flags:\n", -1, bold_tag, larger_tag, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, "\nNLS Support:\t", -1, bold_tag, NULL); #ifdef ENABLE_NLS gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nMultimedia Keys:\t", -1, bold_tag, NULL); #ifdef ENABLE_MMKEYS gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nAppIndicator Support:\t", -1, bold_tag, NULL); #ifdef HAVE_APP_INDICATOR gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nLibspiff support:\t", -1, bold_tag, NULL); #ifdef SPIFF gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nLibunique support:\t", -1, bold_tag, NULL); #ifdef HAVE_UNIQUE gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif /** Plugins */ if (num_plugins > 0) { gtk_text_buffer_insert_with_tags(buffer, &iter, "\n\nExternal Plugins:\n", -1, bold_tag, larger_tag, NULL); for (i = 0; i < num_plugins; i++) { if (!gmpc_plugin_is_internal(plugins[i])) { const gchar *name = gmpc_plugin_get_name(plugins[i]); const int *version = gmpc_plugin_get_version(plugins[i]); if(gmpc_plugin_get_enabled(plugins[i])) { gtk_text_buffer_insert(buffer, &iter, "☑ ", -1); }else { gtk_text_buffer_insert(buffer, &iter, "☐ ", -1); } gtk_text_buffer_insert_with_tags(buffer, &iter, name, -1, bold_tag, NULL); temp = g_strdup_printf("\t%i.%i.%i\n", version[0], version[1], version[2]); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); } } } if (num_plugins > 0) { gtk_text_buffer_insert_with_tags(buffer, &iter, "\n\nMetadata Plugins:\n", -1, bold_tag, larger_tag, NULL); for (i = 0; i < num_plugins; i++) { if (gmpc_plugin_is_metadata(plugins[i])) { const gchar *name = gmpc_plugin_get_name(plugins[i]); const int *version = gmpc_plugin_get_version(plugins[i]); if(gmpc_plugin_get_enabled(plugins[i])) { gtk_text_buffer_insert(buffer, &iter, "☑ ", -1); }else { gtk_text_buffer_insert(buffer, &iter, "☐ ", -1); } gtk_text_buffer_insert_with_tags(buffer, &iter, name, -1, bold_tag, NULL); temp = g_strdup_printf("\t%i.%i.%i\n", version[0], version[1], version[2]); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); } } } if (mpd_check_connected(connection)) { gchar **handlers; /** Plugins */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nMusic Player Daemon:\n", -1, bold_tag, larger_tag, NULL); /* Version */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Version:\t", -1, bold_tag, NULL); temp = mpd_server_get_version(connection); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* total songs */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nSongs:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i", mpd_stats_get_total_songs(connection)); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* hostname */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nHostname:\t", -1, bold_tag, NULL); temp = connection_get_hostname(); gtk_text_buffer_insert(buffer, &iter, temp, -1); /* handlers */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nUrl handlers:\t", -1, bold_tag, NULL); handlers = mpd_server_get_url_handlers(connection); if (handlers) { temp = g_strjoinv(",", handlers); g_strfreev(handlers); handlers = NULL; } else temp = g_strdup("N/A"); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); } }
GtkTextBuffer * cainteoir_document_create_buffer(CainteoirDocument *doc) { GtkTextTagTable *tags = gtk_text_tag_table_new(); GtkTextBuffer *buffer = gtk_text_buffer_new(tags); GtkTextIter position; gtk_text_buffer_get_end_iter(buffer, &position); std::list<std::string> anchor; std::stack<tag_block> contexts; bool need_linebreak = false; for (auto &entry : CAINTEOIR_DOCUMENT_PRIVATE(doc)->doc->children()) { if (entry.type & events::begin_context) { GtkTextTag *tag = nullptr; if (entry.styles) { tag = gtk_text_tag_table_lookup(tags, entry.styles->name.c_str()); if (!tag) { tag = create_text_tag_from_style(*entry.styles); gtk_text_tag_table_add(tags, tag); } } if (need_linebreak && entry.styles) switch (entry.styles->display) { case cainteoir::css::display::block: case cainteoir::css::display::line_break: case cainteoir::css::display::list_item: case cainteoir::css::display::table: case cainteoir::css::display::table_row: case cainteoir::css::display::table_cell: gtk_text_buffer_insert(buffer, &position, "\n", 1); gtk_text_buffer_get_end_iter(buffer, &position); need_linebreak = false; break; } contexts.push({ tag, gtk_text_iter_get_offset(&position) }); } if (entry.type & cainteoir::events::anchor) anchor.push_back(entry.anchor.str()); if (entry.type & cainteoir::events::text) { for (auto &a : anchor) (void)gtk_text_buffer_create_mark(buffer, a.c_str(), &position, TRUE); anchor.clear(); const gchar *start = entry.content->begin(); const gchar *end = entry.content->end(); while (start < end) { const gchar *next = start; bool valid = g_utf8_validate(start, end - start, &next); if (start != next) gtk_text_buffer_insert(buffer, &position, start, next - start); if (!valid) { char text[20]; int n = snprintf(text, 20, "<%02X>", (uint8_t)*next++); gtk_text_buffer_insert(buffer, &position, text, n); } start = next; } gtk_text_buffer_get_end_iter(buffer, &position); need_linebreak = true; } if (entry.type & events::end_context) { if (!contexts.empty()) { GtkTextTag *tag = contexts.top().tag; if (tag) { GtkTextIter start; gtk_text_buffer_get_iter_at_offset(buffer, &start, contexts.top().offset); gtk_text_buffer_apply_tag(buffer, tag, &start, &position); } contexts.pop(); } } } return buffer; }