Re: Re: GtkSheet style

From: Date: Thu, 13 Jan 2005 21:07:19 +0000
Subject: Re: Re: GtkSheet style
References: 1 2 3 4 5 6 7 8 9 10 11  Groups: php.gtk.dev 
Request: Send a blank email to php-gtk-dev+get-864@lists.php.net to get a copy of this message
It's an object, no? Firstly - is it defined in gtkextra.h? (I don't have this on board currently.) If it isn't you'll need to find the definition and add the relevant header to overrides before you can wrap it. ----- Original Message ----- From: "Ivan Rodriguez" <epplestun@gmail.com> To: <alan@akbkhome.com> Cc: <steph@zend.com>; <php-gtk-dev@lists.php.net> Sent: Thursday, January 13, 2005 10:59 PM Subject: Re: [PHP-GTK-DEV] Re: [PHP-GTK] Re: GtkSheet style Hello I write this in the extra.defs file: (struct SheetRange (in-module Gtk) (c-name GtkSheetRange) (field (type-and-name gint row0)) (field (type-and-name gint col0)) (field (type-and-name gint rowi)) (field (type-and-name gint coli)) ) With this code the functions range_set_* compile perfect and generate the C code in gen_extra.c PHP_GTK_EXPORT_CE(gtk_sheet_range_ce); /* struct GtkSheetRange */ zval *PHP_GTK_EXPORT_FUNC(php_gtk_sheet_range_new)(GtkSheetRange *obj) { zval *result; TSRMLS_FETCH(); if (!obj) { MAKE_STD_ZVAL(result); ZVAL_NULL(result); return result; } MAKE_STD_ZVAL(result); object_init_ex(result, gtk_sheet_range_ce); add_property_long(result, "row0", obj->row0); add_property_long(result, "col0", obj->col0); add_property_long(result, "rowi", obj->rowi); add_property_long(result, "coli", obj->coli); return result; } zend_bool PHP_GTK_EXPORT_FUNC(php_gtk_sheet_range_get)(zval *wrapper, GtkSheetRange *obj) { zval **item; TSRMLS_FETCH(); if (!php_gtk_check_class(wrapper, gtk_sheet_range_ce)) return 0; if (zend_hash_find(Z_OBJPROP_P(wrapper), "row0", sizeof("row0"), (void **)&item) == SUCCESS && Z_TYPE_PP(item) == IS_LONG) obj->row0 = (gint)Z_LVAL_PP(item); else return 0; if (zend_hash_find(Z_OBJPROP_P(wrapper), "col0", sizeof("col0"), (void **)&item) == SUCCESS && Z_TYPE_PP(item) == IS_LONG) obj->col0 = (gint)Z_LVAL_PP(item); else return 0; if (zend_hash_find(Z_OBJPROP_P(wrapper), "rowi", sizeof("rowi"), (void **)&item) == SUCCESS && Z_TYPE_PP(item) == IS_LONG) obj->rowi = (gint)Z_LVAL_PP(item); else return 0; if (zend_hash_find(Z_OBJPROP_P(wrapper), "coli", sizeof("coli"), (void **)&item) == SUCCESS && Z_TYPE_PP(item) == IS_LONG) obj->coli = (gint)Z_LVAL_PP(item); else return 0; return 1; } PHP_FUNCTION(gtksheetrange) { long row0, col0, rowi, coli; NOT_STATIC_METHOD(); if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "iiii", &row0, &col0, &rowi, &coli)) { php_gtk_invalidate(this_ptr); return; } add_property_long(this_ptr, "row0", row0); add_property_long(this_ptr, "col0", col0); add_property_long(this_ptr, "rowi", rowi); add_property_long(this_ptr, "coli", coli); } static function_entry php_gtk_sheet_range_functions[] = { {"GtkSheetRange", PHP_FN(gtksheetrange), NULL}, {"gtksheet_range", PHP_FN(gtksheetrange), NULL}, {NULL, NULL, NULL} }; INIT_CLASS_ENTRY(ce, "GtkSheetRange", php_gtk_sheet_range_functions); gtk_sheet_range_ce = zend_register_internal_class_ex(&ce, NULL, NULL TSRMLS_CC); Now if y do this in PHP: $cmap = gtk::widget_get_default_colormap(); $bgcolor = $cmap->alloc('#eae8e3'); $sheet = new GtkSheet(5, 5, "test"); $sheet->range_set_background(1, $bgcolor); $sheet->show(); PHP says: Warning: range_set_background() expects argument 1 to be GtkSheetRange, integer given in /home/epplestun/sheet.php on line 24 But I don't know how to create a GtkSheetRange in PHP code, I try with new GtkSheetRange but not work :-( Any idea?¿ El jue, 13-01-2005 a las 15:38, Ivan Rodriguez escribió: > Hi > > I´m thinking to something like: > > (object SheetRange > (in-module Gtk) > (parent Widget (Gtk)) > (c-name GtkSheetRange) > ) > > (method set_range > (of-object SheetRange (Gtk)) > (c-name gtk_sheet_range_get_points) > (return-type GtkSheetRange) > (parameter (type-and-name gint* *row0)) > (parameter (type-and-name gint* *col0)) > (parameter (type-and-name gint* *rowi)) > (parameter (type-and-name gint* *coli)) > ) > > The problem is that there is no a function like the written one and I > don´t know how to assing the values to the object, what can I do? -- Ivan Rodriguez <epplestun@gmail.com>

« previous php.gtk.dev (#864) next »