static GObject* gcr_certificate_details_widget_constructor (GType type, guint n_props, GObjectConstructParam *props) { GObject *obj = G_OBJECT_CLASS (gcr_certificate_details_widget_parent_class)->constructor (type, n_props, props); GcrCertificateDetailsWidget *self = NULL; GtkTextTagTable *tags; GtkWidget *widget; GtkWidget *scroll; g_return_val_if_fail (obj, NULL); self = GCR_CERTIFICATE_DETAILS_WIDGET (obj); tags = create_tag_table (self); self->pv->buffer = gtk_text_buffer_new (tags); g_object_unref (tags); widget = gtk_text_view_new_with_buffer (self->pv->buffer); self->pv->view = GTK_TEXT_VIEW (widget); gtk_text_view_set_editable (self->pv->view, FALSE); scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (scroll), widget); gtk_container_add (GTK_CONTAINER (self), scroll); gtk_widget_show_all (scroll); return obj; }
static GObject* _gcr_display_view_constructor (GType type, guint n_props, GObjectConstructParam *props) { GObject *obj = G_OBJECT_CLASS (_gcr_display_view_parent_class)->constructor (type, n_props, props); GcrDisplayView *self = NULL; GtkTextView *view = NULL; GtkTextTagTable *tags; g_return_val_if_fail (obj, NULL); self = GCR_DISPLAY_VIEW (obj); view = GTK_TEXT_VIEW (obj); tags = create_tag_table (self); self->pv->buffer = gtk_text_buffer_new (tags); g_object_unref (tags); gtk_text_view_set_buffer (view, self->pv->buffer); gtk_text_view_set_editable (view, FALSE); gtk_text_view_set_left_margin (view, NORMAL_MARGIN); gtk_text_view_set_right_margin (view, NORMAL_MARGIN); gtk_text_view_set_cursor_visible (view, FALSE); return obj; }
void create_indirect_tag_table() { FILE *id = 0; int initial; for (unsigned i = 1; i <= IndirectEntries; i++) { id = openinfo(indirect[i].filename, 1); initial = TagTableEntries + 1; if (!id) { /* display error message to make the user aware of * the broken info page */ char msg[1024]; snprintf(msg, 1024, "%s '%s' (%s)", _("Can't open file"), indirect[i].filename, _("press a key to continue") ); attrset(bottomline); mvhline(maxy - 1, 0, ' ', maxx); mvaddstr(maxy - 1, 0, msg); move(0, 0); attrset(normal); getch(); continue; } create_tag_table(id); FirstNodeOffset = tag_table[1].offset; strcpy(FirstNodeName, tag_table[1].nodename); fclose(id); for (unsigned j = initial; j <= TagTableEntries; j++) { tag_table[j].offset +=(indirect[i].offset - FirstNodeOffset); } } FirstNodeOffset = tag_table[1].offset; strcpy(FirstNodeName, tag_table[1].nodename); qsort(&tag_table[1], TagTableEntries, sizeof(TagTable), qsort_cmp); }