diff src/DLD-FUNCTIONS/__init_fltk__.cc @ 14021:e3bed294b117

refactor graphics_toolkit class (bug #31583) * graphics_toolkit.m: Call loaded_graphics_toolkits to check whether the given toolkit was correctly loaded. * graphics.cc (gnuplot_toolkit): Move to separate file. * __init_gnuplot__.cc: New file, split from graphics.cc. * DLD-FUNCTIONS/module-files: Include __init_gnuplot__.cc in the list. * graphics.h.in, graphics.cc (gtk_manager): New class, extracted from graphics_toolkit, to manage the available and loaded graphics_toolkits. Change all uses of moved functions. * __init_fltk__.cc: Add PKG_ADD line to register toolkit. (toolkit_loaded): Rename from toolkit_registered. * graphics.cc (Fregister_graphics_toolkit, Floaded_graphics_toolkits): New functions.
author John W. Eaton <jwe@octave.org>
date Fri, 09 Dec 2011 11:12:50 -0500
parents caf69ec5b94c
children c5222658dc3c
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/__init_fltk__.cc	Fri Dec 09 08:53:44 2011 -0500
+++ b/src/DLD-FUNCTIONS/__init_fltk__.cc	Fri Dec 09 11:12:50 2011 -0500
@@ -29,6 +29,8 @@
 
 */
 
+// PKG_ADD: register_graphics_toolkit ("fltk");
+
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -1769,12 +1771,12 @@
 std::string figure_manager::fltk_idx_header="fltk index=";
 int figure_manager::curr_index = 1;
 
-static bool toolkit_registered = false;
+static bool toolkit_loaded = false;
 
 static int
 __fltk_redraw__ (void)
 {
-  if (toolkit_registered)
+  if (toolkit_loaded)
     {
       // We scan all figures and add those which use FLTK.
       graphics_object obj = gh_manager::get_object (0);
@@ -1941,13 +1943,13 @@
 
   void close (void)
   {
-    if (toolkit_registered)
+    if (toolkit_loaded)
       {
         munlock ("__init_fltk__");
 
         figure_manager::close_all ();
-        graphics_toolkit::unregister_toolkit (FLTK_GRAPHICS_TOOLKIT_NAME);
-        toolkit_registered = false;
+        gtk_manager::unload_toolkit (FLTK_GRAPHICS_TOOLKIT_NAME);
+        toolkit_loaded = false;
 
         octave_value_list args;
         args(0) = "__fltk_redraw__";
@@ -1963,12 +1965,13 @@
 
 DEFUN_DLD (__init_fltk__, , , "")
 {
-  if (! toolkit_registered)
+  if (! toolkit_loaded)
     {
       mlock ();
 
-      graphics_toolkit::register_toolkit (new fltk_graphics_toolkit);
-      toolkit_registered = true;
+      graphics_toolkit tk (new fltk_graphics_toolkit ());
+      gtk_manager::load_toolkit (tk);
+      toolkit_loaded = true;
 
       octave_value_list args;
       args(0) = "__fltk_redraw__";