Esempio n. 1
0
void
TermView::_Init()
{
	SetFont(be_fixed_font);

	font_height height;
	GetFontHeight(&height);
	fFontHeight = (int)(ceilf(height.ascent) + ceilf(height.descent)
		+ ceilf(height.leading));
	fFontWidth = (int)be_fixed_font->StringWidth("X");
	fTerm = vterm_new(kDefaultHeight, kDefaultWidth);

	fTermScreen = vterm_obtain_screen(fTerm);
	vterm_screen_set_callbacks(fTermScreen, &sScreenCallbacks, this);
	vterm_screen_reset(fTermScreen, 1);

	vterm_parser_set_utf8(fTerm, 1);

	VTermScreenCell cell;
	VTermPos firstPos;
	firstPos.row = 0;
	firstPos.col = 0;
	_GetCell(firstPos, cell);

	rgb_color background;
	background.red = cell.bg.red;
	background.green = cell.bg.green;
	background.blue = cell.bg.blue;
	background.alpha = 255;

	SetViewColor(background);
	SetLineTerminator("\n");
}
Esempio n. 2
0
int
vterm_init(vterm_state_t *s, int width, int height, volatile uint16_t *buffer) 
{
    memset(s, 0, sizeof(vterm_state_t));

    s->magic = VTERM_MAGIC;
    s->width = width;
    s->height = height;
    s->buffer = buffer;
    s->fgColour = VTERM_LIGHT_GRAY;
    s->bgColour = VTERM_BLACK;
    s->autoRenderUpdate = true;

    /* Initialise virtual terminal. */
    dprintf("Initialising %d x %d Virtual Terminal object...\n", width, height);
    s->vt = vterm_new(s->height, s->width);
    if (!s->vt) {
        ROS_ERROR("Failed to create terminal.\n");
        return EINVALID;
    }
    
    /* Grab the virtual screen & state object. */
    s->vts = vterm_obtain_screen(s->vt);
    s->vtstate = vterm_obtain_state(s->vt);
    assert(s->vts && s->vtstate);
    
    /* Set parameters. */
    vterm_parser_set_utf8(s->vt, true);
    vterm_state_set_bold_highbright(s->vtstate, true);
    vterm_screen_reset(s->vts, 1);

    return ESUCCESS;
}
Esempio n. 3
0
TermView::TermView()
	:
	BView("TermView", B_WILL_DRAW | B_FRAME_EVENTS)
{
	SetFont(be_fixed_font);

	font_height height;
	GetFontHeight(&height);
	fFontHeight = height.ascent + height.descent + height.leading;
	fFontWidth = be_fixed_font->StringWidth("X");
	fTerm = vterm_new(kDefaultHeight, kDefaultWidth);

	fTermScreen = vterm_obtain_screen(fTerm);
	vterm_screen_set_callbacks(fTermScreen, &sScreenCallbacks, this);
	vterm_screen_reset(fTermScreen, 1);

	vterm_parser_set_utf8(fTerm, 1);
}
Esempio n. 4
0
File: term.c Progetto: cantora/aug
void term_init(struct aug_term *term, int rows, int cols) {
	VTermScreen *vts;
	VTermState *state;

	term->master = 0;
	term->vt = vterm_new(rows, cols);
	state = vterm_obtain_state(term->vt);
	/* have to cast default_color because the api isnt const correct */
	vterm_state_set_default_colors(state, &VTERM_DEFAULT_COLOR, &VTERM_DEFAULT_COLOR);	
	vterm_parser_set_utf8(term->vt, 1);

	vts = vterm_obtain_screen(term->vt);
	vterm_screen_enable_altscreen(vts, 1);
	vterm_screen_set_damage_merge(vts, VTERM_DAMAGE_SCROLL);
	vterm_screen_reset(vts, 1);

	term_inject_clear(term);
	term->user = NULL;
	term->io_callbacks.refresh = NULL;

	AUG_LOCK_INIT(term);
}
Esempio n. 5
0
VTermMM::VTermMM(int rows, int columns)
  : fd(0),
    foreground(VTERMMM_WHITE),
    background(VTERMMM_BLACK),
    cells(rows, vrow(columns)),
    reverse(false),
    invalid_region()
{
  for(int row = 0; row < rows; ++row)
  {
    for(int col = 0; col < columns; ++col)
    {
      cells[row][col].SetX(col);
      cells[row][col].SetY(row);
    }
  }
  cursor.row = 0;
  cursor.col = 0;
  invalidate(0, rows, 0, columns);
  _term = vterm_new(rows, columns);
  vterm_parser_set_utf8(_term, 1);
  VTermState *vts = vterm_obtain_state(_term);
  vterm_state_set_callbacks(vts, &vterm_callbacks, this);
}