private void OnMouseClick(object sender, DomMouseEventArgs e) { if (!m_blocksDisplayBrowser.Window.Selection.IsCollapsed) { return; } GeckoElement geckoElement; if (GeckoUtilities.ParseDomEventTargetAsGeckoElement(e.Target, out geckoElement)) { var geckoDivElement = geckoElement as GeckoDivElement; while (geckoDivElement != null && !geckoDivElement.ClassName.Contains("block scripture")) { geckoDivElement = geckoDivElement.Parent as GeckoDivElement; } if (geckoDivElement == null) { return; } int blockIndexInBook; GeckoNode blockIndexInBookAttr = geckoDivElement.Attributes["data-block-index-in-book"]; if (blockIndexInBookAttr == null || !Int32.TryParse(blockIndexInBookAttr.NodeValue, out blockIndexInBook)) { return; } m_viewModel.CurrentBlockIndexInBook = blockIndexInBook; } }
private void HandleClick(object sender, DomMouseEventArgs e) { GeckoElement geckoElement; if (m_blocksDisplayBrowser.Visible && GeckoUtilities.ParseDomEventTargetAsGeckoElement(e.Target, out geckoElement)) { int splitId; if (IsElementSelect(geckoElement)) { m_lblInvalidSplitLocation.Visible = false; } else if (IsElementSplitLine(geckoElement, out splitId)) { m_splitLocations.Remove(m_splitLocations.Single(s => s.Id == splitId)); SetHtml(); m_btnOk.Enabled = m_splitLocations.Any(); m_lblInvalidSplitLocation.Visible = false; } else if (DetermineSplitLocation(geckoElement)) { SetHtml(); m_btnOk.Enabled = true; m_lblInvalidSplitLocation.Visible = false; } else { m_lblInvalidSplitLocation.Visible = true; } } else { m_lblInvalidSplitLocation.Visible = true; } }