private void ShowTrans(PanelEx rpanel) { if (qv.SelectedIndex != -1) { TextBoxEx txtpnl = (TextBoxEx)rpanel.Controls[0]; tafseerStruct r = GettafseerFromTitle(rpanel.SelectedText); txtpnl.RightToLeft = (r.dir == "rtl") ? RightToLeft.Yes : RightToLeft.No; if (wc.Contains(r.id)) /* retreive from the web */ { txtpnl.ShowLoading(); lblstatus.Text = "Retrieving Content From Web..."; string rpath = (r.location + qv.SelectedAya.ID + ".html"); BackgroundWorker bwText = new BackgroundWorker(); bwText.DoWork += new DoWorkEventHandler(bwText_DoWork); bwText.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwText_RunWorkerCompleted); bwText.RunWorkerAsync(new BackgroundWorkerTextArgument( rpanel, rpath)); } else /* reteieve local translations */ { XmlDocument rxml; rxml = (rpanel.Name == "pnla") ? xmlpnla : xmlpnlb; XmlNode x = rxml.SelectSingleNode("//AYA[@id='" + qv.SelectedAya.ID + "']"); if (x != null) { txtpnl.Text = x.InnerText; } } } }
private tafseerStruct GettafseerFromTitle(string p) { tafseerStruct r = (tafseerStruct)mextension.Items[0].Tag; for (int i = 0; i < mextension.Items.Count; i++) { r = (tafseerStruct)mextension.Items[i].Tag; if (r.title == p) { break; } } return(r); }
private void rItem_Click(object sender, EventArgs e) { ToolStripMenuItem rsender = (ToolStripMenuItem)sender; tafseerStruct rstruct = (tafseerStruct)rsender.Tag; downPanel.SelectedText = rstruct.title; XmlDocument rxml; rxml = (downPanel.Name == "pnla") ? xmlpnla : xmlpnlb; if (!wc.Contains(rstruct.id)) { rxml.Load(rstruct.location); } ShowTrans(downPanel); }
private void bwText_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { BackgroundWorkerTextArgument rArgument = ((BackgroundWorkerTextArgument)e.Result); PanelEx rpanel = rArgument.Panel; TextBoxEx txtpnl = (TextBoxEx)rpanel.Controls[0]; tafseerStruct r = GettafseerFromTitle(rpanel.SelectedText); if (rArgument.Text == "-1") { lblstatus.Text = DOWNLOAD_TRANSLATION_ERROR; txtpnl.HideLoading(); txtpnl.Text = ""; return; } txtpnl.RightToLeft = (r.dir == "rtl") ? RightToLeft.Yes : RightToLeft.No; string rText = ((BackgroundWorkerTextArgument)e.Result).Text; txtpnl.Text = RemoveDiacritics(RemoveHtml(rText, r.id)); lblstatus.Text = "Ready"; txtpnl.HideLoading(); }
private void LoadIdentity(IdentityEnum Identity) { switch (Identity) { case IdentityEnum.Quran: if (!isIdentityLoaded[0]) { XmlTextReader xmlReader; /* Read the list of all the available fonts */ FontFamily[] ff = FontFamily.Families; for (int i = 0; i < ff.Length; i++) { cmbFontName.Items.Add((string)ff[i].Name); } cmbFontName.Text = Properties.Settings.Default.FontName; cmbFontSize.Text = Properties.Settings.Default.FontSize; /* Read and Load Extensions */ xmlReader = new XmlTextReader(PATH_APP_DATA + "extensions.xml"); tafseerStruct rstruct; xmlReader.ReadToFollowing("extension"); do { ToolStripItem rItem; rstruct = new tafseerStruct(); rstruct.dir = xmlReader.GetAttribute("dir"); rstruct.id = xmlReader.GetAttribute("id"); xmlReader.ReadToFollowing("title"); rstruct.title = xmlReader.ReadElementString(); xmlReader.ReadToFollowing("location"); rstruct.location = xmlReader.ReadElementString(); rItem = mextension.Items.Add(rstruct.title); rItem.Tag = rstruct; rItem.Click += new EventHandler(rItem_Click); } while (xmlReader.ReadToFollowing("extension")); xmlReader.Close(); /* Read all the available recitors */ xmlReader = new XmlTextReader(PATH_APP_DATA + "recitations.xml"); xmlReader.ReadToFollowing("recitation"); do { dctReciters.Add(xmlReader.GetAttribute("name"), xmlReader.GetAttribute("url")); cmbrecitors.Items.Add(xmlReader.GetAttribute("name")); } while (xmlReader.ReadToNextSibling("recitation")); xmlReader.Close(); cmbrecitors.SelectedIndex = Properties.Settings.Default.quranReciter; /* Read all the sowar names from the xml file */ xmlReader = new XmlTextReader(PATH_APP_DATA + "quran.xml"); xmlReader.ReadToFollowing("SOURA"); do { cmbSoura.Items.Add(xmlReader.GetAttribute("id") + "." + xmlReader.GetAttribute("name")); } while (xmlReader.ReadToNextSibling("SOURA")); xmlReader.Close(); /* Load the quran to the viewer */ qv.LoadXmlFile(PATH_APP_DATA + "quran.xml"); qv.LoadQuranParts(PATH_APP_DATA + "quran_parts.xml"); /* Read other UI elements settings for the quran identity*/ cntright.Panel2Collapsed = Properties.Settings.Default.SearchState; chkSearch.Checked = !cntright.Panel2Collapsed; pnla.SelectedText = Properties.Settings.Default.pnlaSelected; pnlb.SelectedText = Properties.Settings.Default.pnlbSelected; QuranVolume.Position = Properties.Settings.Default.VolumeLevel; xmlpnla = new XmlDocument(); xmlpnlb = new XmlDocument(); if (!wc.Contains(GettafseerFromTitle(pnla.SelectedText).id)) xmlpnla.Load(GettafseerFromTitle(pnla.SelectedText).location); if (!wc.Contains(GettafseerFromTitle(pnlb.SelectedText).id)) xmlpnlb.Load(GettafseerFromTitle(pnlb.SelectedText).location); if (Properties.Settings.Default.ViewMode == 0) { qv.ViewMode = qViewer.ViewModeFlags.SingleLine; chkSingleline.Checked = true; } else { qv.ViewMode = qViewer.ViewModeFlags.MultiLine; chkMultiline.Checked = true; } cmbSoura.SelectedIndex = Properties.Settings.Default.CurrentSoura; qv.SelectedIndex = Properties.Settings.Default.CurrentAya; qv.ScrollPosition = Properties.Settings.Default.CurrentScrollValue; } spcHadeeth.Visible = false; spcQuran.Visible = true; pnlQuranTools.Show(); pnlHadeethTools.Hide(); isIdentityLoaded[0] = true; break; case IdentityEnum.Hadeeth: string hadeethSelected = Properties.Settings.Default.hadeethSelected; StringCollection hadeethSearchHistory = Properties.Settings.Default.hadeethSearchHistory; if (!isIdentityLoaded[1]) { /* Identity is loaded for the first time */ LoadHadeethTree(); if (hadeethSearchHistory != null) foreach (string rItem in hadeethSearchHistory) cmbhdtSearch.Items.Add(rItem); cmbhdtSearchScope.Items.Add("جميع الكتب"); cmbhdtSearchScope.SelectedIndex = 0; for (int i = 0; i < 6; i++) cmbhdtSearchScope.Items.Add(trvHadeeth.Nodes[i].Text); trvHadeeth.SelectedNode = NodeFromIndex(trvHadeeth ,hadeethSelected); trvHadeeth.Select(); } spcHadeeth.Visible = true; spcQuran.Visible = false; pnlQuranTools.Hide(); pnlHadeethTools.Show(); isIdentityLoaded[1] = true; break; } }
private void LoadIdentity(IdentityEnum Identity) { switch (Identity) { case IdentityEnum.Quran: if (!isIdentityLoaded[0]) { XmlTextReader xmlReader; /* Read the list of all the available fonts */ FontFamily[] ff = FontFamily.Families; for (int i = 0; i < ff.Length; i++) { cmbFontName.Items.Add((string)ff[i].Name); } cmbFontName.Text = Properties.Settings.Default.FontName; cmbFontSize.Text = Properties.Settings.Default.FontSize; /* Read and Load Extensions */ xmlReader = new XmlTextReader(PATH_APP_DATA + "extensions.xml"); tafseerStruct rstruct; xmlReader.ReadToFollowing("extension"); do { ToolStripItem rItem; rstruct = new tafseerStruct(); rstruct.dir = xmlReader.GetAttribute("dir"); rstruct.id = xmlReader.GetAttribute("id"); xmlReader.ReadToFollowing("title"); rstruct.title = xmlReader.ReadElementString(); xmlReader.ReadToFollowing("location"); rstruct.location = xmlReader.ReadElementString(); rItem = mextension.Items.Add(rstruct.title); rItem.Tag = rstruct; rItem.Click += new EventHandler(rItem_Click); } while (xmlReader.ReadToFollowing("extension")); xmlReader.Close(); /* Read all the available recitors */ xmlReader = new XmlTextReader(PATH_APP_DATA + "recitations.xml"); xmlReader.ReadToFollowing("recitation"); do { dctReciters.Add(xmlReader.GetAttribute("name"), xmlReader.GetAttribute("url")); cmbrecitors.Items.Add(xmlReader.GetAttribute("name")); } while (xmlReader.ReadToNextSibling("recitation")); xmlReader.Close(); cmbrecitors.SelectedIndex = Properties.Settings.Default.quranReciter; /* Read all the sowar names from the xml file */ xmlReader = new XmlTextReader(PATH_APP_DATA + "quran.xml"); xmlReader.ReadToFollowing("SOURA"); do { cmbSoura.Items.Add(xmlReader.GetAttribute("id") + "." + xmlReader.GetAttribute("name")); } while (xmlReader.ReadToNextSibling("SOURA")); xmlReader.Close(); /* Load the quran to the viewer */ qv.LoadXmlFile(PATH_APP_DATA + "quran.xml"); qv.LoadQuranParts(PATH_APP_DATA + "quran_parts.xml"); /* Read other UI elements settings for the quran identity*/ cntright.Panel2Collapsed = Properties.Settings.Default.SearchState; chkSearch.Checked = !cntright.Panel2Collapsed; pnla.SelectedText = Properties.Settings.Default.pnlaSelected; pnlb.SelectedText = Properties.Settings.Default.pnlbSelected; QuranVolume.Position = Properties.Settings.Default.VolumeLevel; xmlpnla = new XmlDocument(); xmlpnlb = new XmlDocument(); if (!wc.Contains(GettafseerFromTitle(pnla.SelectedText).id)) { xmlpnla.Load(GettafseerFromTitle(pnla.SelectedText).location); } if (!wc.Contains(GettafseerFromTitle(pnlb.SelectedText).id)) { xmlpnlb.Load(GettafseerFromTitle(pnlb.SelectedText).location); } if (Properties.Settings.Default.ViewMode == 0) { qv.ViewMode = qViewer.ViewModeFlags.SingleLine; chkSingleline.Checked = true; } else { qv.ViewMode = qViewer.ViewModeFlags.MultiLine; chkMultiline.Checked = true; } cmbSoura.SelectedIndex = Properties.Settings.Default.CurrentSoura; qv.SelectedIndex = Properties.Settings.Default.CurrentAya; qv.ScrollPosition = Properties.Settings.Default.CurrentScrollValue; } spcHadeeth.Visible = false; spcQuran.Visible = true; pnlQuranTools.Show(); pnlHadeethTools.Hide(); isIdentityLoaded[0] = true; break; case IdentityEnum.Hadeeth: string hadeethSelected = Properties.Settings.Default.hadeethSelected; StringCollection hadeethSearchHistory = Properties.Settings.Default.hadeethSearchHistory; if (!isIdentityLoaded[1]) /* Identity is loaded for the first time */ { LoadHadeethTree(); if (hadeethSearchHistory != null) { foreach (string rItem in hadeethSearchHistory) { cmbhdtSearch.Items.Add(rItem); } } cmbhdtSearchScope.Items.Add("جميع الكتب"); cmbhdtSearchScope.SelectedIndex = 0; for (int i = 0; i < 6; i++) { cmbhdtSearchScope.Items.Add(trvHadeeth.Nodes[i].Text); } trvHadeeth.SelectedNode = NodeFromIndex(trvHadeeth, hadeethSelected); trvHadeeth.Select(); } spcHadeeth.Visible = true; spcQuran.Visible = false; pnlQuranTools.Hide(); pnlHadeethTools.Show(); isIdentityLoaded[1] = true; break; } }