void bg_search(string txt) { srchCallback callback = bg_qryFgTask; search(callback, txt); }
void search(srchCallback callback, string txt) { //= m_preTxt; var kanjis = mixSearch(txt); List <myWord> words = new List <myWord>(); List <myWord> verbs = new List <myWord>(); //Span s = new Span(); foreach (var kanji in kanjis) { //display kanji with link callback(myFgTask.qryType.hyperlink, kanji.val); if (kanji.decomposite != "") { callback(myFgTask.qryType.run, kanji.decomposite); callback(myFgTask.qryType.linebreak, null); } //display japanese define callback(myFgTask.qryType.define, kanji.definitions[0]); kanji.definitions.RemoveAt(0); //find kanji define - formated txt var foundKanji = kanji.relatedWords.Find((w) => { return(w.term == kanji.val.ToString()); }); if (foundKanji != null) { //display kanji define (in formated txt) callback(myFgTask.qryType.define, (foundKanji.definitions[0])); } else { //display radical info var rdInfo = mDict.Search(kanji.radical.zRadical.ToString()); string zRad = string.Format("Bộ {0} {1} {2} [{3}, {4}] {5}", kanji.radical.iRadical, kanji.radical.zRadical, kanji.radical.hn, kanji.radical.nStrokes, kanji.totalStrokes, kanji.val); { if (kanji.hn != null) { zRad += string.Format(" ({0})", kanji.hn); } if (kanji.simple != '\0') { zRad += string.Format(" simple {0}", kanji.simple); } } callback(myFgTask.qryType.run, zRad); //display other kanji define foreach (var def in kanji.definitions) { callback(myFgTask.qryType.define, (def)); break; } callback(myFgTask.qryType.linebreak, null); } words.AddRange(kanji.relatedWords); verbs.AddRange(kanji.relateVerbs); callback(myFgTask.qryType.linebreak, null); } callback(myFgTask.qryType.linebreak, null); //remove duplicated var found = removeDuplicate(kanjis, txt, words); //var sFound = new Span(); if (found != null) { callback(myFgTask.qryType.word, found); callback(myFgTask.qryType.linebreak, null); } //related word //if (found != null) bg_qryDisplay(sFound); //bg_qryDisplay(new Run { Text = "related word:" }); //bg_qryDisplay(new LineBreak()); int count = 0; foreach (var rWd in words) { #if !show_brift //m_limitContentCnt // (-1) no limit if ((count++) == m_limitContentCnt) { break; } #else { bg_qryDisplay(crtWdBlck(rWd, true)); }
void fg_search(string txt) { srchCallback callback = fg_processQry; search(callback, txt); }