示例#1
0
        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;
            }
        }
示例#2
0
 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;
         }
     }
 }
 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;
         }
     }
 }
示例#6
0
        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;
            }
        }
示例#8
0
        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());
            }
        }
示例#9
0
 public void EnsureVisible(DrawableElement drawableElement)
 {
     if (drawableElement.rect.Top < 0 || drawableElement.rect.Top > this.Height)
         vScrollBar.Value += Math.Min(vScrollBar.Maximum, drawableElement.rect.Top);
 }
示例#10
0
        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());
            }
        }
示例#11
0
 public void EnsureVisible(DrawableElement drawableElement)
 {
     scratch1.EnsureVisible(drawableElement);
 }
示例#12
0
 public void EnsureVisible(DrawableElement drawableElement)
 {
     scratch1.EnsureVisible(drawableElement);
 }
 private void DeselectChildren()
 {
     if (selectedChildren != null)
         selectedChildren.setSelected(false);
     selectedChildren = null;
 }
示例#14
0
        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);
            }

        }