com gtk/php-gtk: - Include gen_gtk.h in php_gtk+ .h - Implement GtkCombo::set_popdown_strings( ) and GdkWindow::get_pointer() (patch by Steph):
ext/gtk+/gdk.overrides ext/gtk+/gtk .overrides ext/gtk+/php_gtk+.h test/bug_gtknotebook _switchpage.phpw

From: Date: Sat, 01 Oct 2005 19:13:26 +0000
Subject: com gtk/php-gtk: - Include gen_gtk.h in php_gtk+ .h - Implement GtkCombo::set_popdown_strings( ) and GdkWindow::get_pointer() (patch by Steph):
ext/gtk+/gdk.overrides ext/gtk+/gtk .overrides ext/gtk+/php_gtk+.h test/bug_gtknotebook _switchpage.phpw
Groups: php.gtk.cvs 
Request: Send a blank email to php-gtk-cvs+get-4796@lists.php.net to get a copy of this message
Commit: a13a97aa112f8267680161d18f9927511cc3ba1d Author: Andrei Zmievski <andrei@php.net> Sat, 1 Oct 2005 19:13:26 +0000 Parents: 28aa7c2747a16c4c13ec324c17891a29d7f1a50c Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=a13a97aa112f8267680161d18f9927511cc3ba1d Log: - Include gen_gtk.h in php_gtk+.h - Implement GtkCombo::set_popdown_strings() and GdkWindow::get_pointer() (patch by Steph) Changed paths: M ext/gtk+/gdk.overrides M ext/gtk+/gtk.overrides M ext/gtk+/php_gtk+.h M test/bug_gtknotebook_switchpage.phpw Diff: a13a97aa112f8267680161d18f9927511cc3ba1d diff --git a/ext/gtk+/gdk.overrides b/ext/gtk+/gdk.overrides index f264920..81318a3 100644 --- a/ext/gtk+/gdk.overrides +++ b/ext/gtk+/gdk.overrides @@ -952,6 +952,26 @@ PHP_METHOD %% }}} +%% {{{ GdkWindow + +%% +override gdk_window_get_pointer +PHP_METHOD(GdkWindow, get_pointer) +{ + int x, y = 0; + GdkModifierType mask = 0; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) + return; + + gdk_window_get_pointer(GDK_WINDOW(PHPG_GOBJECT(this_ptr)), &x, &y, &mask); + php_gtk_build_value(&return_value, "(iii)", x, y, mask); +} + +%% }}} + %% override gdk_text_extents PHP_METHOD @@ -974,8 +994,6 @@ PHPG_PROP_READER { #if defined(GDK_WINDOWING_X11) RETVAL_LONG(GDK_DRAWABLE_XID(((GdkDrawable *)((phpg_gobject_t *)object)->obj))); -#else - php_error(E_WARNING, "xid property is not supported"); #endif return SUCCESS; } diff --git a/ext/gtk+/gtk.overrides b/ext/gtk+/gtk.overrides index bed3858..403442e 100644 --- a/ext/gtk+/gtk.overrides +++ b/ext/gtk+/gtk.overrides @@ -637,6 +637,48 @@ PHP_METHOD } %% }}} +%% {{{ GtkCombo +%% +override gtk_combo_set_popdown_strings +PHP_METHOD +{ + zval *php_strings, **item; + GList *strings = NULL; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &php_strings)) { + return; + } + + zend_hash_internal_pointer_reset(Z_ARRVAL_P(php_strings)); + + while (zend_hash_get_current_data(Z_ARRVAL_P(php_strings), (void **)&item) == SUCCESS) { + + gchar *utf8 = NULL; + gsize utf8_len = 0; + zend_bool free_utf8 = 0; + + convert_to_string_ex(item); + utf8 = phpg_to_utf8(Z_STRVAL_PP(item), Z_STRLEN_PP(item), &utf8_len, &free_utf8 TSRMLS_CC); + + if (utf8 && free_utf8) { + SEPARATE_ZVAL(item); + zval_dtor(*item); + ZVAL_STRINGL(*item, utf8, utf8_len, 1); + g_free(utf8); + } + + strings = g_list_append(strings, Z_STRVAL_PP(item)); + zend_hash_move_forward(Z_ARRVAL_P(php_strings)); + } + + gtk_combo_set_popdown_strings(GTK_COMBO(PHPG_GOBJECT(this_ptr)), strings); + + g_list_free(strings); +} +%% }}} + %% include gtkcontainer.overrides %% {{{ GtkDialog diff --git a/ext/gtk+/php_gtk+.h b/ext/gtk+/php_gtk+.h index 9e17ac7..d9ca51c 100644 --- a/ext/gtk+/php_gtk+.h +++ b/ext/gtk+/php_gtk+.h @@ -49,6 +49,8 @@ void phpg_gtk_register_classes(void); void php_gtk_plus_register_types(); +#include "gen_gtk.h" + #if 0 PHP_GTK_API extern int le_gtk_object; PHP_GTK_API extern int le_php_gtk_wrapper; diff --git a/test/bug_gtknotebook_switchpage.phpw b/test/bug_gtknotebook_switchpage.phpw index 5c62e4a..63c57aa 100644 --- a/test/bug_gtknotebook_switchpage.phpw +++ b/test/bug_gtknotebook_switchpage.phpw @@ -29,5 +29,7 @@ if (!($argc > 1 && $argv[1] == 'debug')) { error_reporting(E_ERROR); } new Notebooktest(); -echo 'ok'; -?> \ No newline at end of file +echo "ok\n"; +gtk::main(); + +?>

« previous php.gtk.cvs (#4796) next »