Данный виджет аналогичен виджету Entry, только в отличии от него позволяет видеть сразу несколько строк.
Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось.
В остальных функциях в качестве mentry нужно передавать ссылку на созданный виджет.
CDKMENTRY *newCDKMentry (CDKSCREEN *cdkscreen, int xpos, int ypos, char *title, char *label, chtype fieldAttribute, chtype fillerCharacter, EDisplayType displayType, int fieldWidth, int fieldRows, int logicalRows, int minimumLength, boolean box, boolean shadow);
Уничтожение виджета.
void destroyCDKMentry (CDKMENTRY *mentry);
Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKMentry (CDKMENTRY *mentry);
Установика атрибутов фона виджета attribute.
void setCDKMentryBackgroundAttrib (CDKMENTRY *mentry, chtype attribute);
Прорисовка виджета.
void drawCDKMentry (CDKMENTRY *mentry, boolean box);
Прорисовка поля ввода впджета.
void drawCDKMentryField (CDKMENTRY *mentry);
Активация виджета. Возвращаемое значение содержит введённую строку.
Если mentry->exitType равно vNORMAL при выборе подпункта меню то выход осуществлён клавишами Enter или Tab и vESCAPE_HIT при нажатии Esc
В качестве actions можно передать 0.
char *activateCDKMentry (CDKMENTRY *mentry, chtype *actions);
Получение строки введённой в виджете.
char *getCDKMentryValue (CDKMENTRY *mentry);
Учтановка строки value в поле ввода.
void setCDKMentryValue (CDKMENTRY *mentry, char *value);
Очистка поля ввода.
void cleanCDKMentry (CDKMENTRY *mentry);
Установка состояния виджета.
void setCDKMentry (CDKMENTRY *mentry, char *value, int minimumLength, boolean box);
Получение символа которым заполняется пустое пространство в строке ввода.
chtype getCDKMentryFillerChar (CDKMENTRY *mentry);
Установка символа которым заполняется пустое пространство в строке ввода.
void setCDKMentryFillerChar (CDKMENTRY *mentry, chtype filler);
Получение символа который выводится при вводе в скрытом режиме.
chtype getCDKMentryHiddenChar (CDKMENTRY *mentry);
Установка символа который выводится при вводе в скрытом режиме.
void setCDKMentryHiddenChar (CDKMENTRY *mentry, chtype character);
Получение минимального числа символов которые нужно ввести.
int getCDKMentryMin (CDKMENTRY *mentry);
Установка минимального числа символов которые нужно ввести.
void setCDKMentryMin (CDKMENTRY *mentry, int minimum);
Перемещение виджета.
void moveCDKMentry (CDKMENTRY *mentry, int xpos, int ypos, boolean relative, boolean refresh);
Управление положением виджета клавишами курсора.
void positionCDKMentry (CDKMENTRY *mentry);
Есть ли рамка у виджета.
boolean getCDKMentryBox (CDKMENTRY *mentry);
Изменить наличие рамки в виджете.
void setCDKMentryBox(CDKMENTRY *mentry, boolean box);
Установка атрибутов attribute для рамки.
void setCDKMentryBoxAttribute (CDKMENTRY *mentry, chtype character);
Установка символа character выводимого по горизонтали рамки.
void setCDKMentryHorizontalChar (CDKMENTRY *mentry, chtype character);
Установка символа character выводимого по вертикали рамки.
void setCDKMentryVerticalChar (CDKMENTRY *mentry, chtype character);
Установка символа character выводимого в левом нижнем углу рамки.
void setCDKMentryLLChar (CDKMENTRY *mentry, chtype character);
Установка символа character выводимого в правом нижнем углу рамки.
void setCDKMentryLRChar (CDKMENTRY *mentry, chtype character);
Установка символа character выводимого в левом верхнем углу рамки.
void setCDKMentryULChar (CDKMENTRY *mentry, chtype character);
Установка символа character выводимого в правом верхнем углу рамки.
void setCDKMentryURChar (CDKMENTRY *mentry, chtype character);
/*
w_mentry.c - пример простой программы демонстрирующей
возможности виджета Mentry библиотеки CDK.
(C) Copyright 2006 Бердников Александр alexber220@yandex.ru
Данная программа распростаняется по лицензии BSD.
*/
#include <cdk.h>
int main(int argc, char *argv[])
{
CDKSCREEN *cdkscreen;
CDKMENTRY *CDKMessage;
WINDOW *screen;
char *message;
// инициализация
screen = initscr();
cdkscreen = initCDKScreen(screen);
initCDKColor();
//создаём виджет для ввода сообщения
CDKMessage = newCDKMentry(cdkscreen, CENTER, CENTER,
"Сообщение:\n____________________", "",
A_NORMAL, ' ', vMIXED,
20, 10, 15, 0,
TRUE, FALSE);
//обновляем экран
refreshCDKScreen(cdkscreen);
//ждём ввода
message = activateCDKMentry(CDKMessage, 0);
//освобождаем ресурсы
destroyCDKMentry(CDKMessage);
destroyCDKScreen(cdkscreen);
endCDK();
return 0;
}