70
70
const gchar *new_url,
71
71
gpointer user_data);
74
count_words (PangoLanguage *language,
79
PangoLogAttr *log_attrs;
83
g_return_val_if_fail (text, 0);
85
len_bytes = strlen (text);
87
n_chars = g_utf8_strlen (text, len_bytes);
89
log_attrs = g_new0 (PangoLogAttr, n_chars+1);
91
pango_get_log_attrs (text,
100
for (i=0;i<n_chars;i++) {
101
if (log_attrs[i].is_word_start) {
111
typedef struct CongDocumentStatistics CongDocumentStatistics;
112
struct CongDocumentStatistics
120
refresh_statistics_node_cb (CongDocument *doc,
123
guint recursion_level)
125
CongDocumentStatistics *stats = (CongDocumentStatistics*)data;
126
PangoLanguage* language;
130
switch (cong_node_type (node)) {
133
case CONG_NODE_TYPE_TEXT:
134
language = cong_document_get_language_for_node (doc, node);
135
stats->num_words += count_words (language, (const gchar*)node->content);
137
case CONG_NODE_TYPE_ELEMENT:
138
stats->num_elements++;
146
refresh_statistics (CongFilePropertiesDialogDetails *dialog_details,
149
struct CongDocumentStatistics stats;
153
stats.num_elements = 0;
156
cong_document_for_each_node (doc, refresh_statistics_node_cb, &stats);
158
text = g_strdup_printf ("%i", stats.num_words);
159
gtk_label_set_text ( GTK_LABEL (glade_xml_get_widget (dialog_details->xml,"label_words")),
163
text = g_strdup_printf ("%i", stats.num_elements);
164
gtk_label_set_text ( GTK_LABEL (glade_xml_get_widget (dialog_details->xml,"label_elements")),
75
170
refresh_filename_and_location (CongFilePropertiesDialogDetails *dialog_details,
165
260
_("_Remove this DTD"));
167
262
set_dtd_info (dialog_details->xml,
168
xml_doc->extSubset->ExternalID,
169
xml_doc->extSubset->SystemID);
263
(const gchar*)xml_doc->extSubset->ExternalID,
264
(const gchar*)xml_doc->extSubset->SystemID);
171
266
gtk_label_set_text ( label_dtd_notes,
249
344
dialog = glade_xml_get_widget(dialog_details->xml, "common_dialog");
347
refresh_statistics (dialog_details, doc);
251
349
/* Filename & Location: */
252
350
refresh_filename_and_location (dialog_details, doc);
280
378
/* XML Header: */
282
380
gtk_label_set_text ( GTK_LABEL (glade_xml_get_widget (dialog_details->xml,"label_xml_version")),
381
(const gchar*)xml_doc->version);
286
const gchar *encoding_text = xml_doc->encoding;
384
const gchar *encoding_text = (const gchar*)xml_doc->encoding;
287
385
if (NULL==encoding_text) {
288
386
encoding_text = _("Unspecified");
380
478
_("Associate with DTD"),
382
480
cong_command_add_set_external_dtd (cmd,
383
cong_document_get_root_element (doc)->name,
481
(const gchar*)cong_document_get_root_element (doc)->name,
384
482
cong_external_document_model_get_public_id (model_dtd),
385
483
cong_external_document_model_get_system_id (model_dtd));
386
484
cong_document_end_command (doc,