Данный виджет позволяет выводить на экран текст заданный массивом строк. Есть возможность ожидать от пользователя нажатия определённой клавиши. Так же можно не пересоздавая виджет менять в нём текст.
Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось.
В остальных функциях в качестве label нужно передавать ссылку на созданный виджет.
CDKLABEL *newCDKLabel (CDKSCREEN *cdkscreen, int xpos, int ypos, char **message, int messageLines, boolean box, boolean shadow);
Уничтожение виджета.
void destroyCDKLabel (CDKLABEL *label);
Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKLabel (CDKLABEL *label);
Установика атрибутов фона виджета attribute.
void setCDKLabelBackgroundAttrib (CDKLABEL *label, chtype attribute);
Прорисовка виджета.
void drawCDKLabel (CDKLABEL *label, boolean box);
Активация виджета. Для данного виджета то же самое что и drawCDKLabel.
void activateCDKLabel (CDKLABEL *label, chtype unused);
Ожидание нажатия клавиши key.
char waitCDKLabel (CDKLABEL *label, char key);
Установка строк выводимых в виджете.
void setCDKLabelMessage (CDKLABEL *label, char **message, int messageLines);
void setCDKLabel (CDKLABEL *label, char **message, int messageLines, boolean box);
Получение содержимое виджета и количества строк messageLines.
chtype **getCDKLabelMessage (CDKLABEL *label, int *messageLines);
Перемещение виджета.
void moveCDKLabel (CDKLABEL *label, int xpos, int ypos, boolean relative, boolean refresh);
Управление положением виджета клавишами курсора.
void positionCDKLabel (CDKLABEL *label);
Есть ли рамка у виджета.
boolean getCDKLabelBox(CDKLABEL *label);
Изменить наличие рамки в виджете.
void setCDKLabelBox (CDKLABEL *label, boolean box);
Установка атрибутов attribute для рамки.
void setCDKLabelBoxAttribute (CDKLABEL *label, chtype attribute);
Установка символа character выводимого по горизонтали рамки.
void setCDKLabelHorizontalChar (CDKLABEL *label, chtype character);
Установка символа character выводимого по вертикали рамки.
void setCDKLabelVerticalChar (CDKLABEL *label, chtype character);
Установка символа character выводимого в левом нижнем углу рамки.
void setCDKLabelLLChar (CDKLABEL *label, chtype character);
Установка символа character выводимого в правом нижнем углу рамки.
void setCDKLabelLRChar (CDKLABEL *label, chtype character);
Установка символа character выводимого в левом верхнем углу рамки.
void setCDKLabelULChar (CDKLABEL *label, chtype character);
Установка символа character выводимого в правом верхнем углу рамки.
void setCDKLabelURChar (CDKLABEL *label, chtype character);
/*
w_label.c - пример простой программы демонстрирующей
возможности виджета Label библиотеки CDK.
(C) Copyright 2006 Бердников Александр alexber220@yandex.ru
Данная программа распростаняется по лицензии BSD.
*/
#include <cdk.h>
int main(int argc, char *argv[])
{
CDKSCREEN *cdkscreen;
CDKLABEL *label;
WINDOW *screen;
char *mesg[4];
// инициализация
screen = initscr();
cdkscreen = initCDKScreen(screen);
initCDKColor();
//определяем строки для вывода
mesg[0] = "<#HL(40)>";
mesg[1] = "Выравнивание по левому краю";
mesg[2] = "Выравнивание по центру";
mesg[3] = "Выравнивание по правому краю";
//создаём виджет типа метка
label = newCDKLabel(cdkscreen, 10, 0, mesg, 4, TRUE, FALSE);
//прорисовываем её
drawCDKLabel(label, TRUE);
//ждём нажатия пробела
waitCDKLabel(label, ' ');
//освобождаем ресурсы
destroyCDKLabel(label);
destroyCDKScreen(cdkscreen);
endCDK();
return 0;
}