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); }