int iupMatrixDrawSetRedrawAttrib(Ihandle* ih, const char* value) { int type; if (value == NULL) type = 0; else if(value[0] == 'L' || value[0] == 'l') type = IMAT_PROCESS_LIN; else if(value[0] == 'C' || value[0] == 'c') type = IMAT_PROCESS_COL; else type = 0; if (type) /* lines or columns, inluding their titles */ { int min = 0, max = 0; value++; if(iupStrToIntInt(value, &min, &max, ':') != 2) max = min; if (min > max) return 0; iupMatrixPrepareDrawData(ih); if (ih->data->need_calcsize) iupMatrixAuxCalcSizes(ih); /* ignore empty area, draw only cells */ iMatrixDrawTitleCorner(ih); if (type == IMAT_PROCESS_LIN) { iupMatrixDrawLineTitle(ih, min, max); if (ih->data->columns.num_noscroll>1) iupMatrixDrawCells(ih, min, 1, max, ih->data->columns.num_noscroll-1); iupMatrixDrawCells(ih, min, ih->data->columns.first, max, ih->data->columns.last); } else { iupMatrixDrawColumnTitle(ih, min, max); if (ih->data->lines.num_noscroll>1) iupMatrixDrawCells(ih, 1, min, ih->data->lines.num_noscroll-1, max); iupMatrixDrawCells(ih, ih->data->lines.first, min, ih->data->lines.last, max); } } else { /* Force CalcSize */ iupMatrixAuxCalcSizes(ih); iMatrixDrawMatrix(ih); } ih->data->need_redraw = 0; iupMatrixDrawUpdate(ih); return 0; }
void iupMatrixDraw(Ihandle* ih, int update) { if (ih->data->need_calcsize) iupMatrixAuxCalcSizes(ih); iMatrixDrawMatrix(ih); if (update) iupMatrixDrawUpdate(ih); }
int iupMatrixDrawSetRedrawAttrib(Ihandle* ih, const char* value) { int type; if (value == NULL) type = 0; else if(value[0] == 'L' || value[0] == 'l') type = IMAT_PROCESS_LIN; else if(value[0] == 'C' || value[0] == 'c') type = IMAT_PROCESS_COL; else type = 0; if (type) { int min = 0, max = 0; value++; if(iupStrToIntInt(value, &min, &max, ':') != 2) max = min; if (min > max) return 0; iupMatrixPrepareDrawData(ih); if (ih->data->need_calcsize) iupMatrixAuxCalcSizes(ih); if (ih->data->lines.sizes[0] && ih->data->columns.sizes[0]) iMatrixDrawTitleCorner(ih); if (type == IMAT_PROCESS_LIN) { iupMatrixDrawLineTitle(ih, min, max); iupMatrixDrawCells(ih, min, ih->data->columns.first, max, ih->data->columns.last); } else { iupMatrixDrawColumnTitle(ih, min, max); iupMatrixDrawCells(ih, ih->data->lines.first, min, ih->data->lines.last, max); } } else { iupMatrixAuxCalcSizes(ih); iMatrixDrawMatrix(ih); } iupMatrixDrawUpdate(ih); return 0; }
void iupMatrixDraw(Ihandle* ih, int update) { cdCanvasActivate(ih->data->cd_canvas); if (ih->data->need_calcsize) iupMatrixAuxCalcSizes(ih); iMatrixDrawMatrix(ih); ih->data->need_redraw = 0; if (update) iupMatrixDrawUpdate(ih); }