private void DrawElements(Graphics graphics) { int curx = 5 - hScrollBar.Value; int cury = 5 - vScrollBar.Value; int startY = vScrollBar.Value; int maxX = 0; graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; for (int i = 0; i < elements.Count; ++i) { DrawableElement e = elements.Get(i); Size size = e.Draw(graphics, curx, cury, this.Width + hScrollBar.Maximum, this.Height, brush, pen, font, mini_font); cury += size.Height + 10; if (maxX < size.Width) { maxX = size.Width + 10; } } if (dragging && selectedElement != null) { selectedElement.Draw(graphics, mouse.X, mouse.Y, this.Width, this.Height, brush, pen, font, mini_font, false); if (elements.Count > 1) { int index = elements.GetInsertIndexFromPos(mouse.X, mouse.Y); int y = (index == elements.Count ? elements[index - 1].rect.Bottom : elements[index].rect.Top); graphics.DrawLine(pen, 5, y, this.Width - 10, y); } } vScrollBar.Maximum = Math.Max(0, cury - this.Height + startY + 20); if (startY > 0) { if (cury + 30 < this.Height) { vScrollBar.Value = Math.Max(0, startY - this.Height - cury); this.Refresh(); } } hScrollBar.Maximum = Math.Max(0, maxX - this.Width + 20); if (vScrollBar.Maximum == 0) { vScrollBar.Visible = false; } else { vScrollBar.Visible = true; } if (hScrollBar.Maximum == 0) { hScrollBar.Visible = false; } else { hScrollBar.Visible = true; } }
public void EnsureVisible(DrawableElement drawableElement) { if (drawableElement.rect.Top < 0 || drawableElement.rect.Top > this.Height) { vScrollBar.Value += Math.Min(vScrollBar.Maximum, drawableElement.rect.Top); } }
private void DeselectChildren() { if (selectedChildren != null) { selectedChildren.setSelected(false); } selectedChildren = null; }
public override void setSelected(Point mouse) { setSelected(true); foreach (DrawableElement child in children) { if (child.contains(mouse.X, mouse.Y)) { child.setSelected(true); selectedChildren = child; return; } } }
private DropResult TargetDropResult(int x, int y) { SmartEvent ev = EventAt(x, y); if (ev != null) { DrawableElement dr = ev.GetElementFromPos(x, y); if (dr != null) { return(DropResult.REPLACE); } } return(DropResult.NONE); }
private void DropCondition(string str, Point mouse) { SmartEvent el = events.EventAt(mouse.X, mouse.Y); switch (dropResult) { case DropResult.INSERT: el.InsertCondition(SmartFactory.GetInstance().ConditionFactory(str), el.GetInsertConditionIndexFromPos(mouse.X, mouse.Y)); break; case DropResult.REPLACE: DrawableElement condition = el.GetElementFromPos(mouse.X, mouse.Y); el.ReplaceCondition(SmartFactory.GetInstance().ConditionFactory(str), (SmartCondition)condition); break; } }
private void Scratch_MouseDown(object sender, MouseEventArgs e) { mousedown = true; mouse_start.X = e.X; mouse_start.Y = e.Y; if (selectedElement != null) { selectedElement.setSelected(false); } selectedElement = elements.ElementAt(e.X, e.Y); if (selectedElement != null) { selectedElement.setSelected(new Point(e.X, e.Y)); selectedElement.MouseDown(sender, e); ElementSelected(this, new EventArgs()); } }
public void EnsureVisible(DrawableElement drawableElement) { if (drawableElement.rect.Top < 0 || drawableElement.rect.Top > this.Height) vScrollBar.Value += Math.Min(vScrollBar.Maximum, drawableElement.rect.Top); }
private void Scratch_MouseDown(object sender, MouseEventArgs e) { mousedown = true; mouse_start.X = e.X; mouse_start.Y = e.Y; if (selectedElement != null) selectedElement.setSelected(false); selectedElement = elements.ElementAt(e.X, e.Y); if (selectedElement != null) { selectedElement.setSelected(new Point(e.X, e.Y)); selectedElement.MouseDown(sender, e); ElementSelected(this, new EventArgs()); } }
public void EnsureVisible(DrawableElement drawableElement) { scratch1.EnsureVisible(drawableElement); }
private void DeselectChildren() { if (selectedChildren != null) selectedChildren.setSelected(false); selectedChildren = null; }
private void Scratch_MouseDown(object sender, MouseEventArgs e) { mousedown = true; mouse_start.X = e.X; mouse_start.Y = e.Y; if (selectedElement != null) selectedElement.setSelected(false); selectedElement = null; foreach(DrawableElement element in elements) { if (element.contains(e.X, e.Y)) { element.setSelected(new Point(e.X, e.Y)); selectedElement = element; ElementSelected(this, new EventArgs()); } } if (selectedElement != null) { selectedElement.MouseDown(sender, e); } }