diff -ur cvs/ext/sourceview/sourceview.defs cvsbob/ext/sourceview/sourceview.defs --- cvs/ext/sourceview/sourceview.defs 2006-10-30 10:30:48.000000000 -0500 +++ cvsbob/ext/sourceview/sourceview.defs 2008-01-20 17:14:15.000000000 -0500 @@ -73,6 +73,17 @@ ;; Enumerations and flags ... +(define-flags SourceSearchFlags + (in-module "Gtk") + (c-name "GtkSourceSearchFlags") + (gtype-id "GTK_TYPE_SOURCE_SEARCH_FLAGS") + (values + '("visible-only" "GTK_SOURCE_SEARCH_VISIBLE_ONLY") + '("text-only" "GTK_SOURCE_SEARCH_TEXT_ONLY") + '("case-insensitive" "GTK_SOURCE_SEARCH_CASE_INSENSITIVE") + ) +) + ;; From /usr/include/gtksourceview-1.0/gtksourceview/gtksourcebuffer.h (define-function gtk_source_buffer_get_type @@ -309,29 +320,33 @@ ;; From /usr/include/gtksourceview-1.0/gtksourceview/gtksourceiter.h -(define-function gtk_source_iter_forward_search +;; these look weird as there is no real gtype for them. + +(define-method forward_search + (of-object "GtkSourceView") (c-name "gtk_source_iter_forward_search") (return-type "gboolean") (parameters - '("const-GtkTextIter*" "iter") + '("GtkTextIter*" "iter") '("const-gchar*" "str") - '("GtkSourceSearchFlags" "flags") - '("GtkTextIter*" "match_start") - '("GtkTextIter*" "match_end") - '("const-GtkTextIter*" "limit") + '("GtkTextSearchFlags" "flags") + '("GtkTextIter*" "start") + '("GtkTextIter*" "stop") + '("GtkTextIter*" "limit") ) ) -(define-function gtk_source_iter_backward_search +(define-method backward_search + (of-object "GtkSourceView") (c-name "gtk_source_iter_backward_search") (return-type "gboolean") (parameters - '("const-GtkTextIter*" "iter") + '("GtkTextIter*" "iter") '("const-gchar*" "str") '("GtkSourceSearchFlags" "flags") - '("GtkTextIter*" "match_start") - '("GtkTextIter*" "match_end") - '("const-GtkTextIter*" "limit") + '("GtkTextIter*" "start") + '("GtkTextIter*" "stop") + '("GtkTextIter*" "limit") ) ) diff -ur cvs/ext/sourceview/sourceview.overrides cvsbob/ext/sourceview/sourceview.overrides --- cvs/ext/sourceview/sourceview.overrides 2007-02-28 13:03:25.000000000 -0500 +++ cvsbob/ext/sourceview/sourceview.overrides 2008-01-20 17:15:01.000000000 -0500 @@ -286,3 +286,99 @@ } %%}}} + +%% {{{ GtkSourceView + +%% +override gtk_source_iter_forward_search +PHP_METHOD +{ + zval *php_iter = NULL, *php_limit = NULL; + zval *php_start = NULL, *php_stop = NULL; + gchar *str = NULL; + gint flags; + GtkTextIter start, stop, *limit; + gboolean found; + + TSRMLS_FETCH(); + + if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"Osi|N", + &php_iter, gboxed_ce, + &str, + &flags, + &php_limit, gboxed_ce)) { + + return; + } + + if(php_limit) { + limit = (GtkTextIter *)PHPG_GBOXED(php_limit); + } else { + limit = NULL; + } + + found = gtk_source_iter_forward_search( + (GtkTextIter *)PHPG_GBOXED(php_iter), + str, + flags, + &start, + &stop, + limit + ); + + if(found) { + phpg_gboxed_new(&php_start, GTK_TYPE_TEXT_ITER, &start, TRUE, TRUE TSRMLS_CC); + phpg_gboxed_new(&php_stop, GTK_TYPE_TEXT_ITER, &stop, TRUE, TRUE TSRMLS_CC); + php_gtk_build_value(&return_value,"(NN)",php_start,php_stop); + } else { + php_gtk_build_value(&return_value,"b",FALSE); + } +} + +%% +override gtk_source_iter_backward_search +PHP_METHOD +{ + zval *php_iter = NULL, *php_limit = NULL; + zval *php_start = NULL, *php_stop = NULL; + gchar *str = NULL; + gint flags; + GtkTextIter start, stop, *limit; + gboolean found; + + TSRMLS_FETCH(); + + if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"Osi|N", + &php_iter, gboxed_ce, + &str, + &flags, + &php_limit, gboxed_ce)) { + + return; + } + + if(php_limit) { + limit = (GtkTextIter *)PHPG_GBOXED(php_limit); + } else { + limit = NULL; + } + + found = gtk_source_iter_backward_search( + (GtkTextIter *)PHPG_GBOXED(php_iter), + str, + flags, + &start, + &stop, + limit + ); + + if(found) { + phpg_gboxed_new(&php_start, GTK_TYPE_TEXT_ITER, &start, TRUE, TRUE TSRMLS_CC); + phpg_gboxed_new(&php_stop, GTK_TYPE_TEXT_ITER, &stop, TRUE, TRUE TSRMLS_CC); + php_gtk_build_value(&return_value,"(NN)",php_start,php_stop); + } else { + php_gtk_build_value(&return_value,"b",FALSE); + } +} + +%%}}}