void iupMatrixAuxCalcSizes(Ihandle* ih) { iMatrixAuxFillSizeVec(ih, IMAT_PROCESS_COL); iMatrixAuxFillSizeVec(ih, IMAT_PROCESS_LIN); iMatrixAuxUpdateVisibleSize(ih, IMAT_PROCESS_COL); iMatrixAuxUpdateVisibleSize(ih, IMAT_PROCESS_LIN); /* when removing lines the first can be positioned after the last line */ if (ih->data->lines.first > ih->data->lines.num-1) { ih->data->lines.first_offset = 0; if (ih->data->lines.num==ih->data->lines.num_noscroll) ih->data->lines.first = ih->data->lines.num_noscroll; else ih->data->lines.first = ih->data->lines.num-1; } if (ih->data->columns.first > ih->data->columns.num-1) { ih->data->columns.first_offset = 0; if (ih->data->columns.num==ih->data->columns.num_noscroll) ih->data->columns.first = ih->data->columns.num_noscroll; else ih->data->columns.first = ih->data->columns.num-1; } /* make sure scroll pos is consistent */ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL); iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN); ih->data->need_calcsize = 0; }
void iupMatrixAuxCalcSizes(Ihandle* ih) { iMatrixAuxFillSizeVec(ih, IMAT_PROCESS_COL); iMatrixAuxFillSizeVec(ih, IMAT_PROCESS_LIN); iMatrixAuxUpdateVisibleSize(ih, IMAT_PROCESS_COL); iMatrixAuxUpdateVisibleSize(ih, IMAT_PROCESS_LIN); /* when removing lines the first can be positioned after the last line */ if (ih->data->lines.first > ih->data->lines.num-1) ih->data->lines.first = ih->data->lines.num-1; if (ih->data->columns.first > ih->data->columns.num-1) ih->data->columns.first = ih->data->columns.num-1; iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL); iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN); ih->data->need_calcsize = 0; }