Данный виджет позволяет осуществлять ввод строки по шаблону. В шаблоне указывается набор допустимых символов для каждой позиции.
Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось.
В остальных функциях в качестве template нужно передавать ссылку на созданный виджет.
CDKTEMPLATE *newCDKTemplate (CDKSCREEN *cdkscreen, int xpos, int ypos, char *title, char *label, char *plate, char *overlay, boolean box, boolean shadow);
Уничтожение виджета.
void destroyCDKTemplate (CDKTEMPLATE *template);
Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKTemplate (CDKTEMPLATE *template);
Установика атрибутов фона виджета attribute.
void setCDKTemplateBackgroundAttrib (CDKTEMPLATE *template, chtype attribute);
Прорисовка виджета.
void drawCDKTemplate (CDKTEMPLATE *template, boolean box);
Активация виджета. Возвращаемое значение содержит введённую строку.
Если template->exitType равно vNORMAL при выборе подпункта меню то выход осуществлён клавишами Enter или Tab и vESCAPE_HIT при нажатии Esc
В качестве actions можно передать 0.
char *activateCDKTemplate (CDKTEMPLATE *template, chtype * actions);
Получение строки введённой в виджете.
char *getCDKTemplateValue (CDKTEMPLATE *template);
Учтановка строки value в поле ввода.
void setCDKTemplateValue (CDKTEMPLATE *template, char *value);
Очистка поля ввода.
void cleanCDKTemplate (CDKTEMPLATE *template);
Установка состояния виджета.
void setCDKTemplate (CDKTEMPLATE *template, char *value, boolean box);
Получение строки шаблона.
char *mixCDKTemplate (CDKTEMPLATE *template);
Установка шаблона plate.
char *unmixCDKTemplate (CDKTEMPLATE *template, char *plate);
Получение минимального числа символов которые нужно ввести.
int getCDKTemplateMin (CDKTEMPLATE *template);
Установка минимального числа символов которые нужно ввести.
void setCDKTemplateMin (CDKTEMPLATE *template, int minimum);
Перемещение виджета.
void moveCDKTemplate (CDKTEMPLATE *template, int xpos, int ypos, boolean relative, boolean refresh);
Управление положением виджета клавишами курсора.
void positionCDKTemplate (CDKTEMPLATE *template);
Есть ли рамка у виджета.
boolean getCDKTemplateBox (CDKTEMPLATE *template);
Изменить наличие рамки в виджете.
void setCDKTemplateBox (CDKTEMPLATE *template, boolean box);
Установка атрибутов attribute для рамки.
void setCDKTemplateBoxAttribute (CDKTEMPLATE *template, chtype character);
Установка символа character выводимого по горизонтали рамки.
void setCDKTemplateHorizontalChar (CDKTEMPLATE *template, chtype character);
Установка символа character выводимого по вертикали рамки.
void setCDKTemplateVerticalChar (CDKTEMPLATE *template, chtype character);
Установка символа character выводимого в левом нижнем углу рамки.
void setCDKTemplateLLChar (CDKTEMPLATE *template, chtype character);
Установка символа character выводимого в правом нижнем углу рамки.
void setCDKTemplateLRChar (CDKTEMPLATE *template, chtype character);
Установка символа character выводимого в левом верхнем углу рамки.
void setCDKTemplateULChar (CDKTEMPLATE *template, chtype character);
Установка символа character выводимого в правом верхнем углу рамки.
void setCDKTemplateURChar (CDKTEMPLATE *template, chtype character);
/*
w_template.c - пример простой программы демонстрирующей
возможности виджета Template библиотеки CDK.
Программа запрашивает ввод номера телефона.
(C) Copyright 2006 Бердников Александр alexber220@yandex.ru
Данная программа распростаняется по лицензии BSD.
*/
#include <cdk.h>
int main(int argc, char *argv[])
{
CDKSCREEN *cdkscreen;
CDKENTRY *CDKPhone;
WINDOW *screen;
char *phone;
// инициализация
screen = initscr();
cdkscreen = initCDKScreen(screen);
initCDKColor();
//создаём виджет для ввода телефона
CDKPhone = newCDKTemplate(cdkscreen, CENTER, CENTER,
"", "Телефон:", "(###) #######","(___) _______",
FALSE, FALSE);
//обновляем экран
refreshCDKScreen(cdkscreen);
//ждём ввода
phone = activateCDKTemplate(CDKPhone, 0);
//освобождаем ресурсы
destroyCDKEntry(CDKPhone);
destroyCDKScreen(cdkscreen);
endCDK();
return 0;
}