Читаем Разработка приложений в среде Linux. Второе издание полностью

 8: /* отображает таблицу, содержащую 256 символов из одного набора символов,

 9:    начиная со столбца col. Поверх таблицы отображается метка 'label',

10:    а альтернативный набор символов будет отображаться в том случае,

11:    если isAlternate будет иметь ненулевое значение */

12: static void drawCharSet(int col, int isAlternate, char * label) {

13:  int i, j;

14:  int n = 0;

15:

16:  /* нарисовать прямоугольник */

17:  SLsmg_draw_box(0, col, 20, 38);

18:

19:  /* центрировать надпись */

20:  SLsmg_gotorc(0, col + 2);

21:  SLsmg_write_string(label);

22:

23:

24:  /* нарисовать горизонтальную линию */

25:  SLsmg_gotorc(2, col + 4);

26:  SLsmg_write_string("0123456789ABCDEF");

27:

28:  /* задать используемый набор символов */

29:  SLsmg_set_char_set(isAlternate);

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: }

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

Библиотека 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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных