diff --git a/ext/gtk+/gtk-2.14.overrides b/ext/gtk+/gtk-2.14.overrides index 6b3bafe9..92c1961d 100644 --- a/ext/gtk+/gtk-2.14.overrides +++ b/ext/gtk+/gtk-2.14.overrides @@ -1,5 +1,31 @@ %% include gtk-2.12.overrides +%% +override gtk_window_group_list_windows +PHP_METHOD +{ + GList *list, *item; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")){ + return; + } + + list = gtk_window_group_list_windows(GTK_WINDOW_GROUP(PHPG_GOBJECT(this_ptr))); + + array_init(return_value); + + for (item = list; item; item = item->next) { + zval *php_item = NULL; + GtkWidget *window = item->data; + phpg_gobject_new(&php_item, G_OBJECT(window) TSRMLS_CC); + add_next_index_zval(return_value, php_item); + } + + g_list_free(list); +} + %% deprecate gtk_box_pack_end_defaults since GTK+ 2.14, use GtkBox::pack_end() instead @@ -26,4 +52,4 @@ since GTK+ 2.14, The toolkit-wide \"gtk-enable-tooltips\" property is now used i %% deprecate gtk_toolbar_get_tooltips -since GTK+ 2.14, The toolkit-wide \"gtk-enable-tooltips\" property is now used instead. \ No newline at end of file +since GTK+ 2.14, The toolkit-wide \"gtk-enable-tooltips\" property is now used instead. diff --git a/tests/GtkWindowGroup/list_windows.phpt b/tests/GtkWindowGroup/list_windows.phpt new file mode 100644 index 00000000..41a9d0ac --- /dev/null +++ b/tests/GtkWindowGroup/list_windows.phpt @@ -0,0 +1,36 @@ +--TEST-- +GtkWindowGroup->list_windows method +--SKIPIF-- +list_windows not available, requires GTK 2.14 or higher'); +?> +--FILE-- +add_window($window); +$group->add_window($window2); + +$list = $group->list_windows(); + +var_dump(is_array($list)); + +foreach ($list as $obj){ + echo $obj.PHP_EOL; +} + +/* Test wrong arg */ +var_dump($group->list_windows(1)); +?> +--EXPECTF-- +bool(true) +[GtkWindow object (GtkWindow Gtk+ type)] +[GtkWindow object (GtkWindow Gtk+ type)] +PHP Warning: GtkWindowGroup::list_windows() expects exactly 0 parameters, 1 given in %s on line %d +NULL