[prev in list] [next in list] [prev in thread] [next in thread]
List: php-gtk
Subject: [PHP-GTK] cvs: php-gtk /generator generator.php templates.php /src Makefile.in php_gtk.h php_gtk_ob
From: "Andrei Zmievski" <andrei () ispi ! net>
Date: 2001-02-27 16:54:02
[Download RAW message or body]
andrei Tue Feb 27 08:54:02 2001 EDT
Modified files:
/php-gtk/generator generator.php templates.php
/php-gtk/src Makefile.in php_gtk.h php_gtk_object.c php_gtk_types.c
Log:
Generic property handlers now percolate up the inheritance chain
to see whether parent objects have the needed property.
["andrei-20010227085402.txt" (text/plain)]
Index: php-gtk/generator/generator.php
diff -u php-gtk/generator/generator.php:1.7 php-gtk/generator/generator.php:1.8
--- php-gtk/generator/generator.php:1.7 Mon Feb 26 21:16:35 2001
+++ php-gtk/generator/generator.php Tue Feb 27 08:54:01 2001
@@ -309,10 +309,11 @@
$obj_cast . '(PHP_GTK_GET(object))->' . $field_name);
$prop_code = str_replace("\n", "\n\t", $prop_code);
+ $var_list_code = $var_list->to_string();
$prop_checks .= sprintf($prop_check_tpl,
$else_clause,
$field_name,
- "\t" . $var_list->to_string(),
+ $var_list_code ? $var_list_code . "\t" : '',
$prop_code);
$else_clause = ' else ';
}
Index: php-gtk/generator/templates.php
diff -u php-gtk/generator/templates.php:1.3 php-gtk/generator/templates.php:1.4
--- php-gtk/generator/templates.php:1.3 Mon Feb 26 21:16:35 2001
+++ php-gtk/generator/templates.php Tue Feb 27 08:54:01 2001
@@ -69,17 +69,20 @@
$prop_check_tpl =
"%sif (!strcmp(prop_name, \"%s\")) {
-%s %s
+ %s *found = SUCCESS;
+ %s
}";
$prop_getter_tpl = "
-static void %s_get_property(zval *return_value, zval *object, zend_llist_element \
**element) +static void %s_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
ZVAL_NULL(return_value);
%s
+
+ *found = FAILURE;
}\n\n";
$init_class_tpl = "\n\tINIT_OVERLOADED_CLASS_ENTRY(ce, \"%s\", %s_functions, NULL, \
%s, NULL);\n";
Index: php-gtk/src/Makefile.in
diff -u php-gtk/src/Makefile.in:1.1.1.1 php-gtk/src/Makefile.in:1.2
--- php-gtk/src/Makefile.in:1.1.1.1 Mon Jan 29 14:15:58 2001
+++ php-gtk/src/Makefile.in Tue Feb 27 08:54:01 2001
@@ -1,5 +1,5 @@
LTLIBRARY_NAME = libphp_gtk_src.la
-LTLIBRARY_SOURCES = php_gtk.c php_gtk_object.c php_gtk_types.c php_gtk_util.c \
php_gtk_gen.c +LTLIBRARY_SOURCES = php_gtk.c php_gtk_object.c php_gtk_types.c \
php_gtk_util.c $(srcdir)/php_gtk_gen.c
$(srcdir)/php_gtk_gen.c: $(top_srcdir)/generator/gtk.defs \
$(top_srcdir)/generator/gdk.defs \ $(top_srcdir)/generator/gtk-extrafuncs.defs \
$(top_srcdir)/generator/gtk.overrides
Index: php-gtk/src/php_gtk.h
diff -u php-gtk/src/php_gtk.h:1.13 php-gtk/src/php_gtk.h:1.14
--- php-gtk/src/php_gtk.h:1.13 Mon Feb 26 21:16:35 2001
+++ php-gtk/src/php_gtk.h Tue Feb 27 08:54:01 2001
@@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: php_gtk.h,v 1.13 2001/02/27 05:16:35 andrei Exp $: */
+/* $Id: php_gtk.h,v 1.14 2001/02/27 16:54:01 andrei Exp $: */
#ifndef _PHP_GTK_H
#define _PHP_GTK_H
@@ -62,7 +62,7 @@
extern zend_class_entry *gtk_accel_group_ce;
extern zend_class_entry *gtk_style_ce;
-typedef void (*prop_getter_t)(zval *result, zval *object, zend_llist_element \
**element); +typedef void (*prop_getter_t)(zval *return_value, zval *object, \
zend_llist_element **element, int *found); typedef int (*prop_setter_t)(zval \
*object, zend_llist_element **element, zval *value);
/* Useful macros. */
Index: php-gtk/src/php_gtk_object.c
diff -u php-gtk/src/php_gtk_object.c:1.10 php-gtk/src/php_gtk_object.c:1.11
--- php-gtk/src/php_gtk_object.c:1.10 Mon Feb 26 21:16:35 2001
+++ php-gtk/src/php_gtk_object.c Tue Feb 27 08:54:01 2001
@@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: php_gtk_object.c,v 1.10 2001/02/27 05:16:35 andrei Exp $ */
+/* $Id: php_gtk_object.c,v 1.11 2001/02/27 16:54:01 andrei Exp $ */
#include "php_gtk.h"
@@ -568,6 +568,8 @@
zend_llist_element *element;
zval *object = property_reference->object;
prop_getter_t *getter;
+ zend_class_entry *ce;
+ int found = FAILURE;
for (element=property_reference->elements_list->head; element; \
element=element->next) { overloaded_property = (zend_overloaded_element *) \
element->data; @@ -578,9 +580,12 @@
return result;
}
- if (zend_hash_index_find(&php_gtk_prop_getters, (long)object->value.obj.ce, (void \
**)&getter) == SUCCESS) {
- (*getter)(&result, object, &element);
- } else {
+ for (ce = Z_OBJCE_P(object); ce != NULL && found != SUCCESS; ce = ce->parent) {
+ if (zend_hash_index_find(&php_gtk_prop_getters, (long)ce, (void **)&getter) == \
SUCCESS) { + (*getter)(&result, object, &element, &found);
+ }
+ }
+ if (found == FAILURE) {
convert_to_null(&result);
return result;
}
@@ -601,7 +606,8 @@
zval *object = property_reference->object;
prop_getter_t *getter;
prop_setter_t *setter;
- int retval;
+ zend_class_entry *ce;
+ int retval, found = FAILURE;
/*
* We want to stop at the last overloaded object reference - the rest can
@@ -619,11 +625,13 @@
return FAILURE;
}
- if (zend_hash_index_find(&php_gtk_prop_getters, (long)object->value.obj.ce, (void \
**)&getter) == SUCCESS) {
- (*getter)(&result, object, &element);
- } else {
- return FAILURE;
+ for (ce = Z_OBJCE_P(object); ce != NULL && found != SUCCESS; ce = ce->parent) {
+ if (zend_hash_index_find(&php_gtk_prop_getters, (long)ce, (void **)&getter) == \
SUCCESS) { + (*getter)(&result, object, &element, &found);
+ }
}
+ if (found == FAILURE)
+ return FAILURE;
object = &result;
zval_dtor(&overloaded_property->element);
Index: php-gtk/src/php_gtk_types.c
diff -u php-gtk/src/php_gtk_types.c:1.14 php-gtk/src/php_gtk_types.c:1.15
--- php-gtk/src/php_gtk_types.c:1.14 Mon Feb 26 13:21:20 2001
+++ php-gtk/src/php_gtk_types.c Tue Feb 27 08:54:01 2001
@@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: php_gtk_types.c,v 1.14 2001/02/26 21:21:20 andrei Exp $ */
+/* $Id: php_gtk_types.c,v 1.15 2001/02/27 16:54:01 andrei Exp $ */
#include "php_gtk.h"
@@ -573,7 +573,7 @@
return result;
}
-static void gdk_window_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_window_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
zval *value;
GdkWindow *win = PHP_GDK_WINDOW_GET(object);
@@ -581,55 +581,60 @@
GdkModifierType p_mask;
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "width")) {
gdk_window_get_size(win, &x, NULL);
- ZVAL_LONG(result, x);
+ ZVAL_LONG(return_value, x);
} else if (!strcmp(prop_name, "height")) {
gdk_window_get_size(win, NULL, &y);
- ZVAL_LONG(result, y);
+ ZVAL_LONG(return_value, y);
} else if (!strcmp(prop_name, "x")) {
gdk_window_get_position(win, &x, NULL);
- ZVAL_LONG(result, x);
+ ZVAL_LONG(return_value, x);
} else if (!strcmp(prop_name, "y")) {
gdk_window_get_position(win, NULL, &y);
- ZVAL_LONG(result, y);
+ ZVAL_LONG(return_value, y);
} else if (!strcmp(prop_name, "colormap")) {
- *result = *php_gdk_colormap_new(gdk_window_get_colormap(win));
+ *return_value = *php_gdk_colormap_new(gdk_window_get_colormap(win));
} else if (!strcmp(prop_name, "pointer")) {
gdk_window_get_pointer(win, &x, &y, NULL);
- *result = *php_gtk_build_value("(ii)", x, y);
+ *return_value = *php_gtk_build_value("(ii)", x, y);
} else if (!strcmp(prop_name, "pointer_state")) {
gdk_window_get_pointer(win, NULL, NULL, &p_mask);
- ZVAL_LONG(result, p_mask);
+ ZVAL_LONG(return_value, p_mask);
} else if (!strcmp(prop_name, "parent")) {
GdkWindow *parent = gdk_window_get_parent(win);
if (parent)
- *result = *php_gdk_window_new(parent);
+ *return_value = *php_gdk_window_new(parent);
} else if (!strcmp(prop_name, "toplevel")) {
- *result = *php_gdk_window_new(gdk_window_get_toplevel(win));
+ *return_value = *php_gdk_window_new(gdk_window_get_toplevel(win));
} else if (!strcmp(prop_name, "children")) {
GList *children, *tmp;
zval *child;
children = gdk_window_get_children(win);
- array_init(result);
+ array_init(return_value);
for (tmp = children; tmp; tmp = tmp->next) {
child = php_gdk_window_new(tmp->data);
- zend_hash_next_index_insert(Z_ARRVAL_P(result), &child, sizeof(zval *), NULL);
+ zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &child, sizeof(zval *), \
NULL); }
g_list_free(children);
} else if (!strcmp(prop_name, "type")) {
- ZVAL_LONG(result, gdk_window_get_type(win));
+ ZVAL_LONG(return_value, gdk_window_get_type(win));
} else if (!strcmp(prop_name, "depth")) {
gdk_window_get_geometry(win, NULL, NULL, NULL, NULL, &x);
- ZVAL_LONG(result, x);
+ ZVAL_LONG(return_value, x);
}
-#ifdef WITH_XSTUFF
+#ifndef G_OS_WIN32
else if (!strcmp(prop_name, "xid")) {
- ZVAL_LONG(result, GDK_WINDOW_XWINDOW(win));
+ ZVAL_LONG(return_value, GDK_WINDOW_XWINDOW(win));
}
#endif
+ else {
+ *found = FAILURE;
+ }
+
+ *found = SUCCESS;
}
@@ -691,22 +696,26 @@
return result;
}
-static void gdk_color_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_color_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GdkColor *color = PHP_GDK_COLOR_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "red")) {
- ZVAL_LONG(result, color->red);
+ ZVAL_LONG(return_value, color->red);
} else if (!strcmp(prop_name, "green")) {
- ZVAL_LONG(result, color->green);
+ ZVAL_LONG(return_value, color->green);
} else if (!strcmp(prop_name, "blue")) {
- ZVAL_LONG(result, color->blue);
+ ZVAL_LONG(return_value, color->blue);
} else if (!strcmp(prop_name, "pixel")) {
- ZVAL_LONG(result, color->pixel);
+ ZVAL_LONG(return_value, color->pixel);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
static int gdk_color_set_property(zval *object, zend_llist_element **element, zval \
*value) @@ -804,7 +813,7 @@
gdk_colormap_unref(obj);
}
-static void gdk_colormap_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_colormap_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GdkColormap *cmap = PHP_GDK_COLORMAP_GET(object);
zend_overloaded_element *property = (zend_overloaded_element *)(*element)->data;
@@ -812,7 +821,7 @@
char *prop_name = Z_STRVAL(property->element);
int prop_index, i;
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "colors") && cmap->colors) {
next = (*element)->next;
@@ -825,15 +834,19 @@
php_error(E_WARNING, "colormap index out of range");
return;
}
- *result = *php_gdk_color_new(&cmap->colors[prop_index]);
+ *return_value = *php_gdk_color_new(&cmap->colors[prop_index]);
}
} else {
- array_init(result);
+ array_init(return_value);
for (i = 0; i < cmap->size; i++)
- add_next_index_zval(result, php_gdk_color_new(&cmap->colors[i]));
+ add_next_index_zval(return_value, php_gdk_color_new(&cmap->colors[i]));
}
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
@@ -898,25 +911,29 @@
gdk_cursor_destroy(obj);
}
-static void gdk_cursor_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_cursor_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GdkCursor *cursor = PHP_GDK_CURSOR_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "type")) {
- ZVAL_LONG(result, cursor->type);
+ ZVAL_LONG(return_value, cursor->type);
} else if (!strcmp(prop_name, "name")) {
GtkEnumValue *vals = gtk_type_enum_get_values(GTK_TYPE_GDK_CURSOR_TYPE);
while (vals->value_name != NULL && vals->value != cursor->type)
vals++;
if (vals->value_nick) {
- ZVAL_STRING(result, vals->value_nick, 1);
+ ZVAL_STRING(return_value, vals->value_nick, 1);
} else {
- ZVAL_STRINGL(result, "*unknown*", sizeof("*unknown*"), 1);
+ ZVAL_STRINGL(return_value, "*unknown*", sizeof("*unknown*"), 1);
}
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
@@ -950,42 +967,46 @@
gdk_visual_unref(obj);
}
-static void gdk_visual_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_visual_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GdkVisual *visual = PHP_GDK_VISUAL_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "type")) {
- ZVAL_LONG(result, visual->type);
+ ZVAL_LONG(return_value, visual->type);
} else if (!strcmp(prop_name, "depth")) {
- ZVAL_LONG(result, visual->depth);
+ ZVAL_LONG(return_value, visual->depth);
} else if (!strcmp(prop_name, "byte_order")) {
- ZVAL_LONG(result, visual->byte_order);
+ ZVAL_LONG(return_value, visual->byte_order);
} else if (!strcmp(prop_name, "colormap_size")) {
- ZVAL_LONG(result, visual->colormap_size);
+ ZVAL_LONG(return_value, visual->colormap_size);
} else if (!strcmp(prop_name, "bits_per_rgb")) {
- ZVAL_LONG(result, visual->bits_per_rgb);
+ ZVAL_LONG(return_value, visual->bits_per_rgb);
} else if (!strcmp(prop_name, "red_mask")) {
- ZVAL_LONG(result, visual->red_shift);
+ ZVAL_LONG(return_value, visual->red_shift);
} else if (!strcmp(prop_name, "red_shift")) {
- ZVAL_LONG(result, visual->red_prec);
+ ZVAL_LONG(return_value, visual->red_prec);
} else if (!strcmp(prop_name, "red_prec")) {
- ZVAL_LONG(result, visual->red_mask);
+ ZVAL_LONG(return_value, visual->red_mask);
} else if (!strcmp(prop_name, "green_mask")) {
- ZVAL_LONG(result, visual->green_mask);
+ ZVAL_LONG(return_value, visual->green_mask);
} else if (!strcmp(prop_name, "green_shift")) {
- ZVAL_LONG(result, visual->green_shift);
+ ZVAL_LONG(return_value, visual->green_shift);
} else if (!strcmp(prop_name, "green_prec")) {
- ZVAL_LONG(result, visual->green_prec);
+ ZVAL_LONG(return_value, visual->green_prec);
} else if (!strcmp(prop_name, "blue_mask")) {
- ZVAL_LONG(result, visual->blue_mask);
+ ZVAL_LONG(return_value, visual->blue_mask);
} else if (!strcmp(prop_name, "blue_shift")) {
- ZVAL_LONG(result, visual->blue_shift);
+ ZVAL_LONG(return_value, visual->blue_shift);
} else if (!strcmp(prop_name, "blue_prec")) {
- ZVAL_LONG(result, visual->blue_prec);
+ ZVAL_LONG(return_value, visual->blue_prec);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
@@ -1076,20 +1097,24 @@
gdk_font_unref(obj);
}
-static void gdk_font_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_font_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GdkFont *font = PHP_GDK_FONT_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "type")) {
- ZVAL_LONG(result, font->type);
+ ZVAL_LONG(return_value, font->type);
} else if (!strcmp(prop_name, "ascent")) {
- ZVAL_LONG(result, font->ascent);
+ ZVAL_LONG(return_value, font->ascent);
} else if (!strcmp(prop_name, "descent")) {
- ZVAL_LONG(result, font->descent);
+ ZVAL_LONG(return_value, font->descent);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
@@ -1162,56 +1187,60 @@
gdk_gc_unref(obj);
}
-static void gdk_gc_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_gc_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GdkGC *gc = PHP_GDK_GC_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
GdkGCValues gcv;
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
gdk_gc_get_values(gc, &gcv);
if (!strcmp(prop_name, "foreground")) {
- *result = *php_gdk_color_new(&gcv.foreground);
+ *return_value = *php_gdk_color_new(&gcv.foreground);
} else if (!strcmp(prop_name, "background")) {
- *result = *php_gdk_color_new(&gcv.background);
+ *return_value = *php_gdk_color_new(&gcv.background);
} else if (!strcmp(prop_name, "font")) {
- *result = *php_gdk_font_new(gcv.font);
+ *return_value = *php_gdk_font_new(gcv.font);
} else if (!strcmp(prop_name, "function")) {
- ZVAL_LONG(result, gcv.function);
+ ZVAL_LONG(return_value, gcv.function);
} else if (!strcmp(prop_name, "fill")) {
- ZVAL_LONG(result, gcv.fill);
+ ZVAL_LONG(return_value, gcv.fill);
} else if (!strcmp(prop_name, "tile")) {
if (gcv.tile)
- *result = *php_gdk_window_new(gcv.tile);
+ *return_value = *php_gdk_window_new(gcv.tile);
} else if (!strcmp(prop_name, "stipple")) {
if (gcv.stipple)
- *result = *php_gdk_window_new(gcv.stipple);
+ *return_value = *php_gdk_window_new(gcv.stipple);
} else if (!strcmp(prop_name, "clip_mask")) {
if (gcv.clip_mask)
- *result = *php_gdk_window_new(gcv.clip_mask);
+ *return_value = *php_gdk_window_new(gcv.clip_mask);
} else if (!strcmp(prop_name, "subwindow_mode")) {
- ZVAL_LONG(result, gcv.subwindow_mode);
+ ZVAL_LONG(return_value, gcv.subwindow_mode);
} else if (!strcmp(prop_name, "ts_x_origin")) {
- ZVAL_LONG(result, gcv.ts_x_origin);
+ ZVAL_LONG(return_value, gcv.ts_x_origin);
} else if (!strcmp(prop_name, "ts_y_origin")) {
- ZVAL_LONG(result, gcv.ts_y_origin);
+ ZVAL_LONG(return_value, gcv.ts_y_origin);
} else if (!strcmp(prop_name, "clip_x_origin")) {
- ZVAL_LONG(result, gcv.clip_x_origin);
+ ZVAL_LONG(return_value, gcv.clip_x_origin);
} else if (!strcmp(prop_name, "clip_y_origin")) {
- ZVAL_LONG(result, gcv.clip_y_origin);
+ ZVAL_LONG(return_value, gcv.clip_y_origin);
} else if (!strcmp(prop_name, "graphics_exposures")) {
- ZVAL_LONG(result, gcv.graphics_exposures);
+ ZVAL_LONG(return_value, gcv.graphics_exposures);
} else if (!strcmp(prop_name, "line_width")) {
- ZVAL_LONG(result, gcv.line_width);
+ ZVAL_LONG(return_value, gcv.line_width);
} else if (!strcmp(prop_name, "line_style")) {
- ZVAL_LONG(result, gcv.line_style);
+ ZVAL_LONG(return_value, gcv.line_style);
} else if (!strcmp(prop_name, "cap_style")) {
- ZVAL_LONG(result, gcv.cap_style);
+ ZVAL_LONG(return_value, gcv.cap_style);
} else if (!strcmp(prop_name, "join_style")) {
- ZVAL_LONG(result, gcv.join_style);
+ ZVAL_LONG(return_value, gcv.join_style);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
static int gdk_gc_set_property(zval *object, zend_llist_element **element, zval \
*value) @@ -1324,38 +1353,42 @@
gdk_drag_context_unref(obj);
}
-static void gdk_drag_context_get_property(zval *result, zval *object, \
zend_llist_element **element) +static void gdk_drag_context_get_property(zval \
*return_value, zval *object, zend_llist_element **element, int *found) {
GdkDragContext *context = PHP_GDK_DRAG_CONTEXT_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "protocol")) {
- ZVAL_LONG(result, context->protocol);
+ ZVAL_LONG(return_value, context->protocol);
} else if (!strcmp(prop_name, "is_source")) {
- ZVAL_BOOL(result, context->is_source);
+ ZVAL_BOOL(return_value, context->is_source);
} else if (!strcmp(prop_name, "source_window")) {
if (context->source_window)
- *result = *php_gdk_window_new(context->source_window);
+ *return_value = *php_gdk_window_new(context->source_window);
} else if (!strcmp(prop_name, "dest_window")) {
if (context->dest_window)
- *result = *php_gdk_window_new(context->dest_window);
+ *return_value = *php_gdk_window_new(context->dest_window);
} else if (!strcmp(prop_name, "targets")) {
GList *tmp;
- array_init(result);
+ array_init(return_value);
for (tmp = context->targets; tmp; tmp = tmp->next)
- add_next_index_zval(result, php_gdk_atom_new(GPOINTER_TO_INT(tmp->data)));
+ add_next_index_zval(return_value, php_gdk_atom_new(GPOINTER_TO_INT(tmp->data)));
} else if (!strcmp(prop_name, "actions")) {
- ZVAL_LONG(result, context->actions);
+ ZVAL_LONG(return_value, context->actions);
} else if (!strcmp(prop_name, "suggested_action")) {
- ZVAL_LONG(result, context->suggested_action);
+ ZVAL_LONG(return_value, context->suggested_action);
} else if (!strcmp(prop_name, "action")) {
- ZVAL_LONG(result, context->action);
+ ZVAL_LONG(return_value, context->action);
} else if (!strcmp(prop_name, "start_time")) {
- ZVAL_LONG(result, context->start_time);
+ ZVAL_LONG(return_value, context->start_time);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
@@ -1398,26 +1431,30 @@
return result;
}
-static void gtk_selection_data_get_property(zval *result, zval *object, \
zend_llist_element **element) +static void gtk_selection_data_get_property(zval \
*return_value, zval *object, zend_llist_element **element, int *found) {
GtkSelectionData *data = PHP_GTK_SELECTION_DATA_GET(object);
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "selection")) {
- *result = *php_gdk_atom_new(data->selection);
+ *return_value = *php_gdk_atom_new(data->selection);
} else if (!strcmp(prop_name, "target")) {
- *result = *php_gdk_atom_new(data->target);
+ *return_value = *php_gdk_atom_new(data->target);
} else if (!strcmp(prop_name, "type")) {
- *result = *php_gdk_atom_new(data->type);
+ *return_value = *php_gdk_atom_new(data->type);
} else if (!strcmp(prop_name, "format")) {
- ZVAL_LONG(result, data->format);
+ ZVAL_LONG(return_value, data->format);
} else if (!strcmp(prop_name, "length")) {
- ZVAL_LONG(result, data->length);
+ ZVAL_LONG(return_value, data->length);
} else if (!strcmp(prop_name, "data") && data->length > -1) {
- ZVAL_STRINGL(result, data->data, data->length, 1);
+ ZVAL_STRINGL(return_value, data->data, data->length, 1);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
/* GtkCtreeNode */
@@ -1443,40 +1480,44 @@
return result;
}
-static void gtk_ctree_node_get_property(zval *result, zval *object, \
zend_llist_element **element) +static void gtk_ctree_node_get_property(zval \
*return_value, zval *object, zend_llist_element **element, int *found) {
GtkCTreeNode *node = PHP_GTK_CTREE_NODE_GET(object);
GtkCTreeNode *temp;
char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "parent")) {
temp = GTK_CTREE_ROW(node)->parent;
if (temp)
- *result = *php_gtk_ctree_node_new(temp);
+ *return_value = *php_gtk_ctree_node_new(temp);
} else if (!strcmp(prop_name, "sibling")) {
temp = GTK_CTREE_ROW(node)->sibling;
if (temp)
- *result = *php_gtk_ctree_node_new(temp);
+ *return_value = *php_gtk_ctree_node_new(temp);
} else if (!strcmp(prop_name, "children")) {
zval *php_node;
temp = GTK_CTREE_ROW(node)->children;
- array_init(result);
+ array_init(return_value);
while (temp) {
php_node = php_gtk_ctree_node_new(temp);
- add_next_index_zval(result, php_node);
+ add_next_index_zval(return_value, php_node);
zval_ptr_dtor(&php_node);
temp = GTK_CTREE_ROW(temp)->sibling;
}
} else if (!strcmp(prop_name, "level")) {
- ZVAL_LONG(result, GTK_CTREE_ROW(node)->level);
+ ZVAL_LONG(return_value, GTK_CTREE_ROW(node)->level);
} else if (!strcmp(prop_name, "is_leaf")) {
- ZVAL_BOOL(result, GTK_CTREE_ROW(node)->is_leaf);
+ ZVAL_BOOL(return_value, GTK_CTREE_ROW(node)->is_leaf);
} else if (!strcmp(prop_name, "expanded")) {
- ZVAL_BOOL(result, GTK_CTREE_ROW(node)->expanded);
+ ZVAL_BOOL(return_value, GTK_CTREE_ROW(node)->expanded);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
@@ -1688,58 +1729,62 @@
}
}
-static void gtk_style_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gtk_style_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found) {
GtkStyle *style = PHP_GTK_STYLE_GET(object);
zend_overloaded_element *property = (zend_overloaded_element *)(*element)->data;
char *prop_name = Z_STRVAL(property->element);
- ZVAL_NULL(result);
+ ZVAL_NULL(return_value);
if (!strcmp(prop_name, "black")) {
- *result = *php_gdk_color_new(&style->black);
+ *return_value = *php_gdk_color_new(&style->black);
} else if (!strcmp(prop_name, "white")) {
- *result = *php_gdk_color_new(&style->white);
+ *return_value = *php_gdk_color_new(&style->white);
} else if (!strcmp(prop_name, "font")) {
- *result = *php_gdk_font_new(style->font);
+ *return_value = *php_gdk_font_new(style->font);
} else if (!strcmp(prop_name, "black_gc")) {
- *result = *php_gdk_gc_new(style->black_gc);
+ *return_value = *php_gdk_gc_new(style->black_gc);
} else if (!strcmp(prop_name, "white_gc")) {
- *result = *php_gdk_gc_new(style->white_gc);
+ *return_value = *php_gdk_gc_new(style->white_gc);
} else if (!strcmp(prop_name, "colormap")) {
if (style->colormap)
- *result = *php_gdk_colormap_new(style->colormap);
+ *return_value = *php_gdk_colormap_new(style->colormap);
} else if (!strcmp(prop_name, "fg")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->fg, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->fg, element);
} else if (!strcmp(prop_name, "bg")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->bg, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->bg, element);
} else if (!strcmp(prop_name, "light")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->light, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->light, element);
} else if (!strcmp(prop_name, "dark")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->dark, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->dark, element);
} else if (!strcmp(prop_name, "mid")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->mid, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->mid, element);
} else if (!strcmp(prop_name, "text")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->text, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->text, element);
} else if (!strcmp(prop_name, "base")) {
- style_helper_get(result, STYLE_COLOR_ARRAY, style->base, element);
+ style_helper_get(return_value, STYLE_COLOR_ARRAY, style->base, element);
} else if (!strcmp(prop_name, "fg_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->fg_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->fg_gc, element);
} else if (!strcmp(prop_name, "bg_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->bg_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->bg_gc, element);
} else if (!strcmp(prop_name, "light_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->light_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->light_gc, element);
} else if (!strcmp(prop_name, "dark_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->dark_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->dark_gc, element);
} else if (!strcmp(prop_name, "mid_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->mid_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->mid_gc, element);
} else if (!strcmp(prop_name, "text_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->text_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->text_gc, element);
} else if (!strcmp(prop_name, "base_gc")) {
- style_helper_get(result, STYLE_GC_ARRAY, style->base_gc, element);
+ style_helper_get(return_value, STYLE_GC_ARRAY, style->base_gc, element);
} else if (!strcmp(prop_name, "bg_pixmap")) {
- style_helper_get(result, STYLE_PIXMAP_ARRAY, style->bg_pixmap, element);
+ style_helper_get(return_value, STYLE_PIXMAP_ARRAY, style->bg_pixmap, element);
+ } else {
+ *found = FAILURE;
}
+
+ *found = SUCCESS;
}
static int style_helper_set(style_array_type type, gpointer array, zval *value, \
zend_llist_element **element)
--
PHP GTK Mailing List (http://www.php.net/)
To unsubscribe, e-mail: php-gtk-unsubscribe@lists.php.net
For additional commands, e-mail: php-gtk-help@lists.php.net
To contact the list administrators, e-mail: php-list-admin@lists.php.net
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic