+ for (iPlugin = 0; iPlugin < nPlugins; iPlugin++) {
+ parse_result.clear();
+ if (pMStarDict->oStarDictPlugins->ParseDataPlugins.parse(iPlugin, p, &parsed_size, parse_result, oword)) {
+ p += parsed_size;
+ break;
+ }
+ }
+ if (iPlugin != nPlugins) {
+ for (std::list<ParseResultItem>::iterator it = parse_result.item_list.begin(); it != parse_result.item_list.end(); ++it) {
+ switch (it->type) {
+ case ParseResultItemType_mark:
+ g_debug("ParseResultItemType_mark");
+ mark += it->mark->pango;
+ break;
+ case ParseResultItemType_link:
+// g_debug("ParseResultItemType_link: %s", it->mark->pango.c_str());
+ mark += it->mark->pango;
+ break;
+ case ParseResultItemType_res:
+ {
+ g_debug("ParseResultItemType_res");
+ bool loaded = false;
+ if (it->res->type == "image") {
+ } else if (it->res->type == "sound") {
+ } else if (it->res->type == "video") {
+ } else {
+ }
+ if (!loaded) {
+ mark += "<span foreground=\"red\">";
+ gchar *m_str = g_markup_escape_text(it->res->key.c_str(), -1);
+ mark += m_str;
+ g_free(m_str);
+ mark += "</span>";
+ }
+ break;
+ }
+ case ParseResultItemType_widget:
+ g_debug("ParseResultItemType_widget");
+ break;
+ default:
+ g_debug("ParseResultItemType_default");
+ break;
+ }
+ }
+ parse_result.clear();
+ continue;
+ }
+