30:

31:  /* итерация по 4 самым старшим битам */

32:  for (i = 0; i < 16; i++) {

33:   SLsmg_gotorc(3 + i, 2 + col);

34:   SLsmg_write_char(i < 10 ? i + '0' : (i - 10) + 'A');

35:

36:   /* итерация по 4 самым младшим битам */

37:   for (j = 0; j < 16; j++) {

38:    SLsmg_gotorc(3 + i, col + 4 + (j * 2));

39:    SLsmg_write_char(n++);

40:   }

41:  }

42:

43:  SLsmg_set_char_set(0);

44: }

45:

46: int main (void) {

47:  struct winsize ws;

48:

49:  /* получить размеры терминала, подключенного к stdout */

50:  if (ioctl(1, TIOCGWINSZ, &ws)) {

51:   perror('сбой при получении размеров окна');

52:   return 1;

53:  }

54:

55:  SLtt_get_terminfо();

56:

57:  SLtt_Screen_Rows = ws.ws_row;

58:  SLtt_Screen_Cols = ws.ws_col;

59:

60:  SLsmg_init_smg();

61:  SLang_init_tty(-1, 0, 1);

62:

63:  drawCharSet(0, 0, 'Normal Character Set');

64:  drawCharSet(40, 1, 'Alternate Character Set');

65:

66:  SLsmg_refresh();

67:  SLang_getkey();

68:

69:  SLsmg_gotorc(SLtt_Screen_Rows - 1, 0);

70:  SLsmg_refresh();

71:  SLsmg_reset_smg();

72:  SLang_reset_tty();

73:

74:  return 0;

75: }

24.2.9. Использование цвета

Библиотека S-Lang упрощает процесс добавления цветов в приложения. Она позволяет использовать палитру, состоящую из 256 элементов[171], каждый из которых определяет цвет переднего плана и фона. В большинстве приложений используется элемент палитры для одного визуализируемого объекта, например, рамки окна или пункта списка. Настроить цвета палитры можно с помощью функции SLtt_set_color().

void SLtt_set_color(int entry, char * name, char * fg, char * bg);

Первый параметр определяет модифицируемый элемент палитры. Параметр name в настоящий момент игнорируется и должен быть равен NULL. Два последних элемента задают новые цвета переднего плана и фона для данного элемента палитры. В табл. 24.2 приведен список цветов, которые поддерживает библиотека S-Lang; fg и bg должны представлять строки, содержащие имя используемого цвета. Все цвета в левой колонке таблицы могут использоваться как для переднего плана, так и для фона. Цвета в правой колонке таблицы могут служить только в качестве цветов переднего плана. Попытка использования этих цветов для фона может привести к непредсказуемым результатам[172].

Таблица 24.2. Цвета в S-Lang

Передний план и фон Передний план
black gray
red brightred
green brightgreen
brown yellow
blue brightblue
magenta brightmagenta
cyan brightcyan
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату