bool draw_lineno(struct view *view, unsigned int lineno) { char number[10]; int digits3 = view->digits < 3 ? 3 : view->digits; int max = MIN(VIEW_MAX_LEN(view), digits3); char *text = NULL; chtype separator = opt_line_graphics ? ACS_VLINE : '|'; if (!opt_show_line_numbers) return FALSE; lineno += view->pos.offset + 1; if (lineno == 1 || (lineno % opt_line_number_interval) == 0) { static char fmt[] = "%1ld"; fmt[1] = '0' + (view->digits <= 9 ? digits3 : 1); if (string_format(number, fmt, lineno)) text = number; } if (text) draw_chars(view, LINE_LINE_NUMBER, text, max, TRUE); else draw_space(view, LINE_LINE_NUMBER, max, digits3); return draw_graphic(view, LINE_DEFAULT, &separator, 1, TRUE); }
static bool draw_lineno_custom(struct view *view, struct view_column *column, unsigned int lineno) { char number[10]; unsigned long digits3 = column->width < 3 ? 3 : column->width; int max = MIN(VIEW_MAX_LEN(view), digits3); char *text = NULL; chtype separator = opt_line_graphics ? ACS_VLINE : '|'; struct line_number_options *opts = &column->opt.line_number; int interval = opts->interval > 0 ? opts->interval : 5; if (!column->opt.line_number.display) return false; if (lineno == 1 || (lineno % interval) == 0) { static char fmt[] = "%ld"; fmt[1] = '0' + (digits3 <= 9 ? digits3 : 1); if (string_format(number, fmt, lineno)) text = number; } if (text) draw_chars(view, LINE_LINE_NUMBER, text, -1, max, true); else draw_space(view, LINE_LINE_NUMBER, max, digits3); return draw_graphic(view, LINE_DEFAULT, &separator, 1, true); }
static gint GeomDrawSpaceFill(gdouble scaleBall) { int i; for(i = 0;i<Ncenters;i++) { if(!ShowHAtomOrb && strcmp("H",GeomOrb[i].Symb)==0) continue; draw_space(i,scaleBall); } return TRUE; }
bool draw_field(struct view *view, enum line_type type, const char *text, int width, enum align align, bool trim) { int max = MIN(VIEW_MAX_LEN(view), width + 1); int col = view->col; if (!text) return draw_space(view, type, max, max); if (align == ALIGN_RIGHT) { int textlen = strlen(text); int leftpad = max - textlen - 1; if (leftpad > 0) { if (draw_space(view, type, leftpad, leftpad)) return TRUE; max -= leftpad; col += leftpad;; } } return draw_chars(view, type, text, max - 1, trim) || draw_space(view, LINE_DEFAULT, max - (view->col - col), max); }