[Предыдущая] [Содержание] [Индекс] [Следующая]

PtCreateWidgetClass()

Создает класс виджета

Синтаксис:

PtWidgetClass_t *PtCreateWidgetClass( 
                   PtWidgetClassRef_t *superclass_ref, 
                   unsigned int size, 
                   unsigned int num_args, 
                   PtArg_t const *args );

Параметры:

superclass_ref
Суперкласс для нового класса виджета.
size
Размер нового класса виджета. Если 0, используется размер суперкласса; если не ноль, то должен быть по крайней мере размер суперкласса.
num_args
Число элементов в массиве arg.
args
Массив атрибутов и функций-членов класса, которые нужно применить при создании нового класса.

Описание:

Эта функция создает новый класс виджета, основанный на superclass_ref. Если указанный суперкласс еще не создан, он создается.

Если параметр size равен нулю, новый класс имеет такой же размер, как и указанный суперкласс. Иначе size байт распределяется для нового класса. Затем указанный суперкласс копируется в недавно распределенный класс (наследование). Члены version, resources, num_resources, callbacks, dflts_f, connect_f, init_f, unrealize_f и destroy_f члены очищаются, потому что они не должны быть унаследованы.

Возвращает:

Указатель на структуру недавно созданного класса:

base->superclass = superclass ? superclass->wclass:NULL;

Пример:

Этот пример из типового виджета ShadowedBox.

//
// Функция создания класса ShadowedBox
//
PtWidgetClass_t *PtCreateBasicClass( void )
{
    static const PtResourceRec_t resources[] = 
    {
    {   SBW_SHADOW_COLOR, Pt_CHANGE_REDRAW, 0,    
        Pt_ARG_IS_NUMBER( ShadowedBoxWidget, shadow_color ) },
    {   SBW_SHADOW_OFFSET, Pt_CHANGE_REDRAW, 0, 
        Pt_ARG_IS_NUMBER( ShadowedBoxWidget, shadow_offset ) }
    };
        
    static const PtArg_t args[] = 
        {
        { Pt_SET_VERSION, 110},
        { Pt_SET_STATE_LEN, sizeof( ShadowedBoxWidget ) },
        { Pt_SET_DFLTS_F, (long)shadowbox_dflts },
        { Pt_SET_DRAW_F, (long)shadowedbox_draw },
        { Pt_SET_FLAGS, 0, Pt_RECTANGULAR },
        { Pt_SET_RESOURCES, (long) resources },
        { Pt_SET_NUM_RESOURCES, 
          sizeof( resources )/sizeof( resources[0] ) }
        };

    return( ShadowedBox->wclass = PtCreateWidgetClass(  
        PtBasic, 0, sizeof( args )/sizeof( args[0] ), args ) );
}

Классификация:

Фотон

Безопасность:
Обработчик прерывания Нет
Обработчик сигнала Нет
Ветвь Нет

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

PtArg_t в Справочном Руководстве по Библиотеке - Library Reference Фотона


[Предыдущая] [Содержание] [Индекс] [Следующая]


Все мессаги сюда:yanich@inbox.ru
Hosted by uCoz