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: | David Soria Parra | 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();
+
+?>