Данный виджет может служить для выбора одного элемента из заданных.
Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось.
В остальных функциях в качестве radio нужно передавать ссылку на созданный виджет.
CDKRADIO *newCDKRadio (CDKSCREEN *cdkscreen, int xpos, int ypos, int spos, int height, int width, char *title, char **radioList, int radioListLength,
chtype choiceCharacter, int defaultItem, chtype highlight, boolean box, boolean shadow);
Уничтожение виджета.
void destroyCDKRadio (CDKRADIO *radio);
Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKRadio (CDKRADIO *radio);
Установика атрибутов фона виджета attribute.
void setCDKRadioBackgroundAttrib (CDKRADIO *radio, chtype attribute);
Прорисовка виджета.
void drawCDKRadio (CDKRADIO *radio, boolean box);
Активация виджета. Возращает 1, если выход из виджета осуществлён клавишей Tab или Enter.
Если radio->exitType равно vNORMAL при выборе подпункта меню то выход осуществлён клавишами Enter или Tab и vESCAPE_HIT при нажатии Esc
В качестве actions можно передать 0.
int activateCDKRadio (CDKRADIO *radio, chtype *actions);
Получение номера выбранного элемента списка.
int getCDKRadioSelectedItem (CDKRADIO *radio);
Установка номера выбранного элемента списка item.
void setCDKRadioSelectedItem (CDKRADIO *radio, int item);
Получение номера текущего элемента списка.
int getCDKRadioCurrentItem (CDKRADIO *radio);
Установка текущего элемента списка.
void setCDKRadioCurrentItem (CDKRADIO *radio, int index);
Получение элементов списка.
int getCDKRadioItems (CDKRADIO *radio, char **list);
Установка элементов списка.
void setCDKRadioItems (CDKRADIO *radio, char **list, int listSize);
Получение символа выбора.
chtype getCDKRadioChoiceCharacter (CDKRADIO *radio);
Установка символа выбора.
void setCDKRadioChoiceCharacter (CDKRADIO *radio, chtype character);
Установка состояния виджета.
void setCDKRadio (CDKRADIO *radio, chtype highlight, chtype choiceCharacter, boolean box);
Получение символа использующегося слева от символа выбора.
chtype getCDKRadioLeftBrace (CDKRADIO *radio);
Установка символа использующегося слева от символа выбора.
void setCDKRadioLeftBrace (CDKRADIO *radio, chtype character);
Получение символа использующегося справа от символа выбора.
chtype getCDKRadioRightBrace (CDKRADIO *radio);
Установка символа использующегося справа от символа выбора.
void setCDKRadioRightBrace (CDKRADIO *radio, chtype character);
Получение атрибутов выделенного элемента списка.
chtype getCDKRadioHighlight (CDKRADIO *radio);
Установка атрибутов выделенного элемента списка.
void setCDKRadioHighlight (CDKRADIO *radio, chtype highlight);
Перемещение виджета.
void moveCDKRadio (CDKRADIO *radio, int xpos, int ypos, boolean relative, boolean refresh);
Управление положением виджета клавишами курсора.
void positionCDKRadio (CDKRADIO *radio);
Есть ли рамка у виджета.
boolean getCDKRadioBox (CDKRADIO *radio);
Изменить наличие рамки в виджете.
void setCDKRadioBox (CDKRADIO *radio, boolean box);
Установка атрибутов attribute для рамки.
void setCDKRadioBoxAttribute (CDKRADIO *radio, chtype character);
Установка символа character выводимого по горизонтали рамки.
void setCDKRadioHorizontalChar (CDKRADIO *radio, chtype character);
Установка символа character выводимого по вертикали рамки.
void setCDKRadioVerticalChar (CDKRADIO *radio, chtype character);
Установка символа character выводимого в левом нижнем углу рамки.
void setCDKRadioLLChar (CDKRADIO *radio, chtype character);
Установка символа character выводимого в правом нижнем углу рамки.
void setCDKRadioLRChar (CDKRADIO *radio, chtype character);
Установка символа character выводимого в левом верхнем углу рамки.
void setCDKRadioULChar (CDKRADIO *radio, chtype character);
Установка символа character выводимого в правом верхнем углу рамки.
void setCDKRadioURChar (CDKRADIO *radio, chtype character);
/*
w_radio.c - пример простой программы демонстрирующей
возможности виджета Radio list библиотеки CDK.
(C) Copyright 2006 Бердников Александр alexber220@yandex.ru
Данная программа распростаняется по лицензии BSD.
*/
#include <cdk.h>
static char *types[4];
int main(int argc, char *argv[])
{
CDKSCREEN *cdkscreen;
CDKRADIO *CDKRadio;
WINDOW *screen;
char temp[256], *mesg[200];
int id;
// инициализация
screen = initscr();
cdkscreen = initCDKScreen(screen);
initCDKColor();
// заполняем список
types[0] = "CD";
types[1] = "DVD";
types[2] = "Floppy";
types[3] = "ZIP";
//создаём виджет
CDKRadio = newCDKRadio(cdkscreen,
CENTER, CENTER, RIGHT,
8, 20,
"Носители:",
types, 4,
'*', 0,
A_REVERSE,
TRUE, FALSE);
//ждём ввода
id = activateCDKRadio(CDKRadio, 0);
// выводим выбранный элемент
if (CDKRadio->exitType == vNORMAL)
{
sprintf(temp, "3>%.*s", (int)(sizeof(temp) - 20), types[id]);
mesg[0] = copyChar (temp);
popupLabel (cdkscreen, mesg, 1);
}
//освобождаем ресурсы
destroyCDKRadio(CDKRadio);
destroyCDKScreen(cdkscreen);
endCDK();
return 0;
}