Histogram - гистограмма.

Данный виджет служит для визульного отображения относительного значения.

Создание виджета. Возращает ссылку на созданный виджет или NULL, если создать не удалось. В остальных функциях в качестве histogram нужно передавать ссылку на созданный виджет.
CDKHISTOGRAM *newCDKHistogram (CDKSCREEN *cdkscreen, int xpos, int ypos, int height, int width, int orient, char *title, boolean box, boolean shadow);

cdkscreen - ранее созданный CDKSCREEN
xpos, ypos - координаты левого верхнего угла
height, width - Размеры виджета.
orient - ориентация по вертикали VERTICAL или по горизонтали HORIZONTAL.
title - Заголовок. Находится над полем ввода. Может содержать несколько строк. Для перехода на новую строку используется \n.
box - рамка (TRUE / FALSE) если TRUE будет выведена рамка
shadow - тень (TRUE / FALSE) если TRUE будет выведена тень

Уничтожение виджета.
void destroyCDKHistogram (CDKHISTOGRAM *histogram);

Удаление виджета с экрана. (Сам виджет не удаляется.)
void eraseCDKHistogram (CDKHISTOGRAM *histogram);

Установика атрибутов фона виджета attribute.
void setCDKHistogramBackgroundAttrib (CDKHISTOGRAM *histogram, chtype attribute);

Прорисовка виджета.
void drawCDKHistogram (CDKHISTOGRAM *histogram, boolean box);

Активация виджета. Для данного виджета то же самое что и drawCDKHistogram.
void activateCDKHistogram (CDKHISTOGRAM *histogram, chtype unused);

Функции получения и изменения состояния.

Получение максимального значения.
int getCDKHistogramHighValue (CDKHISTOGRAM *histogram);

Получение минимального значения.
int getCDKHistogramLowValue (CDKHISTOGRAM *histogram);

Получение текущего значения.
int getCDKHistogramValue (CDKHISTOGRAM *histogram);

Установка минимального, максимального и текущего значения.
void setCDKHistogramValue (CDKHISTOGRAM *histogram, int lowValue, int highValue, int currentValue);

Получение символа которым заполняется виджет.
chtype getCDKHistogramFillerChar (CDKHISTOGRAM *histogram);

Установка символа которым заполняется виджет.
void setCDKHistogramFillerChar (CDKHISTOGRAM *histogram, chtype fillerCharacter);

Получение атрибутов статистики.
chtype getCDKHistogramStatsAttr (CDKHISTOGRAM *histogram);

Установка атрибутов статистики.
void setCDKHistogramStatsAttr (CDKHISTOGRAM *histogram, chtype statsAttribute);

Получение позиции статистики.
int getCDKHistogramStatsPos (CDKHISTOGRAM *histogram);

Установка позиции статистики.
void setCDKHistogramStatsPos (CDKHISTOGRAM *histogram, int statsPosition);

Получение вида.
EHistogramDisplayType getCDKHistogramViewType (CDKHISTOGRAM *histogram);

Установка вида.
void setCDKHistogramDisplayType (CDKHISTOGRAM *histogram, EHistogramDisplayType viewtype);

Установка состояния виджета.
void setCDKHistogram (CDKHISTOGRAM *histogram, EHistogramDisplayType viewType, int statsPos, chtype statsAttribute, int lowValue, int highValue, int currentValue, chtype fillerCharacter, boolean box);

viewType - Вид. vNONE - без информации о текущм значении, vPERCENT - текущее значение отображается в процентах, vFRACTION - в виде дроби, vREAL - в виде реального значения.
statsPos - положение статистики TOP, BOTTOM или CENTER.
statsAttribute - атрибуты статистики.
lowValue - Нижняя граница.
highValue - Верхняя граница.
currentValue - Начальное значение.
fillerCharacter - Символ которым заполняется виджет.
box - рамка (TRUE / FALSE) если TRUE будет выведена рамка

Перемещение виджета.
void moveCDKHistogram (CDKHISTOGRAM *histogram, int xpos, int ypos, boolean relative, boolean refresh);

xpos, ypos - координаты левого верхнего угла новой позиции
relative - (TRUE / FALSE) если TRUE новые координаты высчитываются от текущего положения виджета, иначе от верхнего левого угла экрана
refresh - обновить после перемещения (TRUE / FALSE)

Управление положением виджета клавишами курсора.
void positionCDKHistogram (CDKHISTOGRAM *histogram);

Функции управления рамкой.

Есть ли рамка у виджета.
boolean getCDKHistogramBox (CDKHISTOGRAM *histogram);

Изменить наличие рамки в виджете.
void setCDKHistogramBox (CDKHISTOGRAM *histogram, boolean box);

Установка атрибутов attribute для рамки.
void setCDKHistogramBoxAttribute (CDKHISTOGRAM *histogram, chtype character);

Установка символа character выводимого по горизонтали рамки.
void setCDKHistogramHorizontalChar (CDKHISTOGRAM *histogram, chtype character);

Установка символа character выводимого по вертикали рамки.
void setCDKHistogramVerticalChar (CDKHISTOGRAM *histogram, chtype character);

Установка символа character выводимого в левом нижнем углу рамки.
void setCDKHistogramLLChar (CDKHISTOGRAM *histogram, chtype character);

Установка символа character выводимого в правом нижнем углу рамки.
void setCDKHistogramLRChar (CDKHISTOGRAM *histogram, chtype character);

Установка символа character выводимого в левом верхнем углу рамки.
void setCDKHistogramULChar (CDKHISTOGRAM *histogram, chtype character);

Установка символа character выводимого в правом верхнем углу рамки.
void setCDKHistogramURChar (CDKHISTOGRAM *histogram, chtype character);

Пример использования.

/*
    w_histogram.c - пример простой программы демонстрирующей
    		возможности виджета Histogram библиотеки CDK.
		
    (C) Copyright 2006 Бердников Александр alexber220@yandex.ru
    Данная программа распростаняется по лицензии BSD.
*/

#include <cdk.h>


int main(int argc, char *argv[])
{
    CDKSCREEN *cdkscreen;
    CDKHISTOGRAM *histogram;
    WINDOW *screen;
    
    // инициализация    
    screen = initscr();
    cdkscreen = initCDKScreen(screen);
    initCDKColor();

    //создаём виджет
    histogram = newCDKHistogram(cdkscreen, 
		10, 10, 
		1, 20,
		HORIZONTAL, "Установка",
		TRUE, FALSE);
		
    //устанавливаем состояние	
    setCDKHistogram(histogram, vPERCENT, CENTER, A_BOLD, 0, 10, 5, 
	' '| A_REVERSE, TRUE);

    //прорисовываем
    refreshCDKScreen (cdkscreen);
    sleep (5);

    //освобождаем ресурсы
    destroyCDKHistogram(histogram);
    destroyCDKScreen(cdkscreen);
    endCDK();
    
    return 0;
}

(C) Copyright 2006 Бердников Александр
Hosted by uCoz