Esempio n. 1
0
        private void gradientBox_MouseClick(object sender, MouseEventArgs e)
        {
            PhotonGradient gradient = gradientBox.Gradient;

            float u = (float)e.X / gradientBox.Width * gradient.Length + gradient.Start;
            int   i = gradient.ClosestIndex(u);

            if (e.Button == MouseButtons.Left)
            {
                PhotonGradient.PhotonPosition pp = gradient[i];
                if (ModifierKeys == Keys.Control)
                {
                    pp.Photon   = gradient[u];
                    pp.Position = u;
                    gradient.Add(pp);
                    gradientBox.UpdateRender();
                }
                else
                {
                    PhotonDialog photonDialog = new PhotonDialog(this);
                    photonDialog.Photon = pp.Photon;
                    if (photonDialog.ShowDialog() == DialogResult.OK)
                    {
                        pp.Photon   = photonDialog.Photon;
                        gradient[i] = pp;
                        gradientBox.UpdateRender();
                    }
                }
            }
            else if (e.Button == MouseButtons.Right && i > 0 && i < gradient.PhotonPositionCount - 1)
            {
                gradient.Remove(i);
                gradientBox.UpdateRender();
            }
        }
Esempio n. 2
0
        private void gradientBox_MouseMove(object sender, MouseEventArgs e)
        {
            PhotonGradient gradient = gradientBox.Gradient;

            float u = (float)e.X / gradientBox.Width * gradient.Length + gradient.Start;
            int   i = gradient.ClosestIndex(u);

            if (e.Button == MouseButtons.Middle && i > 0 && i < gradient.PhotonPositionCount - 1)
            {
                PhotonGradient.PhotonPosition pp = gradient[i];
                if (ModifierKeys == Keys.Shift)
                {
                    pp.Position = (float)(int)(Math.Round(u * gradientRuler.Segments)) / gradientRuler.Segments;
                }
                else
                {
                    pp.Position = u;
                }
                gradient[i] = pp;
                gradientBox.UpdateRender();
            }
        }