/*------------------------------------------------------------------------*/ int set_outside_colors_property(char* pobjUID, size_t stackPointer, int valueType, int nbRow, int nbCol ) { BOOL status; int values[2]; int nbColors = 0; if ( !isParameterDoubleMatrix( valueType ) ) { Scierror(999, _("Wrong type for '%s' property: Integer expected.\n"), "outside_colors"); return SET_PROPERTY_ERROR; } #if 0 if ( sciGetEntityType(pobj) != SCI_FEC ) { Scierror(999, _("'%s' property does not exist for this handle.\n"),"outside_colors"); return SET_PROPERTY_ERROR; } #endif if ( nbRow * nbCol != 2 ) { Scierror(999, _("Wrong size for '%s' property: %d elements expected.\n"), "outside_colors", 2); return SET_PROPERTY_ERROR; } copyDoubleVectorToIntFromStack(stackPointer, values, 2); /* Returns the number of colors of pobj's parent Figure */ nbColors = sciGetNumColors(pobjUID); if ( values[0] > nbColors || values[0] < -1 || values[1] > nbColors || values[1] < -1) { /* It is possible to set color_range outside the colormap, however it won't be used.*/ sciprint(_("WARNING: Wrong value for '%s' property: indices outside the colormap will be clamped.\n"), "outside_colors"); } status = setGraphicObjectProperty(pobjUID, __GO_OUTSIDE_COLOR__, values, jni_int_vector, 2); if (status == TRUE) { return SET_PROPERTY_SUCCEED; } else { Scierror(999, _("'%s' property does not exist for this handle.\n"),"outside_colors"); return SET_PROPERTY_ERROR; } }
/*------------------------------------------------------------------------*/ int set_color_range_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, int nbRow, int nbCol) { BOOL status = FALSE; int values[2]; int nbColors = 0; if (valueType != sci_matrix) { Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "color_range"); return SET_PROPERTY_ERROR; } if (nbRow * nbCol != 2) { Scierror(999, _("Wrong size for '%s' property: %d elements expected.\n"), "color_range", 2); return SET_PROPERTY_ERROR; } copyDoubleVectorToIntFromStack(_pvData, values, 2); /* Returns the number of colors of pobj's parent Figure */ nbColors = sciGetNumColors(iObjUID); if ( values[0] > nbColors || values[0] < 0 || values[1] > nbColors || values[1] < 0) { /* It is possible to set color_range outside the colormap, however it won't be used.*/ sciprint(_("WARNING: Wrong value for '%s' property: indices outside the colormap will be clamped.\n"), "color_range"); } status = setGraphicObjectProperty(iObjUID, __GO_COLOR_RANGE__, values, jni_int_vector, 2); if (status == TRUE) { return SET_PROPERTY_SUCCEED; } else { Scierror(999, _("'%s' property does not exist for this handle.\n"), "color_range"); return SET_PROPERTY_ERROR; } }
/** * Check that a color index is within the colormap range or not * @param pobjUID object conatining the color */ BOOL sciCheckColorIndex(char * pobjUID, int colorIndex) { return (colorIndex >= -2) && (colorIndex <= sciGetNumColors(pobjUID) + 2); }