603 lines
21 KiB
C
603 lines
21 KiB
C
|
/*
|
||
|
+----------------------------------------------------------------------+
|
||
|
| XlsWriter Extension |
|
||
|
+----------------------------------------------------------------------+
|
||
|
| Copyright (c) 2017-2018 The Viest |
|
||
|
+----------------------------------------------------------------------+
|
||
|
| http://www.viest.me |
|
||
|
+----------------------------------------------------------------------+
|
||
|
| Author: viest <dev@service.viest.me> |
|
||
|
+----------------------------------------------------------------------+
|
||
|
*/
|
||
|
|
||
|
#include "xlswriter.h"
|
||
|
|
||
|
zend_class_entry *vtiful_format_ce;
|
||
|
|
||
|
/* {{{ format_objects_new
|
||
|
*/
|
||
|
static zend_object_handlers format_handlers;
|
||
|
|
||
|
static zend_always_inline void *vtiful_format_object_alloc(size_t obj_size, zend_class_entry *ce) {
|
||
|
void *obj = emalloc(obj_size);
|
||
|
memset(obj, 0, obj_size);
|
||
|
return obj;
|
||
|
}
|
||
|
|
||
|
PHP_VTIFUL_API zend_object *format_objects_new(zend_class_entry *ce)
|
||
|
{
|
||
|
format_object *format = vtiful_format_object_alloc(sizeof(format_object), ce);
|
||
|
|
||
|
zend_object_std_init(&format->zo, ce);
|
||
|
object_properties_init(&format->zo, ce);
|
||
|
|
||
|
format->ptr.format = NULL;
|
||
|
format->zo.handlers = &format_handlers;
|
||
|
|
||
|
return &format->zo;
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/* {{{ format_objects_free
|
||
|
*/
|
||
|
static void format_objects_free(zend_object *object)
|
||
|
{
|
||
|
format_object *intern = php_vtiful_format_fetch_object(object);
|
||
|
|
||
|
if (intern->ptr.format != NULL) {
|
||
|
// free by workbook
|
||
|
intern->ptr.format = NULL;
|
||
|
}
|
||
|
|
||
|
zend_object_std_dtor(&intern->zo);
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/* {{{ ARG_INFO
|
||
|
*/
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_construct_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, handle)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_wrap_arginfo, 0, 0, 0)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_bold_arginfo, 0, 0, 0)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_italic_arginfo, 0, 0, 0)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_underline_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, style)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_unlocked_arginfo, 0, 0, 0)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_align_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_VARIADIC_INFO(0, style)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_color_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, color)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_size_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, size)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_strikeout_arginfo, 0, 0, 0)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_number_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, format)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_background_arginfo, 0, 0, 2)
|
||
|
ZEND_ARG_INFO(0, pattern)
|
||
|
ZEND_ARG_INFO(0, color)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_border_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, style)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_border_of_the_four_sides_arginfo, 0, 0, 4)
|
||
|
ZEND_ARG_INFO(0, top)
|
||
|
ZEND_ARG_INFO(0, right)
|
||
|
ZEND_ARG_INFO(0, bottom)
|
||
|
ZEND_ARG_INFO(0, left)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_border_color_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, color)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_border_color_of_the_four_sides_arginfo, 0, 0, 4)
|
||
|
ZEND_ARG_INFO(0, top_color)
|
||
|
ZEND_ARG_INFO(0, right_color)
|
||
|
ZEND_ARG_INFO(0, bottom_color)
|
||
|
ZEND_ARG_INFO(0, left_color)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_font_arginfo, 0, 0, 1)
|
||
|
ZEND_ARG_INFO(0, font)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
|
||
|
ZEND_BEGIN_ARG_INFO_EX(format_to_resource_arginfo, 0, 0, 0)
|
||
|
ZEND_END_ARG_INFO()
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::__construct()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, __construct)
|
||
|
{
|
||
|
zval *handle;
|
||
|
format_object *obj;
|
||
|
xls_resource_write_t *xls_res;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_RESOURCE(handle)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
xls_res = zval_get_resource(handle);
|
||
|
obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format == NULL) {
|
||
|
obj->ptr.format = workbook_add_format(xls_res->workbook);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::bold()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, bold)
|
||
|
{
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_bold(obj->ptr.format);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::italic()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, italic)
|
||
|
{
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_italic(obj->ptr.format);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::underline()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, underline)
|
||
|
{
|
||
|
zend_long style = 0;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_LONG(style)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_underline(obj->ptr.format, style);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::unlocked()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, unlocked)
|
||
|
{
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_unlocked(obj->ptr.format);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::align()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, align)
|
||
|
{
|
||
|
zval *args = NULL;
|
||
|
int argc, i;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, -1)
|
||
|
Z_PARAM_VARIADIC('+', args, argc)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
for (i = 0; i < argc; ++i) {
|
||
|
zval *arg = args + i;
|
||
|
|
||
|
if (Z_TYPE_P(arg) != IS_LONG) {
|
||
|
zend_throw_exception(vtiful_exception_ce, "Format exception, please view the manual", 150);
|
||
|
}
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_align(obj->ptr.format, Z_LVAL_P(arg));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::fontColor(int $color)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, fontColor)
|
||
|
{
|
||
|
zend_long color = 0;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_LONG(color)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_font_color(obj->ptr.format, color);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::number(string $format)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, number)
|
||
|
{
|
||
|
zend_string *format;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_STR(format)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_num_format(obj->ptr.format, ZSTR_VAL(format));
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::background(int $color [, int $pattern = \Vtiful\Kernel\Format::PATTERN_SOLID])
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, background)
|
||
|
{
|
||
|
zend_long pattern = LXW_PATTERN_SOLID, color = 0;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 2)
|
||
|
Z_PARAM_LONG(color)
|
||
|
Z_PARAM_OPTIONAL
|
||
|
Z_PARAM_LONG(pattern)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_pattern(obj->ptr.format, pattern);
|
||
|
format_set_bg_color(obj->ptr.format, color);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::fontSize(double $size)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, fontSize)
|
||
|
{
|
||
|
double size;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_DOUBLE(size)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_font_size(obj->ptr.format, size);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::font(string $fontName)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, font)
|
||
|
{
|
||
|
zend_string *font_name = NULL;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_STR(font_name)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_font_name(obj->ptr.format, ZSTR_VAL(font_name));
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::strikeout()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, strikeout)
|
||
|
{
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_font_strikeout(obj->ptr.format);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::wrap()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, wrap)
|
||
|
{
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_text_wrap(obj->ptr.format);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::border()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, border)
|
||
|
{
|
||
|
zend_long style = 0;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_LONG(style)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_border(obj->ptr.format, style);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::borderOfTheFourSides(int $top, int $right, int $bottom, int $left)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, borderOfTheFourSides)
|
||
|
{
|
||
|
zend_long top = LXW_BORDER_NONE, right = LXW_BORDER_NONE, bottom = LXW_BORDER_NONE, left = LXW_BORDER_NONE;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(0, 4)
|
||
|
Z_PARAM_OPTIONAL
|
||
|
Z_PARAM_LONG_OR_NULL(top, _dummy)
|
||
|
Z_PARAM_LONG_OR_NULL(right, _dummy)
|
||
|
Z_PARAM_LONG_OR_NULL(bottom, _dummy)
|
||
|
Z_PARAM_LONG_OR_NULL(left, _dummy)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
format_set_top(obj->ptr.format, top);
|
||
|
format_set_right(obj->ptr.format, right);
|
||
|
format_set_bottom(obj->ptr.format, bottom);
|
||
|
format_set_left(obj->ptr.format, left);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::borderColor(int $color)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, borderColor)
|
||
|
{
|
||
|
zend_long color = -1;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||
|
Z_PARAM_LONG(color)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format && color > 0) {
|
||
|
format_set_border_color(obj->ptr.format, color);
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::borderColorOfTheFourSides(int $topColor, int $rightColor, int $bottomColor, int $leftColor)
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, borderColorOfTheFourSides)
|
||
|
{
|
||
|
zend_long top = -1, right = -1, bottom = -1, left = -1;
|
||
|
|
||
|
ZEND_PARSE_PARAMETERS_START(0, 4)
|
||
|
Z_PARAM_OPTIONAL
|
||
|
Z_PARAM_LONG_OR_NULL(top, _dummy)
|
||
|
Z_PARAM_LONG_OR_NULL(right, _dummy)
|
||
|
Z_PARAM_LONG_OR_NULL(bottom, _dummy)
|
||
|
Z_PARAM_LONG_OR_NULL(left, _dummy)
|
||
|
ZEND_PARSE_PARAMETERS_END();
|
||
|
|
||
|
ZVAL_COPY(return_value, getThis());
|
||
|
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
if (obj->ptr.format) {
|
||
|
if (top > 0) {
|
||
|
format_set_top_color(obj->ptr.format, top);
|
||
|
}
|
||
|
|
||
|
if (right > 0) {
|
||
|
format_set_right_color(obj->ptr.format, right);
|
||
|
}
|
||
|
|
||
|
if (bottom > 0) {
|
||
|
format_set_bottom_color(obj->ptr.format, bottom);
|
||
|
}
|
||
|
|
||
|
if (left > 0) {
|
||
|
format_set_left_color(obj->ptr.format, left);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ \Vtiful\Kernel\Format::toResource()
|
||
|
*/
|
||
|
PHP_METHOD(vtiful_format, toResource)
|
||
|
{
|
||
|
format_object *obj = Z_FORMAT_P(getThis());
|
||
|
|
||
|
RETURN_RES(zend_register_resource(obj->ptr.format, le_xls_writer));
|
||
|
}
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ format_methods
|
||
|
*/
|
||
|
zend_function_entry format_methods[] = {
|
||
|
PHP_ME(vtiful_format, __construct, format_construct_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, wrap, format_wrap_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, bold, format_bold_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, italic, format_italic_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, border, format_border_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, borderOfTheFourSides, format_border_of_the_four_sides_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, borderColor, format_border_color_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, borderColorOfTheFourSides, format_border_color_of_the_four_sides_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, align, format_align_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, number, format_number_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, fontColor, format_color_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, font, format_font_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, fontSize, format_size_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, strikeout, format_strikeout_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, underline, format_underline_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, unlocked, format_unlocked_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, toResource, format_to_resource_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_ME(vtiful_format, background, format_background_arginfo, ZEND_ACC_PUBLIC)
|
||
|
PHP_FE_END
|
||
|
};
|
||
|
/* }}} */
|
||
|
|
||
|
/** {{{ VTIFUL_STARTUP_FUNCTION
|
||
|
*/
|
||
|
VTIFUL_STARTUP_FUNCTION(format) {
|
||
|
zend_class_entry ce;
|
||
|
|
||
|
INIT_NS_CLASS_ENTRY(ce, "Vtiful\\Kernel", "Format", format_methods);
|
||
|
ce.create_object = format_objects_new;
|
||
|
vtiful_format_ce = zend_register_internal_class(&ce);
|
||
|
|
||
|
memcpy(&format_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
|
||
|
format_handlers.offset = XtOffsetOf(format_object, zo);
|
||
|
format_handlers.free_obj = format_objects_free;
|
||
|
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_SINGLE", LXW_UNDERLINE_SINGLE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_DOUBLE ", LXW_UNDERLINE_DOUBLE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_SINGLE_ACCOUNTING", LXW_UNDERLINE_SINGLE_ACCOUNTING)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "UNDERLINE_DOUBLE_ACCOUNTING", LXW_UNDERLINE_DOUBLE_ACCOUNTING)
|
||
|
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_LEFT", LXW_ALIGN_LEFT)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_CENTER", LXW_ALIGN_CENTER)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_RIGHT", LXW_ALIGN_RIGHT)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_FILL", LXW_ALIGN_FILL)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_JUSTIFY", LXW_ALIGN_JUSTIFY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_CENTER_ACROSS", LXW_ALIGN_CENTER_ACROSS)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_DISTRIBUTED", LXW_ALIGN_DISTRIBUTED)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_TOP", LXW_ALIGN_VERTICAL_TOP)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_BOTTOM", LXW_ALIGN_VERTICAL_BOTTOM)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_CENTER", LXW_ALIGN_VERTICAL_CENTER)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_JUSTIFY", LXW_ALIGN_VERTICAL_JUSTIFY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "FORMAT_ALIGN_VERTICAL_DISTRIBUTED", LXW_ALIGN_VERTICAL_DISTRIBUTED)
|
||
|
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_BLACK", LXW_COLOR_BLACK)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_BLUE", LXW_COLOR_BLUE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_BROWN", LXW_COLOR_BROWN)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_CYAN", LXW_COLOR_CYAN)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_GRAY", LXW_COLOR_GRAY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_GREEN", LXW_COLOR_GREEN)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_LIME", LXW_COLOR_LIME)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_MAGENTA", LXW_COLOR_MAGENTA)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_NAVY", LXW_COLOR_NAVY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_ORANGE", LXW_COLOR_ORANGE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_PINK", LXW_COLOR_PINK)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_PURPLE", LXW_COLOR_PURPLE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_RED", LXW_COLOR_RED)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_SILVER", LXW_COLOR_SILVER)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_WHITE", LXW_COLOR_WHITE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "COLOR_YELLOW", LXW_COLOR_YELLOW)
|
||
|
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_NONE", LXW_PATTERN_NONE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_SOLID", LXW_PATTERN_SOLID)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_MEDIUM_GRAY", LXW_PATTERN_MEDIUM_GRAY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_GRAY", LXW_PATTERN_DARK_GRAY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_GRAY", LXW_PATTERN_LIGHT_GRAY)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_HORIZONTAL", LXW_PATTERN_DARK_HORIZONTAL)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_VERTICAL", LXW_PATTERN_DARK_VERTICAL)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_DOWN", LXW_PATTERN_DARK_DOWN)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_UP", LXW_PATTERN_DARK_UP)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_GRID", LXW_PATTERN_DARK_GRID)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_DARK_TRELLIS", LXW_PATTERN_DARK_TRELLIS)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_HORIZONTAL", LXW_PATTERN_LIGHT_HORIZONTAL)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_VERTICAL", LXW_PATTERN_LIGHT_VERTICAL)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_DOWN", LXW_PATTERN_LIGHT_DOWN)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_UP", LXW_PATTERN_LIGHT_UP)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_GRID", LXW_PATTERN_LIGHT_GRID)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_LIGHT_TRELLIS", LXW_PATTERN_LIGHT_TRELLIS)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_GRAY_125", LXW_PATTERN_GRAY_125)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_GRAY_0625", LXW_PATTERN_GRAY_0625)
|
||
|
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_NONE", LXW_BORDER_NONE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_THIN", LXW_BORDER_THIN)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM", LXW_BORDER_MEDIUM)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASHED", LXW_BORDER_DASHED)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DOTTED", LXW_BORDER_DOTTED)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_THICK", LXW_BORDER_THICK)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DOUBLE", LXW_BORDER_DOUBLE)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_HAIR", LXW_BORDER_HAIR)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM_DASHED", LXW_BORDER_MEDIUM_DASHED)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASH_DOT", LXW_BORDER_DASH_DOT)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM_DASH_DOT", LXW_BORDER_MEDIUM_DASH_DOT)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASH_DOT_DOT", LXW_BORDER_DASH_DOT_DOT)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM_DASH_DOT_DOT", LXW_BORDER_MEDIUM_DASH_DOT_DOT)
|
||
|
REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_SLANT_DASH_DOT", LXW_BORDER_SLANT_DASH_DOT)
|
||
|
|
||
|
return SUCCESS;
|
||
|
}
|
||
|
/* }}} */
|