Lines Matching full:width
114 * used for the actual width calculations.
126 size_t ewidth, min1, min2, wanted, width, xwidth; in tblcalc() local
161 /* Handle explicit width specifications. */ in tblcalc()
164 dp->layout->width == 0 && in tblcalc()
167 dp->layout->width = in tblcalc()
169 if (col->width < dp->layout->width) in tblcalc()
170 col->width = dp->layout->width; in tblcalc()
177 * Calculate an automatic width. in tblcalc()
181 width = tblcalc_data(tbl, in tblcalc()
185 dp->layout->width ? dp->layout->width : in tblcalc()
194 * recording the minimum width for each group. in tblcalc()
204 g->wanted = width; in tblcalc()
208 } else if ((*gp)->wanted < width) in tblcalc()
209 (*gp)->wanted = width; in tblcalc()
214 * The minimum width of columns explicitly specified in tblcalc()
222 if (col->width < 1) in tblcalc()
223 col->width = 1; in tblcalc()
226 * Column spacings are needed for span width in tblcalc()
243 width = tbl->cols[icol].width; in tblcalc()
245 width += tbl->cols[icol].spacing; in tblcalc()
246 if (g->wanted <= width) { in tblcalc()
250 (*gp)->wanted -= width; in tblcalc()
262 * Find the smallest and second smallest column width in tblcalc()
268 width = tbl->cols[icol].width; in tblcalc()
269 if (min1 > width) { in tblcalc()
271 min1 = width; in tblcalc()
272 } else if (min1 < width && min2 > width) in tblcalc()
273 min2 = width; in tblcalc()
277 * Find the minimum wanted width in tblcalc()
279 * and mark the columns wanting that width. in tblcalc()
286 if (tbl->cols[icol].width == min1) in tblcalc()
290 width = min1 + (g->wanted - 1) / necol + 1; in tblcalc()
291 if (width > min2) in tblcalc()
292 width = min2; in tblcalc()
293 if (wanted > width) in tblcalc()
294 wanted = width; in tblcalc()
303 if (tbl->cols[icol].width != min1) in tblcalc()
306 tbl->cols[icol].width += g->wanted; in tblcalc()
310 tbl->cols[icol].width = wanted; in tblcalc()
324 * Find maximum width of the columns to equalize. in tblcalc()
325 * Find total width of the columns *not* to maximize. in tblcalc()
332 if (col->width > col->nwidth) in tblcalc()
333 col->decimal += (col->width - col->nwidth) / 2; in tblcalc()
336 if (ewidth < col->width) in tblcalc()
337 ewidth = col->width; in tblcalc()
342 xwidth += col->width; in tblcalc()
347 * Update total width of the columns not to maximize. in tblcalc()
355 if (col->width == ewidth) in tblcalc()
358 xwidth += ewidth - col->width; in tblcalc()
359 col->width = ewidth; in tblcalc()
365 * available width, deducting 3n margins between columns. in tblcalc()
366 * Distribute the available width evenly. in tblcalc()
378 * Emulate a bug in GNU tbl width calculation that in tblcalc()
397 col->width = (double)xwidth * ++necol / nxcol in tblcalc()
400 col->width--; in tblcalc()
401 ewidth += col->width; in tblcalc()
418 if (col != NULL && col->width < sz) in tblcalc_data()
419 col->width = sz; in tblcalc_data()
467 if (col != NULL && col->width < msz) in tblcalc_literal()
468 col->width = msz; in tblcalc_literal()
509 if (col != NULL && col->width < totsz) in tblcalc_number()
510 col->width = totsz; in tblcalc_number()
514 /* Measure the width of the integer part. */ in tblcalc_number()
537 /* Update the maximum total width seen so far. */ in tblcalc_number()
541 if (col->nwidth > col->width) in tblcalc_number()
542 col->width = col->nwidth; in tblcalc_number()