Esempio n. 1
0
static int putxy(WINDOW *win, int width, int *i, int *y, int *x, char *str)
{
    if ((unsigned char) str[0] > 0x7F) {
        wchar_t dest[2];
        int bytes = mbtowc(dest, &str[0], 3) - 1;

        if (bytes >= 0) {
            /* To deal with non-latin characters that can take
               up more than one character's alotted width, 
               with offset x by wcwidth(character) rather than 1 */

            /* Took me forever to find that function, thanks
               Andreas (newsbeuter) for that one. */

            int rwidth = wcwidth(dest[0]);
            if (rwidth < 0)
                rwidth = 1;
            if (rwidth > (width - *x))
                return 1;

            dest[1] = 0;
            mvwaddwstr(win, *y, *x, dest);
            *x += rwidth;
            *i += bytes;
        }
    } else
        mvwaddch(win, *y, (*x)++, str[0]);

    return 0;
}
Esempio n. 2
0
int t_mv_wprint(WINDOW *win, int x, int y, t_char *fmt, ...)
{
	wchar_t buf[MAX_PRINT_LEN];
	va_list args;
	va_start(args, fmt);
	vswprintf(buf, MAX_PRINT_LEN, fmt, args);
	va_end(args);

	return mvwaddwstr(win, y, x, buf);
}
Esempio n. 3
0
/* Also updates cursor. */
static void
update_cmdline_text(void)
{
	int attr;

	input_line_changed();

	werase(status_bar);

	attr = cfg.cs.color[CMD_LINE_COLOR].attr;
	wattron(status_bar, COLOR_PAIR(DCOLOR_BASE + CMD_LINE_COLOR) | attr);

	mvwaddwstr(status_bar, 0, 0, input_stat.prompt);
	if(input_stat.line != NULL)
		mvwaddwstr(status_bar, input_stat.prompt_wid/line_width,
				input_stat.prompt_wid%line_width, input_stat.line);
	update_cursor();
	wrefresh(status_bar);
}
Esempio n. 4
0
static void
cmd_ctrl_u(key_info_t key_info, keys_info_t *keys_info)
{
	input_stat.history_search = HIST_NONE;
	stop_completion();

	if(input_stat.index == 0)
		return;

	input_stat.len -= input_stat.index;

	input_stat.curs_pos = input_stat.prompt_wid;
	wcsdel(input_stat.line, 1, input_stat.index);

	input_stat.index = 0;

	werase(status_bar);
	mvwaddwstr(status_bar, 0, 0, input_stat.prompt);
	mvwaddwstr(status_bar, 0, input_stat.prompt_wid, input_stat.line);

	update_cmdline_text();
}
Esempio n. 5
0
void NYView::guiDrawCell(YCursor pos, const YDrawCell& cell)
{
    int x = pos.x();

    if(!fakeLine) {
        /* if this line is a fake, don't apply margins */
        x += marginLeft;
    }

    /*
     * TODO: reverse bg/fg... but... how set bg ?
    if ( cell.sel & YSelectionPool::Visual ) {
     }
     */
    int mAttributes = attribWhite;

    if(cell.foregroundColor().isValid()) {
        int rawcolor = cell.foregroundColor().rgb() & RGB_MASK;

        if(mAttributesMap.contains(rawcolor)) {
            mAttributes = mAttributesMap[ rawcolor ];
        } else {
            yzWarning() << "Unknown color from libyzis, cell.foregroundColor().name() is " << cell.foregroundColor().name() << endl;
        }
    }

    if(cell.hasSelection(yzis::SelectionAny)) {
        mAttributes |= A_REVERSE;  // TODO, reverse bg/fg
    }

    //if ( drawUnderline() ) mAttributes |= A_UNDERLINE;
    /* convert string to wide_char */
    QByteArray my_char = cell.content().toLocal8Bit();
    char* from_char = new char[ my_char.length() + 1 ];
    strcpy(from_char, my_char.constData());
    size_t needed = mbstowcs(NULL, from_char, strlen(from_char)) + 1;
    wchar_t* wide_char = (wchar_t*)malloc(needed * sizeof(wchar_t));
    mbstowcs(wide_char, from_char, strlen(from_char));
    wide_char[needed - 1] = '\0';
    wattron(editor, mAttributes);
    mvwaddwstr(editor, pos.y(), x, wide_char);
    wattroff(editor, mAttributes);
    free(wide_char);
    delete[] from_char;
}
Esempio n. 6
0
static void ex_draw()
{
  log_msg("EXCMD", "ex_draw");
  werase(ex.nc_win);

  if (ex.ex_state == EX_CMD_STATE)
    menu_draw(ex.menu);

  pos_T max = layout_size();
  wchar_t *wline = str2wide(ex.line);
  int len = 2 + wcswidth(wline, -1);
  int offset = MAX(len - (max.col - 1), 0);

  mvwaddch(ex.nc_win, 0, 0, ex.state_symbol);
  mvwaddwstr(ex.nc_win, 0, 1, &wline[offset]);
  mvwchgat(ex.nc_win, 0, 0, 1, A_NORMAL, ex.col_symb, NULL);
  mvwchgat(ex.nc_win, 0, 1, -1, A_NORMAL, ex.col_text, NULL);

  doupdate();
  curs_set(1);
  wmove(ex.nc_win, 0, (ex.curpos + 1) - offset);
  wnoutrefresh(ex.nc_win);
  free(wline);
}
Esempio n. 7
0
static void
show_1st(WINDOW *win, int line, wchar_t *buffer)
{
    (void) mvwaddwstr(win, line, 5, buffer);
}
Esempio n. 8
0
int
mvaddwstr(int y, int x, wchar_t *ws)
{
	return (mvwaddwstr(stdscr, y, x, ws));
}
Esempio n. 9
0
int t_mv_vwprint(WINDOW *win, int x, int y, t_char *fmt, va_list args)
{
	wchar_t buf[MAX_PRINT_LEN];
	vswprintf(buf, MAX_PRINT_LEN, fmt, args);
	return mvwaddwstr(win, y, x, buf);
}
main()
{
setlocale(LC_ALL, "en_US.UTF-8");
	WINDOW * mainwin;

 if ( (mainwin = initscr()) == NULL ) {
	fprintf(stderr, "Error initialising ncurses.\n");
	exit(EXIT_FAILURE);
    }
int height = 29;
int width = 80;

	mvaddstr(0, 0, "+------------------------------------------------------------------------------+");

	int u;
	for(u=1;u<height;u++)
	{
		mvaddstr(u,0,"|                                                                              |");
	}
	mvaddstr(height, 0, "+------------------------------------------------------------------------------+");

	/*setvbuf (stdout, NULL, _IONBF, 0);
	printf("asds \n");*/

	
	int gridHeight= 15;
	int gridWidth= 15;
	int** grid = createGrid(gridHeight,gridWidth);
	/*grid[2][2]=1;grid[3][2]=1;grid[2][1]=1;grid[2][3]=1;*//*grid[1][2]=1;*/
	grid[1][0]=1;grid[0][2]=1;grid[1][2]=1;grid[2][2]=1;grid[2][1]=1;
/*grid[4][4]=1;grid[4][3]=1;grid[4][5]=1;*/
	makeDisp(grid, gridHeight, gridWidth);sleep(3);
	int** newgrid;
	int o = 0;
	while(o<1)
	{
	/*usleep(125000);*/
	
	newgrid = onestep(grid, gridHeight, gridWidth);
	int i;
	/*for(i=0;i<gridHeight;i++)
		free(grid[i]);
	free(grid);*/

	/*printf("\n");*/
	printGrid(newgrid, gridHeight, gridWidth);
	o++;
	grid = newgrid;
	}


wchar_t* wstr = L"\u2593";
mvwaddwstr(mainwin, 1, 1, wstr);
    	refresh();sleep(2);
    	usleep(500000);
	mvaddstr(1, 2, "e");
    	refresh();
    	usleep(500000);
	mvaddstr(1, 3, "l");
    	refresh();
    	usleep(500000);
	mvaddstr(1, 4, "l");
    	refresh();
    	usleep(500000);
	mvaddstr(1, 5, "o");
    	refresh();
    	usleep(500000);
	mvaddstr(1, 6, "!");
    	refresh();
    	usleep(500000);


	delwin(mainwin);
	endwin();
	refresh();
	
	

	return 0;
}