Esempio n. 1
0
        private bool Output_led_OnPinMouseDwon(QOutput_LED sender, CQPin pin, Point pt)
        {
            CQGateBaseUI gateui = sender.DataContext as CQGateBaseUI;

            this.m_Line                 = new Line();
            this.m_Line.Fill            = Brushes.Gray;
            this.m_Line.X1              = this.m_Line.X2 = pin.ConnectPoint.X;
            this.m_Line.Y1              = this.m_Line.Y2 = pin.ConnectPoint.Y;
            this.m_Line.Stroke          = Brushes.Gray;
            this.m_Line.StrokeThickness = 1;
            this.m_IsConnect            = true;
            CQSaveFile_Line save_line = new CQSaveFile_Line()
            {
                Line = this.m_Line
            };

            if (this.m_LineDatas.ContainsKey(save_line.Line) == false)
            {
                this.m_LineDatas.Add(save_line.Line, save_line);
            }
            else
            {
            }
            this.m_LineDatas[this.m_Line].Begin.GateID = gateui.ID;
            this.m_LineDatas[this.m_Line].Begin.Index  = pin.Index;
            this.m_LineDatas[this.m_Line].Begin.Type   = pin.Type;

            this.m_LineDatas[this.m_Line].Begin.EndType = CQSaveFile_LinePoint.EndTypes.Start;
            this.canvas.Children.Add(this.m_Line);
            return(true);
        }
Esempio n. 2
0
        public bool RefreshLocation()
        {
            bool result = true;

            //List<CQPin> pin_in = new List<CQPin>();
            //List<CQPin> pin_out = new List<CQPin>();
            for (int i = 0; i < this.itemscontrol_in.Items.Count; i++)
            {
                ContentPresenter container = this.itemscontrol_in.ItemContainerGenerator.ContainerFromIndex(i) as ContentPresenter;
                container.ApplyTemplate();
                FrameworkElement oo  = container.ContentTemplate.FindName("rectangle", container) as FrameworkElement;
                CQPin            pin = oo.DataContext as CQPin;
                this.GetPinLocation(pin, oo);
                //pin_in.Add(pin);
            }
            for (int i = 0; i < this.itemscontrol_out.Items.Count; i++)
            {
                ContentPresenter container = this.itemscontrol_out.ItemContainerGenerator.ContainerFromIndex(i) as ContentPresenter;
                container.ApplyTemplate();
                FrameworkElement oo  = container.ContentTemplate.FindName("rectangle", container) as FrameworkElement;
                CQPin            pin = oo.DataContext as CQPin;
                this.GetPinLocation(pin, oo);
                //pin_out.Add(pin);
            }
            if (this.OnGateMove != null)
            {
                this.OnGateMove(this);
            }
            return(result);
        }
Esempio n. 3
0
        private void Rectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            FrameworkElement rectangle = sender as FrameworkElement;
            CQPin            pin       = rectangle.DataContext as CQPin;

            this.GetPinLocation(pin, rectangle);
            if (this.OnPinMouseUp != null)
            {
                this.OnPinMouseUp(this, pin, new Point());
            }
            e.Handled = true;
        }
Esempio n. 4
0
        private void Rectangle_MouseDown(object sender, MouseButtonEventArgs e)
        {
            Rectangle rectangle = sender as Rectangle;
            CQPin     pin       = rectangle.DataContext as CQPin;

            this.GetPinLocation(pin, rectangle);
            if (this.OnPinMouseDwon != null)
            {
                this.OnPinMouseDwon(this, pin, new Point());
            }
            e.Handled = true;
        }
Esempio n. 5
0
        Point GetPinLocation(CQPin pin, FrameworkElement rectangle)
        {
            UIElement container        = VisualTreeHelper.GetParent(this) as UIElement;
            Point     relativeLocation = rectangle.TranslatePoint(new Point(0, 0), container);

            if (pin.Type == CQPin.Types.IN)
            {
                relativeLocation.X = relativeLocation.X;
            }
            else
            {
                relativeLocation.X = relativeLocation.X + rectangle.Width;
            }
            relativeLocation.Y = relativeLocation.Y + rectangle.Height / 2;
            pin.ConnectPoint   = relativeLocation;
            return(relativeLocation);
        }
Esempio n. 6
0
        void ConnectEnd(FrameworkElement sender, CQPin pin, Point pt)
        {
            CQGateBaseUI gateui = sender.DataContext as CQGateBaseUI;

            this.m_Line.X2 = pin.ConnectPoint.X;
            this.m_Line.Y2 = pin.ConnectPoint.Y;
            this.m_LineDatas[this.m_Line].End.GateID  = gateui.ID;
            this.m_LineDatas[this.m_Line].End.Index   = pin.Index;
            this.m_LineDatas[this.m_Line].End.Type    = pin.Type;
            this.m_LineDatas[this.m_Line].End.EndType = CQSaveFile_LinePoint.EndTypes.End;
            if (this.m_LineDatas[this.m_Line].Begin.Type == CQPin.Types.IN)
            {
                CQSaveFile_LinePoint pp1 = new CQSaveFile_LinePoint(this.m_LineDatas[this.m_Line].End);
                CQSaveFile_LinePoint pp2 = new CQSaveFile_LinePoint(this.m_LineDatas[this.m_Line].Begin);
                this.m_LineDatas[this.m_Line].Begin = pp1;
                this.m_LineDatas[this.m_Line].End   = pp2;
            }
            this.m_IsConnect = false;
        }
Esempio n. 7
0
 private bool Ggate_OnPinMouseUp(QGate sender, CQPin pin, Point pt)
 {
     this.ConnectEnd(sender, pin, pt);
     return(true);
 }
Esempio n. 8
0
 private bool Output_led_OnPinMouseUp(QOutput_LED sender, CQPin pin, Point pt)
 {
     this.ConnectEnd(sender, pin, pt);
     return(true);
 }
Esempio n. 9
0
 private bool Input_switch_OnPinMouseUp(QInput_Switch sender, CQPin pin, Point pt)
 {
     this.ConnectEnd(sender, pin, pt);
     return(true);
 }