diff libinterp/dldfcn/__init_gnuplot__.cc @ 23774:41795b504a8b

don't use singleton for gtk_manager * graphics-handle.h, graphics-toolkit.cc, graphics-toolkit.h, gtk-manager.cc, gtk-manager.h: New files, extracted from graphics.cc and graphics.in.h. * libinterp/corefcn/module.mk: Update. * graphics.cc (Favailable_graphics_toolkits, Fregister_graphics_toolkit, Floaded_graphics_toolkits): Now defined with DEFMETHOD. * main-window.cc (octave_interpreter::execute): Pass interpreter object to Fregister_graphics_toolkit. * interpreter-private.cc, interpreter-private.h (__get_gtk_manager__): New function. * interpreter.cc, interpreter.h (interpreter::m_gtk_manager): New data member. (interpreter::get_gtk_manager): New function. (interpreter::cleanup): Update call to unload_all_toolkits. * __init_qt__.cc (__init__): Pass reference to interpreter. Update caller. (__shutdown__): Don't call gtk_manager::unload_toolkit here. (F__init_qt__): Define with DEFMETHOD. * __init_fltk__.cc (F__init_fltk__): Access gtk_manager through interpreter object. * __init_gnuplot__.cc (gnuplot_graphics_toolkit::close): Don't call gtk_manager::unload_toolkit here. F__init_gnuplot__): Access gtk_manager through interpreter object.
author John W. Eaton <jwe@octave.org>
date Fri, 14 Jul 2017 16:05:59 -0400
parents 8acd390d16c9
children 194eb4bd202b
line wrap: on
line diff
--- a/libinterp/dldfcn/__init_gnuplot__.cc	Wed Jul 19 16:34:13 2017 -0400
+++ b/libinterp/dldfcn/__init_gnuplot__.cc	Fri Jul 14 16:05:59 2017 -0400
@@ -141,8 +141,6 @@
       {
         m_interpreter.munlock ("__init_gnuplot__");
 
-        gtk_manager::unload_toolkit ("gnuplot");
-
         toolkit_loaded = false;
       }
   }
@@ -227,8 +225,10 @@
     {
       interp.mlock ();
 
+      octave::gtk_manager& gtk_mgr = interp.get_gtk_manager ();
+
       graphics_toolkit tk (new gnuplot_graphics_toolkit (interp));
-      gtk_manager::load_toolkit (tk);
+      gtk_mgr.load_toolkit (tk);
 
       toolkit_loaded = true;
     }