Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Properties  |  Signals

GtkCurve

GtkCurve Позволяет непосредственное редактирование кривой

Краткое описание

#include <gtk/gtk.h> GtkCurve; GtkWidget* gtk_curve_new (void); void gtk_curve_reset (GtkCurve *curve); void gtk_curve_set_gamma (GtkCurve *curve, gfloat gamma_); void gtk_curve_set_range (GtkCurve *curve, gfloat min_x, gfloat max_x, gfloat min_y, gfloat max_y); void gtk_curve_get_vector (GtkCurve *curve, int veclen, gfloat vector[]); void gtk_curve_set_vector (GtkCurve *curve, int veclen, gfloat vector[]); void gtk_curve_set_curve_type (GtkCurve *curve, GtkCurveType type);

Иерархия объектов

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkDrawingArea +----GtkCurve

Осуществляемые интерфейсы

GtkCurve осуществляет AtkImplementorIface.

Свойства

"curve-type" GtkCurveType : Read / Write "max-x" gfloat : Read / Write "max-y" gfloat : Read / Write "min-x" gfloat : Read / Write "min-y" gfloat : Read / Write

Сигналы

"curve-type-changed" void user_function (GtkCurve *curve, gpointer user_data) : Run first

Описание

Помните

Этот виджет рассматривается как специализированный/мало-используемый для GTK+, и в будущем будет перемещен в другой пакет. Если ваше приложение нуждается в этом виджете, спокойно используйте его, поскольку он действительно работает и полезен для некоторых приложений. Однако, мы не принимает новые свойства для виджета и он в конце концов будет перемещен из дистрибутива GTK+.

GtkCurve виджет позволяет пользователю редактировать диапазон значений используя кривую. Он обычно используется для настройки цветового баланса в графических приложениях таких как Gimp.

GtkCurve виджет имеет три режима операций - сплайн, линейный и свободный. В сплайн режиме пользователь помещает точки в кривую которые автоматически связываются в сглаженную кривую. В линейном режиме пользователь помещает точки в кривую которые связываются между собой прямыми линиями. В свободном режиме пользователь может рисовать точки произвольной кривой и они не связываются между собой вообще.

Детали

GtkCurve

typedef struct _GtkCurve GtkCurve;

Структура GtkCurve содержит только закрытые данные, доступ к которым должен производиться с помощью функций описанных ниже.


gtk_curve_new ()

GtkWidget*  gtk_curve_new                   (void);

Создаёт новый GtkCurve.

Возвращает :

новый GtkCurve.


gtk_curve_reset ()

void        gtk_curve_reset                 (GtkCurve *curve);

Сбрасывает кривую в прямую линию от минимальных значений x и y до максимальных значений x и y (то есть из нижнего-левого в верхний-правый угол). Тип кривой не изменяется.

curve :

GtkCurve.


gtk_curve_set_gamma ()

void gtk_curve_set_gamma (GtkCurve *curve, gfloat gamma_);

Пересчитывает кривую используя полученную гамму значений. Значение гаммы 1 приведет к прямой линии. Значения больше чем 1 приводят к искривлению выше прямой. Значения меньше 1 приводят к искривлению ниже прямой. Тип кривой изменяется в GTK_CURVE_TYPE_FREE. ПОПРАВЬТЕ МЕНЯ: Нужно более точное определение гаммы.

curve :

GtkCurve.

gamma_ :

Значения гаммы.


gtk_curve_set_range ()

void gtk_curve_set_range (GtkCurve *curve, gfloat min_x, gfloat max_x, gfloat min_y, gfloat max_y);

Устанавливает максимальное и минимальное значение x и y кривой. Кривая так же сбрасывается вызовом gtk_curve_reset().

curve :

GtkCurve.

min_x :

Минимальное значение x.

max_x :

Максимальное значение x.

min_y :

Минимальное значение y.

max_y :

Максимальное значение y.


gtk_curve_get_vector ()

void gtk_curve_get_vector (GtkCurve *curve, int veclen, gfloat vector[]);

Возвращает вектор точек представляющих кривую.

curve :

GtkCurve.

veclen :

Количество точек для расчета.

vector :

Возвращаемые точки.


gtk_curve_set_vector ()

void gtk_curve_set_vector (GtkCurve *curve, int veclen, gfloat vector[]);

Устанавливает вектор точек в кривую. Тип кривой устанавливается в GTK_CURVE_TYPE_FREE.

curve :

GtkCurve.

veclen :

Количество точек.

vector :

Точки на кривой.


gtk_curve_set_curve_type ()

void gtk_curve_set_curve_type (GtkCurve *curve, GtkCurveType type);

Устанавливает тип кривой. Кривая остаётся неизменной, исключая случаи когда изменяется от свободной кривой к линейной или сплайн кривой, в этом случае кривая изменяется как можно меньше.

curve :

GtkCurve.

type :

Тип кривой.

Детали свойств

Свойство "curve-type"

  "curve-type"           GtkCurveType          : Read / Write

Является ли линейной кривой, сплайн интерполированной, или свободной формы.

Значение по умолчанию : GTK_CURVE_TYPE_LINEAR


Свойство "max-x"

  "max-x"                gfloat                : Read / Write

Максимально возможное значение X.

Значение по умолчанию : 1


Свойство "max-y"

  "max-y"                gfloat                : Read / Write

Максимально возможное значение Y.

Значение по умолчанию : 1


Свойство "min-x"

  "min-x"                gfloat                : Read / Write

Минимально возможное значение X.

Значение по умолчанию : 0


Свойство "min-y"

  "min-y"                gfloat                : Read / Write

Минимально возможное значение Y.

Значение по умолчанию : 0

Детали сигналов

Сигнал "curve-type-changed"

void user_function (GtkCurve *curve, gpointer user_data) : Run first

Издаётся при изменении типа кривой. Тип кривой может изменяться вызовом gtk_curve_set_curve_type(). Он так же может изменяться как побочный эффект вызова gtk_curve_reset() или gtk_curve_set_gamma().

curve :

Объект получающий сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.

Смотрите также

GtkGammaCurve

Подкласс для редактирования гаммы кривой.