![]() |
![]() |
![]() |
![]() |
Создает класс виджета
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 |