Данный виджет позволяет осуществлять ввод строки. Можно задать максимально допустимое и минимально необходимое число символов. Есть возможность скрывать введённый символ заданным (что так необходимо при вводе пароля).
Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось.
В остальных функциях в качестве entry нужно передавать ссылку на созданный виджет.
CDKENTRY *newCDKEntry (CDKSCREEN *cdkscreen, int xpos, int ypos, char *title, char *label, chtype fieldAttribute, chtype fillerCharacter, EDisplayType displayType, int fieldWidth, int minimumLength, int maximumLength, boolean box, boolean shadow);
Уничтожение виджета.
void destroyCDKEntry (CDKENTRY *entry);
Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKEntry (CDKENTRY *entry);
Установика атрибутов фона виджета attribute.
void setCDKEntryBackgroundAttrib (CDKENTRY *entry, chtype attribute);
Прорисовка виджета.
void drawCDKEntry (CDKENTRY *entry, boolean box);
Активация виджета. Возвращаемое значение содержит введённую строку.
Если entry->exitType равно vNORMAL при выборе подпункта меню то выход осуществлён клавишами Enter или Tab и vESCAPE_HIT при нажатии Esc
В качестве actions можно передать 0.
char *activateCDKEntry (CDKENTRY *entry, chtype *actions);
Получение строки введённой в виджете.
char *getCDKEntryValue (CDKENTRY *entry);
Учтановка строки value в поле ввода.
void setCDKEntryValue (CDKENTRY *entry, char *value);
Очистка поля ввода.
void cleanCDKEntry (CDKENTRY *entry);
Установка состояния виджета.
void setCDKEntry (CDKENTRY *entry, char *value, int minimumLength, int maximumLength, boolean box);
Получение символа которым заполняется пустое пространство в строке ввода.
chtype getCDKEntryFillerChar(CDKENTRY *entry);
Установка символа которым заполняется пустое пространство в строке ввода.
void setCDKEntryFillerChar (CDKENTRY *entry, chtype character);
Получение символа который выводится при вводе в скрытом режиме.
chtype getCDKEntryHiddenChar (CDKENTRY *entry);
Установка символа который выводится при вводе в скрытом режиме.
void setCDKEntryHiddenChar (CDKENTRY *entry, chtype character);
Получение максимально допустимого количества вводимых символов.
int getCDKEntryMax (CDKENTRY *entry);
Установка максимально допустимого количества вводимых символов.
void setCDKEntryMax (CDKENTRY *entry, int maximum);
Получение минимального числа символов которые нужно ввести.
int getCDKEntryMin (CDKENTRY *entry);
Установка минимального числа символов которые нужно ввести.
void setCDKEntryMin (CDKENTRY *entry, int minimum);
Перемещение виджета.
void moveCDKEntry (CDKENTRY *entry, int xpos, int ypos, boolean relative, boolean refresh);
Управление положением виджета клавишами курсора.
void positionCDKEntry (CDKENTRY *entry);
Есть ли рамка у виджета.
boolean getCDKEntryBox (CDKENTRY *entry);
Изменить наличие рамки в виджете.
void setCDKEntryBox (CDKENTRY *entry, boolean box);
Установка атрибутов attribute для рамки.
void setCDKEntryBoxAttribute (CDKENTRY *entry, chtype character);
Установка символа character выводимого по горизонтали рамки.
void setCDKEntryHorizontalChar (CDKENTRY *entry, chtype character);
Установка символа character выводимого по вертикали рамки.
void setCDKEntryVerticalChar (CDKENTRY *entry, chtype character);
Установка символа character выводимого в левом нижнем углу рамки.
void setCDKEntryLLChar (CDKENTRY *entry, chtype character);
Установка символа character выводимого в правом нижнем углу рамки.
void setCDKEntryLRChar (CDKENTRY *entry, chtype character);
Установка символа character выводимого в левом верхнем углу рамки.
void setCDKEntryULChar (CDKENTRY *entry, chtype character);
Установка символа character выводимого в правом верхнем углу рамки.
void setCDKEntryURChar (CDKENTRY *entry, chtype character);
/*
w_entry.c - пример простой программы демонстрирующей
возможности виджета Entry библиотеки CDK.
Программа запрашивает ввод имени пользователя и пароля.
(C) Copyright 2006 Бердников Александр alexber220@yandex.ru
Данная программа распростаняется по лицензии BSD.
*/
#include <cdk.h>
int main(int argc, char *argv[])
{
CDKSCREEN *cdkscreen;
CDKENTRY *CDKEUsername, *CDKEPassword;
WINDOW *screen;
char *username, *password;
char temp[256], *mesg[10];
// инициализация
screen = initscr();
cdkscreen = initCDKScreen(screen);
initCDKColor();
//создаём виджет для ввода имени пользователя
CDKEUsername = newCDKEntry(cdkscreen, CENTER, CENTER,
"Ведите имя пользователя", ">",
A_NORMAL, '_', vCHAR,
20, 3, 10,
FALSE, FALSE);
//обновляем экран
refreshCDKScreen(cdkscreen);
//ждём ввода
username = activateCDKEntry(CDKEUsername, 0);
// выводим введённые данные
if (CDKEUsername->exitType == vNORMAL)
{
sprintf (temp, "(%s)", username);
mesg[0] = temp;
popupLabel (cdkscreen, mesg, 1);
}
//удаляем виджет
destroyCDKEntry(CDKEUsername);
//создаём виджет для ввода имени пользователя
CDKEPassword = newCDKEntry(cdkscreen, CENTER, CENTER,
"Ведите пароль", ">",
A_NORMAL, '_', vHMIXED,
20, 0, 20,
TRUE, FALSE);
// устанавливаем символ который будет выводиться в скрытом режиме вместо символа
setCDKEntryHiddenChar(CDKEPassword, '*');
//обновляем экран
refreshCDKScreen(cdkscreen);
//ждём ввода
password = activateCDKEntry(CDKEPassword, 0);
//удаляем виджет
destroyCDKEntry(CDKEPassword);
//освобождаем ресурсы
destroyCDKScreen(cdkscreen);
endCDK();
return 0;
}