/** * Callback function to populate rows of the show variable * command * * @param data The context point * @return The next row or NULL if end of rows */ static RESULT_ROW * status_row(RESULTSET *result, void *data) { VARCONTEXT *context = (VARCONTEXT *)data; RESULT_ROW *row; char buf[80]; if (status[context->index].name) { if (context->like && maxinfo_pattern_match(context->like, status[context->index].name)) { context->index++; return status_row(result, data); } row = resultset_make_row(result); resultset_row_set(row, 0, status[context->index].name); switch (status[context->index].type) { case VT_STRING: resultset_row_set(row, 1, (char *)(*status[context->index].func)()); break; case VT_INT: snprintf(buf, 80, "%ld", (long)(*status[context->index].func)()); resultset_row_set(row, 1, buf); break; } context->index++; return row; } return NULL; }
void status_redraw() { struct view_rec *v; struct mark_rec *m; struct sheet *s; //v= (struct view_rec *)Mem::vmem_trans (active_view); //s= (struct sheet *)Mem::vmem_trans (active_sheet); v = my_active_view; // mod 8-27-93 s = my_active_sheet; // mod 8-25-93 statw.clearwin(YELLOW, _RED,' '); statw.put(0,62, "R C"); status_name(); m= get_mark (v->cursor); status_block (v->block_active==view_rec::bk_on ? v->block_mode : -1); DBG_STATUS(dout<<"status redraw row = "<<(m->row)<<endl); DBG_STATUS(dout<<"status redraw col = "<<(m->col)<<endl); status_row (m->row); status_col (m->col); status_delta (s->changed); status_insertmode (v->flags&1); status_indentmode (v->flags&2); status_numlockmode (); /* other indicators */ statw.put(0, 43, "ESC=menus F1=Help"); /* update color */ statw.highlight(0,0,settings.colors[STATUS_COLORS][NORMAL_COLOR],statw.get_width()); //statw.show(); }