*/ #include "php_gtk.h" #if HAVE_PHP_GTK /* * GdkAtom API and helper functions */ PHP_GTK_EXPORT_CE(gdkatom_ce) = NULL; static zend_object_handlers phpg_gdkatom_handlers; static zend_function_entry gdkatom_methods[] = { #if ZEND_EXTENSION_API_NO > 220051025 PHP_ME_MAPPING(__construct, no_direct_constructor, NULL, 0) #else PHP_ME_MAPPING(__construct, no_direct_constructor, NULL) #endif { NULL, NULL, NULL } }; /* {{{ static phpg_free_gdkatom_storage() */ static void phpg_free_gdkatom_storage(phpg_gdkatom_t *object TSRMLS_DC) { zend_object_std_dtor(&object->zobj TSRMLS_CC); if (object->name) efree(object->name); efree(object); } /* }}} */
PHP_NAMED_FE( getDateType, ZEND_FN( datefmt_get_datetype ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( getTimeType, ZEND_FN( datefmt_get_timetype ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( getCalendar, ZEND_FN( datefmt_get_calendar ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( getCalendarObject, ZEND_FN( datefmt_get_calendar_object ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( setCalendar, ZEND_FN( datefmt_set_calendar ), arginfo_intldateformatter_setcalendar ) PHP_NAMED_FE( getTimeZoneId, ZEND_FN( datefmt_get_timezone_id ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( setTimeZoneId, ZEND_FN( datefmt_set_timezone_id ), arginfo_intldateformatter_settimezoneid ) PHP_NAMED_FE( getTimeZone, ZEND_FN( datefmt_get_timezone ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( setTimeZone, ZEND_FN( datefmt_set_timezone ), arginfo_intldateformatter_settimezoneid ) PHP_NAMED_FE( setPattern, ZEND_FN( datefmt_set_pattern ), arginfo_intldateformatter_setpattern ) PHP_NAMED_FE( getPattern, ZEND_FN( datefmt_get_pattern ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( getLocale, ZEND_FN( datefmt_get_locale ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( setLenient, ZEND_FN( datefmt_set_lenient ), arginfo_intldateformatter_setlenient ) PHP_NAMED_FE( isLenient, ZEND_FN( datefmt_is_lenient ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( format, ZEND_FN( datefmt_format ), arginfo_intldateformatter_format ) PHP_ME_MAPPING( formatObject, datefmt_format_object, arginfo_intldateformatter_format_object, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) PHP_NAMED_FE( parse, ZEND_FN( datefmt_parse), datefmt_parse_args ) PHP_NAMED_FE( localtime, ZEND_FN( datefmt_localtime ), datefmt_parse_args ) PHP_NAMED_FE( getErrorCode, ZEND_FN( datefmt_get_error_code ), arginfo_intldateformatter_getdatetype ) PHP_NAMED_FE( getErrorMessage, ZEND_FN( datefmt_get_error_message ), arginfo_intldateformatter_getdatetype ) PHP_FE_END }; /* }}} */ /* {{{ dateformat_register_class * Initialize 'IntlDateFormatter' class */ void dateformat_register_IntlDateFormatter_class( void ) { zend_class_entry ce;
ZEND_ARG_INFO(0, isDaylight) ZEND_ARG_INFO(0, style) ZEND_ARG_INFO(0, locale) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(ainfo_tz_void, 0, 0, 0) ZEND_END_ARG_INFO() /* }}} */ /* {{{ TimeZone_class_functions * Every 'IntlTimeZone' class method has an entry in this table */ static zend_function_entry TimeZone_class_functions[] = { PHP_ME(IntlTimeZone, __construct, ainfo_tz_void, ZEND_ACC_PRIVATE) PHP_ME_MAPPING(createTimeZone, intltz_create_time_zone, ainfo_tz_idarg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_ME_MAPPING(fromDateTimeZone, intltz_from_date_time_zone, ainfo_tz_idarg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_ME_MAPPING(createDefault, intltz_create_default, ainfo_tz_void, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_ME_MAPPING(getGMT, intltz_get_gmt, ainfo_tz_void, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) #if U_ICU_VERSION_MAJOR_NUM >= 49 PHP_ME_MAPPING(getUnknown, intltz_get_unknown, ainfo_tz_void, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) #endif PHP_ME_MAPPING(createEnumeration, intltz_create_enumeration, ainfo_tz_createEnumeration, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_ME_MAPPING(countEquivalentIDs, intltz_count_equivalent_ids, ainfo_tz_idarg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48 PHP_ME_MAPPING(createTimeZoneIDEnumeration, intltz_create_time_zone_id_enumeration, ainfo_tz_createTimeZoneIDEnumeration, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) #endif PHP_ME_MAPPING(getCanonicalID, intltz_get_canonical_id, ainfo_tz_getCanonicalID, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48 PHP_ME_MAPPING(getRegion, intltz_get_region, ainfo_tz_idarg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) #endif
ZEND_ARG_INFO(0, minute) ZEND_ARG_INFO(0, second) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(ainfo_gregcal_isLeapYear, 0, 0, 1) ZEND_ARG_INFO(0, year) ZEND_END_ARG_INFO() /* }}} */ /* {{{ Calendar_class_functions * Every 'IntlCalendar' class method has an entry in this table */ static const zend_function_entry Calendar_class_functions[] = { PHP_ME(IntlCalendar, __construct, ainfo_cal_void, ZEND_ACC_PRIVATE) PHP_ME_MAPPING(createInstance, intlcal_create_instance, ainfo_cal_createInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 42 PHP_ME_MAPPING(getKeywordValuesForLocale, intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) #endif PHP_ME_MAPPING(getNow, intlcal_get_now, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getAvailableLocales, intlcal_get_available_locales, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(get, intlcal_get, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getTime, intlcal_get_time, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setTime, intlcal_set_time, ainfo_cal_date, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(add, intlcal_add, ainfo_cal_add, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setTimeZone, intlcal_set_time_zone, ainfo_cal_setTimeZone, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(after, intlcal_after, ainfo_cal_other_cal, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(before, intlcal_before, ainfo_cal_other_cal, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(set, intlcal_set, ainfo_cal_set, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(roll, intlcal_roll, ainfo_cal_roll, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(clear, intlcal_clear, ainfo_cal_clear, ZEND_ACC_PUBLIC)
PHP_FE(timecop_gettimeofday, arginfo_timecop_gettimeofday) #endif PHP_FE(timecop_unixtojd, arginfo_timecop_unixtojd) PHP_FE(timecop_date_create, arginfo_timecop_date_create) PHP_FE(timecop_date_create_from_format, arginfo_timecop_date_create_from_format) {NULL, NULL, NULL} }; /* }}} */ /* declare method parameters, */ /* each method can have its own parameters and visibility */ static zend_function_entry timecop_datetime_class_functions[] = { PHP_ME(TimecopDateTime, __construct, arginfo_timecop_date_create, ZEND_ACC_CTOR | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(createFromFormat, timecop_date_create_from_format, arginfo_timecop_date_create_from_format, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) {NULL, NULL, NULL} }; static zend_function_entry timecop_orig_datetime_class_functions[] = { PHP_ME(TimecopOrigDateTime, __construct, arginfo_timecop_date_create, ZEND_ACC_CTOR | ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; #define MKTIME_NUM_ARGS 6 #define TIMECOP_CALL_FUNCTION(func_name, index_to_fill_timestamp) \ _timecop_call_function(INTERNAL_FUNCTION_PARAM_PASSTHRU, ORIG_FUNC_NAME(func_name), index_to_fill_timestamp); #define TIMECOP_CALL_MKTIME(mktime_func_name, date_func_name) \
font_face_object->quartzref = CGFontCreateWithFontName(font_name); /* We are done with our CFStringRef so we free it - the null check is so we don't crash*/ if (font_name != NULL) CFRelease(font_name); /* Now actually do the cairo call */ font_face_object->font_face = cairo_quartz_font_face_create_for_cgfont(font_face_object->quartzref); PHP_CAIRO_ERROR(cairo_font_face_status(font_face_object->font_face)); } /* }}} */ /* {{{ cairo_quartz_font_methods[] */ const zend_function_entry cairo_quartz_font_methods[] = { PHP_ME_MAPPING(createForCgfont, cairo_quartz_font_face_create_for_cgfont, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) PHP_ME_MAPPING(createForAtsuiFontId, cairo_quartz_font_face_create_for_atsu_font_id, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) {NULL, NULL, NULL} }; /* }}} */ #endif #ifdef CAIRO_HAS_QUARTZ_FONT INIT_CLASS_ENTRY(ce, "CairoQuartzFontFace", cairo_quartz_font_methods); cairo_ce_cairoquartzfont = zend_register_internal_class_ex(&ce, cairo_ce_cairofontface, "CairoFontFace" TSRMLS_CC); cairo_ce_cairoquartzfont->create_object = cairo_fontface_object_new; INIT_CLASS_ENTRY(ce, "CairoQuartzAtsuFontNameCode", NULL); cairo_ce_cairoquartzatsufontnamecode = zend_register_internal_class(&ce TSRMLS_CC); cairo_ce_cairoquartzatsufontnamecode->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_FINAL_CLASS;
ZEND_ARG_INFO( 0, direction ) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_me_transliterate, 0, 0, 1 ) ZEND_ARG_INFO( 0, subject ) ZEND_ARG_INFO( 0, start ) ZEND_ARG_INFO( 0, end ) ZEND_END_ARG_INFO() /* }}} */ /* {{{ Transliterator_class_functions * Every 'Transliterator' class method has an entry in this table */ static const zend_function_entry Transliterator_class_functions[] = { PHP_ME( Transliterator, __construct, ainfo_trans_void, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL ) PHP_ME_MAPPING( create, transliterator_create, ainfo_trans_create, ZEND_ACC_STATIC |ZEND_ACC_PUBLIC ) PHP_ME_MAPPING( createFromRules,transliterator_create_from_rules, ainfo_trans_create_from_rules, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC ) PHP_ME_MAPPING( createInverse, transliterator_create_inverse, ainfo_trans_void, ZEND_ACC_PUBLIC ) PHP_ME_MAPPING( listIDs, transliterator_list_ids, ainfo_trans_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC ) PHP_ME_MAPPING( transliterate, transliterator_transliterate, ainfo_trans_me_transliterate, ZEND_ACC_PUBLIC ) PHP_ME_MAPPING( getErrorCode, transliterator_get_error_code, ainfo_trans_void, ZEND_ACC_PUBLIC ) PHP_ME_MAPPING( getErrorMessage,transliterator_get_error_message, ainfo_trans_void, ZEND_ACC_PUBLIC ) PHP_FE_END }; /* }}} */ /* {{{ transliterator_register_Transliterator_class * Initialize 'Transliterator' class */ void transliterator_register_Transliterator_class( void ) {