Создает класс виджета
PtWidgetClass_t *PtCreateWidgetClass(
PtWidgetClassRef_t *superclass_ref,
unsigned int size,
unsigned int num_args,
PtArg_t const *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 |