/**sciSetText * Sets the Text in TEXT, TITLE or LEGEND * @param char * pobjUID: the pointer to the entity * @param char *text[] : the text which has to be put * @param int nbRow : the number of row of the text matrix * @param int nbCol : the number of col of the text matrix * @return 0 if OK, -1 if not */ int sciSetText (char * pobjUID, char ** text, int nbRow, int nbCol) { int dimensions[2]; BOOL status = FALSE; /* Check if we should load LaTex / MathML Java libraries */ loadTextRenderingAPI(text, nbRow, nbCol); dimensions[0] = nbRow; dimensions[1] = nbCol; status = setGraphicObjectProperty(pobjUID, __GO_TEXT_ARRAY_DIMENSIONS__, dimensions, jni_int_vector, 2); if (status != TRUE) { printSetGetErrorMessage("text"); return -1; } status = setGraphicObjectProperty(pobjUID, __GO_TEXT_STRINGS__, text, jni_string_vector, dimensions[0] * dimensions[1]); if (status == TRUE) { return 0; } else { printSetGetErrorMessage("text"); return -1; } }
/*------------------------------------------------------------------------*/ int set_tics_labels_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, int nbRow, int nbCol) { BOOL status = FALSE; int iNbTicksLabels = 0; int* piNbTicksLabels = &iNbTicksLabels; char** stringVector = NULL; if (valueType != sci_strings) { Scierror(999, _("Wrong type for '%s' property: String matrix expected.\n"), "tics_labels"); return SET_PROPERTY_ERROR; } getGraphicObjectProperty(iObjUID, __GO_NUMBER_TICKS_LABELS__, jni_int, (void**)&piNbTicksLabels); if (piNbTicksLabels == NULL) { Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_labels"); return SET_PROPERTY_ERROR; } if (iNbTicksLabels > nbRow * nbCol) { Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "tics_labels", iNbTicksLabels); return SET_PROPERTY_ERROR; } stringVector = createCopyStringMatrixFromStack(_pvData, nbRow * nbCol); /* Check if we should load LaTex / MathML Java libraries */ loadTextRenderingAPI(stringVector, nbRow * nbCol, 1); status = setGraphicObjectProperty(iObjUID, __GO_TICKS_LABELS__, stringVector, jni_string_vector, nbRow * nbCol); destroyStringArray(stringVector, nbRow * nbCol); if (status == TRUE) { return SET_PROPERTY_SUCCEED; } else { Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_labels"); return SET_PROPERTY_ERROR; } }
/* @TODO: remove stackPointer, nbRow, nbCol which are used */ int set_z_ticks_property(void* _pvCtx, char* pobjUID, void* _pvData, int valueType, int nbRow, int nbCol) { BOOL autoTicks = FALSE; BOOL status = FALSE; AssignedList * tlist = NULL; int nbTicsRow = 0 ; int nbTicsCol = 0 ; double* userGrads = NULL; char** userLabels = NULL; if (valueType != sci_tlist) { Scierror(999, _("Wrong type for '%s' property: Typed list expected.\n"), "z_ticks"); return SET_PROPERTY_ERROR; } tlist = createTlistForTicks(_pvCtx); if (tlist == NULL) { return SET_PROPERTY_ERROR; } /* locations */ userGrads = createCopyDoubleMatrixFromList(_pvCtx, tlist, &nbTicsRow, &nbTicsCol); if (userGrads == NULL && nbTicsRow == -1) { // if nbTicsRow = 0, it's just an empty matrix Scierror(999, _("%s: No more memory.\n"), "set_z_ticks_property"); return SET_PROPERTY_ERROR; } /* Automatic ticks must be first deactivated in order to set user ticks */ autoTicks = FALSE; setGraphicObjectProperty(pobjUID, __GO_Z_AXIS_AUTO_TICKS__, &autoTicks, jni_bool, 1); status = setGraphicObjectProperty(pobjUID, __GO_Z_AXIS_TICKS_LOCATIONS__, userGrads, jni_double_vector, nbTicsRow * nbTicsCol); if (status == FALSE) { Scierror(999, _("'%s' property does not exist for this handle.\n"), "z_ticks"); FREE(userGrads); return SET_PROPERTY_ERROR; } /* labels */ // Here we check the size of "locations" instead of "labels", but they have the same size. // We need to check the size to not be 0 because an empty matrix is a matrix of double // and 'getCurrentStringMatrixFromList' expect a matrix of string (see bug 5148). // P.Lando if (nbTicsCol * nbTicsRow) { userLabels = getCurrentStringMatrixFromList(_pvCtx, tlist, &nbTicsRow, &nbTicsCol); /* Check if we should load LaTex / MathML Java libraries */ loadTextRenderingAPI(userLabels, nbTicsCol, nbTicsRow); setGraphicObjectProperty(pobjUID, __GO_Z_AXIS_TICKS_LABELS__, userLabels, jni_string_vector, nbTicsRow * nbTicsCol); } else { /* To be implemented */ #if 0 ppSubWin->axes.u_zlabels = NULL; #endif } if (userGrads != NULL) { FREE(userGrads); } destroyAssignedList(tlist); return SET_PROPERTY_SUCCEED; }