Esempio n. 1
0
        private unsafe int PickColor(ColorID *colorID, ASZString promptString)
        {
            int error;

            string prompt;

            if (zstringSuite.ConvertToString(promptString, out prompt))
            {
                byte red   = 0;
                byte green = 0;
                byte blue  = 0;

                if (colorPicker.ShowDialog(prompt, ref red, ref green, ref blue))
                {
                    error = Make(colorID);
                    if (error == PSError.kSPNoError)
                    {
                        colors[*colorID] = new Color(ColorSpace.RGBSpace, red, green, blue, 0);
                    }
                }
                else
                {
                    error = PSError.kSPUserCanceledError;
                }
            }
            else
            {
                error = PSError.kSPBadParameterError;
            }

            return(error);
        }
        private unsafe int Delete(ColorID *colorID)
        {
            if (colorID == null)
            {
                return(PSError.kSPBadParameterError);
            }

            colors.Remove(*colorID);
            if (colorsIndex == colorID->Index)
            {
                colorsIndex--;
            }

            return(PSError.kSPNoError);
        }
        private unsafe int Make(ColorID *colorID)
        {
            if (colorID == null)
            {
                return(PSError.kSPBadParameterError);
            }

            try
            {
                colorsIndex++;
                *colorID = new ColorID(colorsIndex);
                colors.Add(*colorID, new Color());
            }
            catch (OutOfMemoryException)
            {
                return(PSError.kSPOutOfMemoryError);
            }

            return(PSError.kSPNoError);
        }
        private unsafe int PickColor(ColorID *colorID, ASZString promptZString)
        {
            if (colorID == null)
            {
                return(PSError.kSPBadParameterError);
            }

            int error;

            string prompt;

            if (zstringSuite.ConvertToString(promptZString, out prompt))
            {
                PaintDotNet.ColorBgra?chosenColor = ColorPickerService.ShowColorPickerDialog(prompt);

                if (chosenColor.HasValue)
                {
                    error = Make(colorID);
                    if (error == PSError.kSPNoError)
                    {
                        PaintDotNet.ColorBgra color = chosenColor.Value;
                        colors[*colorID] = new Color(ColorSpace.RGBSpace, color.R, color.G, color.B, 0);
                    }
                }
                else
                {
                    error = PSError.kSPUserCanceledError;
                }
            }
            else
            {
                error = PSError.kSPBadParameterError;
            }

            return(error);
        }