com gtk/php-gtk: GtkDialog::__construct() GtkDial og::add_buttons() Gtk::icon_size_lookup_f or_settings() GtkEditable::insert_text() Gt kTextView::get_line_yrange() GtkTextView::get _iter_at_position() GtkTextView::get_line_a t_y() GtkTreeViewColumn::cell_get_size() GdkWindow::get_geometry() GdkWindow::get_posi tion() GdkWindow::get_origin() GdkWindow: :get_root_origin() GdkWindow::at_pointer( ) (previously Gdk::window_at_pointer()) GdkDisplay::window_at
[email protected] (David Soria Parra) Sat, 14 Jan 2006 21:49:03 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: c29a24cfa1a0ed8447a8e166dfb42e87e7767286 Author: Christian Weiske <[email protected]> Sat, 14 Jan 2006 21:49:03 +0000 Parents: 927f9e9656296abd432b5236d57a5946d62726ac Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=c29a24cfa1a0ed8447a8e166dfb42e87e7767286 Log: GtkDialog::__construct() GtkDialog::add_buttons() Gtk::icon_size_lookup_for_settings() GtkEditable::insert_text() GtkTextView::get_line_yrange() GtkTextView::get_iter_at_position() GtkTextView::get_line_at_y() GtkTreeViewColumn::cell_get_size() GdkWindow::get_geometry() GdkWindow::get_position() GdkWindow::get_origin() GdkWindow::get_root_origin() GdkWindow::at_pointer() (previously Gdk::window_at_pointer()) GdkDisplay::window_at_pointer() Changed paths: M ext/gtk+/gdk.overrides M ext/gtk+/gtk.overrides M ext/gtk+/gtktextview.overrides M ext/gtk+/gtktreeview.overrides
diff_c29a24cfa1a0ed8447a8e166dfb42e87e7767286.txt
(text/plain, 10.5 KB)
c29a24cfa1a0ed8447a8e166dfb42e87e7767286
diff --git a/ext/gtk+/gdk.overrides b/ext/gtk+/gdk.overrides
index 41572f8..7de3636 100644
--- a/ext/gtk+/gdk.overrides
+++ b/ext/gtk+/gdk.overrides
@@ -42,9 +42,11 @@ ignore
%%
ignore
gdk_gc_new2
+ gdk_string_extents
/* }}} */
+
%% {{{ GdkColor
%%
@@ -276,6 +278,55 @@ PHP_METHOD
%% }}}
+
+%% {{{ GdkDisplay
+
+%%
+override gdk_display_get_window_at_pointer
+PHP_METHOD
+{
+ gint x, y;
+ GdkWindow *window;
+ zval *php_window = NULL;
+
+ NO_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ window = gdk_display_get_window_at_pointer(GDK_DISPLAY(PHPG_GOBJECT(this_ptr)), &x, &y);
+
+ if (window != NULL) {
+ phpg_gboxed_new(&php_window, GDK_TYPE_WINDOW, &window, TRUE, TRUE TSRMLS_CC);
+ php_gtk_build_value(&return_value, "(Nii)", php_window, x, y);
+ } else {
+ RETURN_FALSE;
+ }
+}
+
+%% }}}
+
+
+%% {{{ GdkDrawable
+
+%%
+override gdk_drawable_get_size
+PHP_METHOD
+{
+ gint width, height;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ gdk_drawable_get_size(GDK_DRAWABLE(PHPG_GOBJECT(this_ptr)), &width, &height);
+ php_gtk_build_value(&return_value, "(ii)", width, height);
+}
+
+%% }}}
+
+
%% {{{ GdkEvent
%% {{{ read_property handler
@@ -952,6 +1003,60 @@ PHP_METHOD
%% {{{ GdkWindow
%%
+override gdk_window_at_pointer
+PHP_METHOD
+{
+ gint x, y;
+ GdkWindow *window;
+ zval *php_window = NULL;
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ window = gdk_window_at_pointer(&x, &y);
+
+ if (window != NULL) {
+ phpg_gboxed_new(&php_window, GDK_TYPE_WINDOW, &window, TRUE, TRUE TSRMLS_CC);
+ php_gtk_build_value(&return_value, "(Nii)", php_window, x, y);
+ } else {
+ RETURN_FALSE;
+ }
+}
+
+
+%%
+override gdk_window_get_geometry
+PHP_METHOD
+{
+ gint x, y, width, height, depth;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ gdk_window_get_geometry(GDK_WINDOW(PHPG_GOBJECT(this_ptr)), &x, &y, &width, &height, &depth);
+ php_gtk_build_value(&return_value, "(iiiii)", x, y, width, height, depth);
+}
+
+
+%%
+override gdk_window_get_origin
+PHP_METHOD
+{
+ gint x, y;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ gdk_window_get_origin(GDK_WINDOW(PHPG_GOBJECT(this_ptr)), &x, &y);
+ php_gtk_build_value(&return_value, "(ii)", x, y);
+}
+
+
+%%
override gdk_window_get_pointer
PHP_METHOD(GdkWindow, get_pointer)
{
@@ -967,6 +1072,38 @@ PHP_METHOD(GdkWindow, get_pointer)
php_gtk_build_value(&return_value, "(iii)", x, y, mask);
}
+
+%%
+override gdk_window_get_position
+PHP_METHOD
+{
+ gint x, y;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ gdk_window_get_position(GDK_WINDOW(PHPG_GOBJECT(this_ptr)), &x, &y);
+ php_gtk_build_value(&return_value, "(ii)", x, y);
+}
+
+
+%%
+override gdk_window_get_root_origin
+PHP_METHOD
+{
+ gint x, y;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ gdk_window_get_root_origin(GDK_WINDOW(PHPG_GOBJECT(this_ptr)), &x, &y);
+ php_gtk_build_value(&return_value, "(ii)", x, y);
+}
+
%% }}}
%%
diff --git a/ext/gtk+/gtk.overrides b/ext/gtk+/gtk.overrides
index c447745..2c72d11 100644
--- a/ext/gtk+/gtk.overrides
+++ b/ext/gtk+/gtk.overrides
@@ -558,6 +558,40 @@ PHP_METHOD
php_gtk_build_value(&return_value, "(ii)", width, height);
}
+
+%%
+add-arginfo Gtk icon_size_lookup_for_settings
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+ ZEND_ARG_OBJ_INFO(0, settings, GtkSettings, 0)
+ ZEND_ARG_INFO(0, size)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_icon_size_lookup_for_settings
+PHP_METHOD
+{
+ gint width, height;
+ zval *php_settings;
+ zval *php_size = NULL;
+ GtkSettings settings;
+ GtkIconSize size;
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "OV", &php_settings, gtksettings_ce, &php_size))
+ return;
+
+ if (php_size && phpg_gvalue_get_enum(GTK_TYPE_ICON_SIZE, php_size, (gint *)&size) == FAILURE)
+ return;
+
+
+ if (gtk_icon_size_lookup_for_settings(GTK_SETTINGS(PHPG_GOBJECT(php_settings)), size, &width, &height)) {
+ php_gtk_build_value(&return_value, "(ii)", width, height);
+ } else {
+ RETURN_FALSE;
+ }
+}
+
+
%%
override gtk_stock_list_ids
PHP_METHOD
@@ -1057,6 +1091,8 @@ PHP_METHOD
PHPG_THROW_CONSTRUCT_EXCEPTION(GtkDialog);
}
+ GtkDialog *dialog = GTK_DIALOG(wrapped_obj);
+
zend_hash_internal_pointer_reset(Z_ARRVAL_P(buttons));
while (zend_hash_get_current_data(Z_ARRVAL_P(buttons), (void **)&text) == SUCCESS) {
zend_hash_move_forward(Z_ARRVAL_P(buttons));
@@ -1070,12 +1106,58 @@ PHP_METHOD
PHPG_THROW_CONSTRUCT_EXCEPTION(GtkDialog);
}
- gtk_dialog_add_button(GTK_DIALOG(wrapped_obj), Z_STRVAL_PP(text), Z_LVAL_PP(response));
+ gtk_dialog_add_button(dialog, Z_STRVAL_PP(text), Z_LVAL_PP(response));
}
}
phpg_gobject_set_wrapper(this_ptr, wrapped_obj TSRMLS_CC);
}
+
+
+%%
+add-arginfo GtkDialog add_buttons
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+ ZEND_ARG_INFO(0, buttons)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_dialog_add_buttons
+PHP_METHOD
+{
+ zval *buttons = NULL;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &buttons))
+ return;
+
+ zval **text, **response;
+
+ if (zend_hash_num_elements(Z_ARRVAL_P(buttons)) % 2) {
+ php_error(E_WARNING, "%s::%s(): button list has to contain pairs of items",
+ get_active_class_name(NULL TSRMLS_CC), get_active_function_name(TSRMLS_C));
+ return;
+ }
+
+ GtkDialog *dialog = GTK_DIALOG(PHPG_GOBJECT(this_ptr));
+
+ zend_hash_internal_pointer_reset(Z_ARRVAL_P(buttons));
+ while (zend_hash_get_current_data(Z_ARRVAL_P(buttons), (void **)&text) == SUCCESS) {
+ zend_hash_move_forward(Z_ARRVAL_P(buttons));
+ zend_hash_get_current_data(Z_ARRVAL_P(buttons), (void **)&response); /* safe */
+ zend_hash_move_forward(Z_ARRVAL_P(buttons));
+
+ if (Z_TYPE_PP(text) != IS_STRING || Z_TYPE_PP(response) != IS_LONG) {
+ php_error(E_WARNING, "%s::%s(): each pair in button list has to be string/number",
+ get_active_class_name(NULL TSRMLS_CC), get_active_function_name(TSRMLS_C));
+ return;
+ }
+
+ gtk_dialog_add_button(dialog, Z_STRVAL_PP(text), Z_LVAL_PP(response));
+ }
+}
+
%% }}}
@@ -1099,6 +1181,36 @@ PHP_METHOD
}
}
+
+%%
+add-arginfo GtkEditable insert_text
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+ ZEND_ARG_INFO(0, text)
+ ZEND_ARG_INFO(0, position)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_editable_insert_text
+PHP_METHOD
+{
+ char *text;
+ gint pos;
+ int text_len;
+ zend_bool free_text;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "iu#", &pos, &text, &text_len, &free_text))
+ return;
+
+ gtk_editable_insert_text(GTK_EDITABLE(PHPG_GOBJECT(this_ptr)), text, text_len, &pos);
+
+ if (free_text) g_free(text);
+
+ RETURN_LONG(pos);
+}
+
%% }}}
diff --git a/ext/gtk+/gtktextview.overrides b/ext/gtk+/gtktextview.overrides
index b98d2b9..a4ed52d 100644
--- a/ext/gtk+/gtktextview.overrides
+++ b/ext/gtk+/gtktextview.overrides
@@ -188,6 +188,92 @@ PHP_METHOD
%%
+add-arginfo GtkTextView get_iter_at_position
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+ ZEND_ARG_INFO(0, x)
+ ZEND_ARG_INFO(0, y)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_text_view_get_iter_at_position
+PHP_METHOD
+{
+ gint x, y, trailing;
+ zval *php_iter = NULL;
+ GtkTextIter iter;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "ii", &x, &y))
+ return;
+
+ gtk_text_view_get_iter_at_position(GTK_TEXT_VIEW(PHPG_GOBJECT(this_ptr)), &iter, &trailing, x, y);
+
+ phpg_gboxed_new(&php_iter, GTK_TYPE_TEXT_ITER, &iter, TRUE, TRUE TSRMLS_CC);
+
+ php_gtk_build_value(&return_value, "(Ni)", php_iter, trailing);
+}
+
+
+%%
+add-arginfo GtkTextView get_line_at_y
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+ ZEND_ARG_INFO(0, y)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_text_view_get_line_at_y
+PHP_METHOD
+{
+ gint y, line_top;
+ zval *php_iter = NULL;
+ GtkTextIter iter;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "i", &y))
+ return;
+
+ gtk_text_view_get_line_at_y(GTK_TEXT_VIEW(PHPG_GOBJECT(this_ptr)), &iter, y, &line_top);
+
+ phpg_gboxed_new(&php_iter, GTK_TYPE_TEXT_ITER, &iter, TRUE, TRUE TSRMLS_CC);
+
+ php_gtk_build_value(&return_value, "(Ni)", php_iter, line_top);
+}
+
+
+%%
+add-arginfo GtkTextView get_line_yrange
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+ ZEND_ARG_OBJ_INFO(0, iter, GtkTextIter, 0)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_text_view_get_line_yrange
+PHP_METHOD
+{
+ zval *php_iter = NULL;
+ GtkTextIter *iter = NULL;
+ gint y, height;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "O", &php_iter, gtktextiter_ce))
+ return;
+
+ if (php_iter && IS_OBJECT == Z_TYPE_P(php_iter)) {
+ iter = (GtkTextIter *) PHPG_GBOXED(php_iter);
+ }
+
+ gtk_text_view_get_line_yrange(GTK_TEXT_VIEW(PHPG_GOBJECT(this_ptr)), iter, &y, &height);
+ php_gtk_build_value(&return_value, "(ii)", y, height);
+}
+
+
+%%
add-arginfo GtkTextView window_to_buffer_coords
static
ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
diff --git a/ext/gtk+/gtktreeview.overrides b/ext/gtk+/gtktreeview.overrides
index 28081ba..c8c755c 100644
--- a/ext/gtk+/gtktreeview.overrides
+++ b/ext/gtk+/gtktreeview.overrides
@@ -1076,6 +1076,28 @@ PHP_METHOD
%%
+override gtk_tree_view_column_cell_get_size
+PHP_METHOD
+{
+ gint x_offset, y_offset, width, height;
+ GdkRectangle cell_area;
+ zval *php_cell_area = NULL;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) {
+ return;
+ }
+
+ gtk_tree_view_column_cell_get_size(GTK_TREE_VIEW_COLUMN(PHPG_GOBJECT(this_ptr)), &cell_area, &x_offset, &y_offset, &width, &height);
+
+ phpg_gboxed_new(&php_cell_area, GDK_TYPE_RECTANGLE, &cell_area, TRUE, TRUE TSRMLS_CC);
+
+ php_gtk_build_value(&return_value, "(Niiii)", php_cell_area, x_offset, y_offset, width, height);
+}
+
+
+%%
add-arginfo GtkTreeViewColumn set_cell_data_func
static
ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)