Mercurial > octave-nkf
comparison src/DLD-FUNCTIONS/fltk_backend.cc @ 9991:1300d9ced492
F__init_fltk__: add __remove_fltk__ to atexit function list
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 16 Dec 2009 01:25:40 -0500 |
parents | 118158f10628 |
children | b6261d776a82 |
comparison
equal
deleted
inserted
replaced
9990:2b008f1d3794 | 9991:1300d9ced492 |
---|---|
61 #include "error.h" | 61 #include "error.h" |
62 #include "gl-render.h" | 62 #include "gl-render.h" |
63 #include "gl2ps-renderer.h" | 63 #include "gl2ps-renderer.h" |
64 #include "graphics.h" | 64 #include "graphics.h" |
65 #include "parse.h" | 65 #include "parse.h" |
66 #include "toplev.h" | |
66 #include "variables.h" | 67 #include "variables.h" |
67 | 68 |
68 #define FLTK_BACKEND_NAME "fltk" | 69 #define FLTK_BACKEND_NAME "fltk" |
69 | 70 |
70 // Give FLTK no more than 0.01 sec to do its stuff. | 71 // Give FLTK no more than 0.01 sec to do its stuff. |
1003 | 1004 |
1004 // Initialize the fltk backend. | 1005 // Initialize the fltk backend. |
1005 | 1006 |
1006 DEFUN_DLD (__init_fltk__, , , "") | 1007 DEFUN_DLD (__init_fltk__, , , "") |
1007 { | 1008 { |
1009 static bool remove_fltk_registered = false; | |
1010 | |
1008 if (! backend_registered) | 1011 if (! backend_registered) |
1009 { | 1012 { |
1010 mlock (); | 1013 mlock (); |
1011 | 1014 |
1012 graphics_backend::register_backend (new fltk_backend); | 1015 graphics_backend::register_backend (new fltk_backend); |
1013 backend_registered = true; | 1016 backend_registered = true; |
1014 | 1017 |
1015 octave_value_list args; | 1018 octave_value_list args; |
1016 args(0) = "__fltk_redraw__"; | 1019 args(0) = "__fltk_redraw__"; |
1017 feval ("add_input_event_hook", args, 0); | 1020 feval ("add_input_event_hook", args, 0); |
1021 | |
1022 if (! remove_fltk_registered) | |
1023 { | |
1024 octave_add_atexit_function ("__remove_fltk__"); | |
1025 | |
1026 remove_fltk_registered = true; | |
1027 } | |
1018 } | 1028 } |
1019 | 1029 |
1020 octave_value retval; | 1030 octave_value retval; |
1021 return retval; | 1031 return retval; |
1022 } | 1032 } |
1037 octave_value_list args; | 1047 octave_value_list args; |
1038 args(0) = "__fltk_redraw__"; | 1048 args(0) = "__fltk_redraw__"; |
1039 feval ("remove_input_event_hook", args, 0); | 1049 feval ("remove_input_event_hook", args, 0); |
1040 | 1050 |
1041 // FIXME ??? | 1051 // FIXME ??? |
1042 // give FLTK 10 seconds to wrap it up | 1052 Fl::wait (fltk_maxtime); |
1043 Fl::wait(10); | |
1044 } | 1053 } |
1045 | 1054 |
1046 octave_value retval; | 1055 octave_value retval; |
1047 return retval; | 1056 return retval; |
1048 } | 1057 } |