private void OnMousePressed(object sender, MouseButtonEventArgs mouseEvent) { foreach (var clicked in Descendents.Where(d => d.IsMouseOver)) { clicked.MousePressed?.Invoke(clicked, new InputEventArgs()); } }
public void GetDecendents() { if (Retreieved) { return; } Descendents.Clear(); var children = SitecoreClient.GetChildrenDirectories(Path); foreach (var child in children) { var path = string.Format("{0}/{1}", Path, child.Name); var sitecorePath = new SitecorePath(child.Name, path); foreach (var nestedDir in child.Children) { var nestedPath = string.Format("{0}/{1}", path, nestedDir); sitecorePath.Descendents.Add(new SitecorePath(nestedDir, nestedPath)); } Descendents.Add(sitecorePath); } Retreieved = true; }
public void Append(ConsoleString str) { foreach (var ch in str) { var c = ch.ToConsoleString(); if (c.StringValue == "\n") { WriteNewlineInternal(); } else { if (logLines[logLines.Count - 1].Length > logLabel.Width - 10 && c.StringValue == " ") { WriteNewlineInternal(); } else if (logLines[logLines.Count - 1].Length > logLabel.Width - 3) { WriteNewlineInternal(); logLines[logLines.Count - 1] = (logLines[logLines.Count - 1]) + c; } else { logLines[logLines.Count - 1] = (logLines[logLines.Count - 1]) + c; } } } var linesUsed = 0; var text = ConsoleString.Empty; for (var i = logLines.Count - 1; i >= 0; i--) { var line = logLines[i]; text = line + "\n" + text; linesUsed++; } logLabel.Text = text; logLabel.Height = linesUsed; scrollPanel.ScrollableContent.Height = linesUsed; var focused = Application.FocusManager.FocusedControl; if (focused is Scrollbar && Descendents.Contains(focused)) { // do nothing since the scrollbar is in focus } else { scrollPanel.VerticalScrollUnits = Math.Max(0, logLabel.Height - this.Height); } this.FirePropertyChanged(nameof(Bounds)); }
public void SetDescendentsRecursively(HashSet <int> descendents) { Descendents.UnionWith(descendents); var parentsDescendents = new HashSet <int>(Descendents); parentsDescendents.Add(Id); foreach (var parentPair in PossibleParents) { parentPair.FirstParent.SetDescendentsRecursively(parentsDescendents); parentPair.SecondParent.SetDescendentsRecursively(parentsDescendents); } }