Mercurial > hg > octave-nkf
diff src/graphics.cc @ 7967:6add0f974aee
Add __go_execute_callback__
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 22 Jul 2008 17:24:17 -0400 |
parents | 9cd3ee5298a0 |
children | a2ab20ba78f7 |
line wrap: on
line diff
--- a/src/graphics.cc +++ b/src/graphics.cc @@ -4415,6 +4415,52 @@ return octave_value (gh_manager::figure_handle_list ()); } +DEFUN (__go_execute_callback__, args, , + "-*- texinfo -*-\n\ +@deftypefn {Built-in Function} {} __go_execute_callback__ (@var{h}, @var{name})\n\ +@deftypefnx {Built-in Function} {} __go_execute_callback__ (@var{h}, @var{name}, @var{param})\n\ +Undocumented internal function.\n\ +@end deftypefn") +{ + octave_value retval; + + int nargin = args.length (); + + if (nargin == 2 || nargin == 3) + { + double val = args(0).double_value (); + + if (! error_state) + { + graphics_handle h = gh_manager::lookup (val); + + if (h.ok ()) + { + std::string name = args(1).string_value (); + + if (! error_state) + { + if (nargin == 2) + gh_manager::execute_callback (h, name); + else + gh_manager::execute_callback (h, name, args(2)); + } + else + error ("__go_execute_callback__: invalid callback name"); + } + else + error ("__go_execute_callback__: invalid graphics object (= %g)", + val); + } + else + error ("__go_execute_callback__: invalid graphics object"); + } + else + print_usage (); + + return retval; +} + DEFUN (available_backends, , , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} available_backends ()\n\