Exemplo n.º 1
0
/* Draw a frame */
static void frame(WINDOW *win, int starty, int startx, int endy, int endx, char *label)
{

	if(opts->color)
	{
		init_pair(DEFAULT_COLOR, COLOR_BLACK, COLOR_WHITE);
		wattron(win, COLOR_PAIR(DEFAULT_COLOR));
	}

	/* Horizontal lines */
	mvwhline(win, starty, startx, 0, endx - startx);
	mvwhline(win, endy, startx, 0, endx - startx);

	/* Vertical lines */
	mvwvline(win, starty, startx, 0, endy - starty);
	mvwvline(win, starty, endx - 1, 0, endy - starty);

	/* Corners */
	mvwhline(win, starty, startx, ACS_ULCORNER, 1);
	mvwhline(win, endy, startx, ACS_LLCORNER, 1);
	mvwhline(win, starty, endx - 1, ACS_URCORNER, 1);
	mvwhline(win, endy, endx - 1, ACS_LRCORNER, 1);

	/* Title */
	mvwprintwc(win, starty, startx + 2, DEFAULT_COLOR, "%s", label);

	if(opts->color)
		wattroff(win, COLOR_PAIR(DEFAULT_COLOR));
}
Exemplo n.º 2
0
/* Draw an usage bar in System tab */
static void draw_bar(WINDOW *win, const SizeInfo info, Labels *data, int bar)
{
	int i, line, color, bar_count, adjust = 0;
	static int before = 0;
	const int val = 39, start = 46, end = info.width - 3, size = end - start;
	double percent;

	if((bar == SWAP && data->m_data->swap_total == 0) || (bar != SWAP && data->m_data->mem_total == 0))
		return;

	line      = bar - USED + LINE_8;
	color     = YELLOW_BAR_COLOR + bar - USED;
	before    = (bar == USED) ? 0 : before;
	percent   = (double) data->m_data->mem_usage[bar - USED] / ((bar == SWAP) ? data->m_data->swap_total : data->m_data->mem_total);
	bar_count = (int) roundf(percent * (size - 1));
	if(0.0 < percent && bar_count < 1)
	{
		bar_count = 1;
		adjust    = 1;
	}

	/* Write percentage + delimiters */
	mvwprintwc(win, line, val,   LABEL_VALUE_COLOR, "%.2f%%", percent * 100);
	mvwprintwc(win, line, start, DEFAULT_COLOR, "[");
	mvwprintwc(win, line, end,   DEFAULT_COLOR, "]");

	/* Clean existing bar */
	for(i = 0; i < size - 1; i++)
		mvwprintwc(win, line, start + 1 + i, DEFAULT_COLOR, " ");

	/* Draw bar */
	for(i = 0; i < bar_count; i++)
	{
		if(opts->color)
			mvwprintwc(win, line, start + 1 + before + i, color, " ");
		else
			mvwprintw(win,  line, start + 1 + before + i, "|");
	}

	before += bar_count - adjust;
}
Exemplo n.º 3
0
/* The main window (title, tabs, footer) */
static void main_win(WINDOW *win, const SizeInfo info, Labels *data)
{
	int i, cpt = 2;

	if(opts->color)
	{
		init_pair(DEFAULT_COLOR, COLOR_BLACK, COLOR_WHITE);
		wattrset(win, COLOR_PAIR(DEFAULT_COLOR));
	}
	wclrscr(win);
	box(win, 0 , 0);

	mvwprintwc(win, TITLE_LINE, info.width / 2 - strlen(PRGNAME) / 2, TITLE_COLOR, PRGNAME);
	mvwprintwc(win, HEADER_LINE, 2, DEFAULT_COLOR, PRGNAME);
	mvwprintwc(win, HEADER_LINE, info.width / 2, DEFAULT_COLOR, data->tab_about[VERSIONSTR]);

	for(i = 1; i < info.width - 1; i++)
		mvwprintwc(win, TABS_LINE, i, INACTIVE_TAB_COLOR, " ");
	for(i = NO_CPU; i <= NO_ABOUT; i++)
	{
		if(i == page && opts->color)
			mvwprintwc(win, TABS_LINE, cpt, ACTIVE_TAB_COLOR, data->objects[i]);
		else if(i == page && !opts->color)
			mvwprintw(win, TABS_LINE, cpt++, "[%s]", data->objects[i]);
		else
			mvwprintwc(win, TABS_LINE, cpt, INACTIVE_TAB_COLOR, data->objects[i]);

		cpt += strlen(data->objects[i]) + 2;
	}

	wrefresh(win);
}
Exemplo n.º 4
0
/* Draw an usage bar in System tab */
static void draw_bar(WINDOW *win, const SizeInfo info, Labels *data, int bar)
{
	int i, line, color, bar_count;
	const int val = 39, start = 46, end = info.width - 3, size = end - start;
	static double before;
	double percent;

	line      = bar - USED + LINE_8;
	color     = YELLOW_BAR_COLOR + bar - USED;
	before    = (bar == USED || bar == SWAP) ? 0 : before;
	percent   = (double) strtol(data->tab_system[VALUE][bar], NULL, 10) /
	            strtol(strstr(data->tab_system[VALUE][bar], "/ ") + 2, NULL, 10);
	percent   = (isnan(percent)) ? 0.00 : percent;
	bar_count = (int) roundf(percent * (size - 1));
	bar_count = (0.0 < percent && bar_count < 1) ? 1 : bar_count;

	/* Write percentage + delimiters */
	mvwprintwc(win, line, val,   LABEL_VALUE_COLOR, "%.2f%%", percent * 100);
	mvwprintwc(win, line, start, DEFAULT_COLOR, "[");
	mvwprintwc(win, line, end,   DEFAULT_COLOR, "]");

	/* Clean existing bar */
	for(i = 0; i < size - 1; i++)
		mvwprintwc(win, line, start + 1 + i, DEFAULT_COLOR, " ");

	/* Draw bar */
	for(i = 0; i < bar_count; i++)
	{
		if(opts->color)
			mvwprintwc(win, line, start + 1 + before * size + i, color, " ");
		else
			mvwprintw(win,  line, start + 1 + before * size + i, "|");
	}

	before += percent;
}
Exemplo n.º 5
0
/* About tab */
static void ntab_about(WINDOW *win, const SizeInfo info, Labels *data)
{
	char *part2 = strdup(data->tab_about[DESCRIPTION]);
	const char *part1 = strsep(&part2, "\n");

	/* About CPU-X frame */
	frame(win, LINE_0, info.start, LINE_5, info.width - 1, "");
	mvwprintwc(win, LINE_2, 4,   DEFAULT_COLOR, "%s", part1);
	mvwprintwc(win, LINE_3, 4,   DEFAULT_COLOR, "%s", part2);

	frame(win, LINE_6, info.start, LINE_10, info.width - 1, data->objects[FRAMABOUT]);
	mvwprintwc(win, LINE_7, 20,  DEFAULT_COLOR, "%s", data->tab_about[VERSIONSTR]);
	mvwprintwc(win, LINE_8, 20,  DEFAULT_COLOR, "%s", data->tab_about[AUTHOR]);
	mvwprintwc(win, LINE_9, 20,  DEFAULT_COLOR, "%s", data->tab_about[SITE]);

	frame(win, LINE_11, info.start, LINE_16, info.width - 1, data->objects[FRAMLICENSE]);
	mvwprintwc(win, LINE_12, 20, DEFAULT_COLOR, "%s", data->tab_about[COPYRIGHT]);
	mvwprintwc(win, LINE_14, 6,  DEFAULT_COLOR, "%s", data->tab_about[LICENSE]);
	mvwprintwc(win, LINE_15, 10, DEFAULT_COLOR, "%s", data->tab_about[NOWARRANTY]);

	wrefresh(win);
}
Exemplo n.º 6
0
/* About tab */
static void ntab_about(WINDOW *win, const SizeInfo info, Labels *data)
{
	char *part2 = strdup(data->objects[LABDESCRIPTION]);
	const char *part1 = strsep(&part2, "\n");

	/* About CPU-X frame */
	frame(win, LINE_0, info.start, LINE_5, info.width - 1, "");
	mvwprintwc(win, LINE_2, 4,   DEFAULT_COLOR, "%s", part1);
	mvwprintwc(win, LINE_3, 4,   DEFAULT_COLOR, "%s", part2);

	frame(win, LINE_6, info.start, LINE_10, info.width - 1, data->objects[FRAMABOUT]);
	mvwprintwc(win, LINE_7, 20,  DEFAULT_COLOR, "%s", data->objects[LABVERSION]);
	mvwprintwc(win, LINE_8, 20,  DEFAULT_COLOR, "%s", data->objects[LABAUTHOR]);
	mvwprintwc(win, LINE_9, 20,  DEFAULT_COLOR, "%s", "GitHub : https://github.com/X0rg");

	frame(win, LINE_11, info.start, LINE_16, info.width - 1, data->objects[FRAMLICENSE]);
	mvwprintwc(win, LINE_12, 20, DEFAULT_COLOR, "%s", PRGCPYR);
	mvwprintwc(win, LINE_14, 4,  DEFAULT_COLOR, "%s", data->objects[LABLICENSE]);
	mvwprintwc(win, LINE_15, 30, DEFAULT_COLOR, "%s", "GPLv3");

	wrefresh(win);
}
Exemplo n.º 7
0
/* Display active Test in Caches tab */
static void print_activetest(WINDOW *win, Labels *data)
{
	if(HAS_BANDWIDTH)
		mvwprintwc(win, LINE_16, 12, DEFAULT_COLOR, "%s", data->w_data->test_name[opts->bw_test]);
}
Exemplo n.º 8
0
/* Display active Core in CPU tab */
static void print_activecore(WINDOW *win)
{
	char buff[16];
	sprintf(buff, _("Core #%i"), opts->selected_core);
	mvwprintwc(win, LINE_17, 4, DEFAULT_COLOR, buff);
}