Данный виджет позволяет осуществлять выбор числа в заданном диапазоне. Есть возможность задать шаг и минимальное с максимальным значения. Slider работает с типом int для float можно использовать FSlider (так же как и Slider только вместо значений типа int будут float).
Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось.
В остальных функциях в качестве slider нужно передавать ссылку на созданный виджет.
CDKSLIDER *newCDKSlider (CDKSCREEN *cdkscreen, int xpos, int ypos, char *title, char *label, chtype fillerCharacter, int fieldWidth, int currentValue,
int lowValue, int highValue, int increment, int fastIncrement, boolean box, boolean shadow);
Уничтожение виджета.
void destroyCDKSlider (CDKSLIDER *slider);
Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKSlider (CDKSLIDER *slider);
Установика атрибутов фона виджета attribute.
void setCDKSliderBackgroundAttrib (CDKSLIDER *slider, chtype attribute);
Прорисовка виджета.
void drawCDKSlider (CDKSLIDER *slider, boolean box);
Активация виджета. Возвращаемое значение содержит выбранное значение.
Если slider->exitType равно vNORMAL при выборе подпункта меню то выход осуществлён клавишами Enter или Tab и vESCAPE_HIT при нажатии Esc
В качестве actions можно передать 0.
int activateCDKSlider (CDKSLIDER *slider, chtype *actions);
Получение текущего значения.
int getCDKSliderValue (CDKSLIDER *slider);
Установка текущего значения.
void setCDKSliderValue (CDKSLIDER *slider, int value);
Получение максимального значения.
int getCDKSliderHighValue (CDKSLIDER *slider);
Получение минимального значения.
int getCDKSliderLowValue (CDKSLIDER *slider);
Установка максимального и минимального значения.
void setCDKSliderLowHigh (CDKSLIDER *slider, int lowValue, int highValue);
Установка состояния виджета.
void setCDKSlider (CDKSLIDER *slider, int lowValue, int highValue, int currentValue, boolean box);
Перемещение виджета.
void moveCDKSlider (CDKSLIDER *slider, int xpos, int ypos, boolean relative, boolean refresh);
Управление положением виджета клавишами курсора.
void positionCDKSlider (CDKSLIDER *slider);
Есть ли рамка у виджета.
boolean getCDKSliderBox (CDKSLIDER *slider);
Изменить наличие рамки в виджете.
void setCDKSliderBox (CDKSLIDER *slider, boolean boxWidget);
Установка атрибутов attribute для рамки.
void setCDKSliderBoxAttribute (CDKSLIDER *slider, chtype character);
Установка символа character выводимого по горизонтали рамки.
void setCDKSliderHorizontalChar (CDKSLIDER *slider, chtype character);
Установка символа character выводимого по вертикали рамки.
void setCDKSliderVerticalChar (CDKSLIDER *slider,chtype character);
Установка символа character выводимого в левом нижнем углу рамки.
void setCDKSliderLLChar (CDKSLIDER *slider, chtype character);
Установка символа character выводимого в правом нижнем углу рамки.
void setCDKSliderLRChar (CDKSLIDER *slider,chtype character);
Установка символа character выводимого в левом верхнем углу рамки.
void setCDKSliderULChar (CDKSLIDER *slider, chtype character);
Установка символа character выводимого в правом верхнем углу рамки.
void setCDKSliderURChar (CDKSLIDER *slider, chtype character);
/*
w_slider.c - пример простой программы демонстрирующей
возможности виджета Slider библиотеки CDK.
(C) Copyright 2006 Бердников Александр alexber220@yandex.ru
Данная программа распростаняется по лицензии BSD.
*/
#include <cdk.h>
int main(int argc, char *argv[])
{
CDKSCREEN *cdkscreen;
CDKSLIDER *slider;
WINDOW *screen;
int val;
char temp[256], *mesg[10];
// инициализация
screen = initscr();
cdkscreen = initCDKScreen(screen);
initCDKColor();
//создаём виджет
slider = newCDKSlider(cdkscreen,
CENTER, CENTER,
"", "", ' ' | A_REVERSE,10,
5, 0, 100,
1,10,
TRUE, FALSE);
//ждём ввода
val = activateCDKSlider(slider, 0);
// выводим введённую строку
if (slider->exitType == vNORMAL)
{
sprintf (temp, "(%d)", val);
mesg[0] = temp;
popupLabel (cdkscreen, mesg, 1);
}
//освобождаем ресурсы
destroyCDKSlider(slider);
destroyCDKScreen(cdkscreen);
endCDK();
return 0;
}