Mercurial > octave-nkf
comparison libinterp/corefcn/graphics.cc @ 18571:ca1648b2e673 gui-release
set default toolkit when registering toolkits (bug #41665).
* graphics.in.h, graphics.cc (gtk_manager::gtk_manager):
Don't set default toolkit.
(gtk_manager::do_register_toolkit): Set default toolkit here.
(gtk_manager::do_unregister_toolkit): If removing default toolkit,
reset it using same rules as in do_register_toolkit.
author | Michael C. Grant <mcg@cvxr.com> and John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 10 Mar 2014 10:46:37 -0500 |
parents | 2e7cad6f180c |
children | cd83730e5e38 bd1fd4ed3d67 |
comparison
equal
deleted
inserted
replaced
18569:4daf647c86c3 | 18571:ca1648b2e673 |
---|---|
9582 return retval; | 9582 return retval; |
9583 } | 9583 } |
9584 | 9584 |
9585 gtk_manager *gtk_manager::instance = 0; | 9585 gtk_manager *gtk_manager::instance = 0; |
9586 | 9586 |
9587 gtk_manager::gtk_manager (void) | |
9588 : dtk (), available_toolkits (), loaded_toolkits () | |
9589 { | |
9590 #if defined (HAVE_QT) | |
9591 dtk = display_info::display_available () ? "qt" : "gnuplot"; | |
9592 #elif defined (HAVE_FLTK) | |
9593 dtk = display_info::display_available () ? "fltk" : "gnuplot"; | |
9594 #else | |
9595 dtk = "gnuplot"; | |
9596 #endif | |
9597 } | |
9598 | |
9599 void | 9587 void |
9600 gtk_manager::create_instance (void) | 9588 gtk_manager::create_instance (void) |
9601 { | 9589 { |
9602 instance = new gtk_manager (); | 9590 instance = new gtk_manager (); |
9603 | 9591 |
9636 } | 9624 } |
9637 else | 9625 else |
9638 retval = pl->second; | 9626 retval = pl->second; |
9639 | 9627 |
9640 return retval; | 9628 return retval; |
9629 } | |
9630 | |
9631 void | |
9632 gtk_manager::do_register_toolkit (const std::string& name) | |
9633 { | |
9634 if (dtk.empty () || name == "qt" | |
9635 || (name == "fltk" | |
9636 && available_toolkits.find ("qt") == available_toolkits.end ())) | |
9637 dtk = name; | |
9638 | |
9639 available_toolkits.insert (name); | |
9640 } | |
9641 | |
9642 void | |
9643 gtk_manager::do_unregister_toolkit (const std::string& name) | |
9644 { | |
9645 available_toolkits.erase (name); | |
9646 | |
9647 if (dtk == name) | |
9648 { | |
9649 if (available_toolkits.empty ()) | |
9650 dtk.clear (); | |
9651 else | |
9652 { | |
9653 const_available_toolkits_iterator pa = available_toolkits.begin (); | |
9654 | |
9655 dtk = *pa++; | |
9656 | |
9657 while (pa != available_toolkits.end ()) | |
9658 { | |
9659 std::string name = *pa++; | |
9660 | |
9661 if (name == "qt" | |
9662 || (name == "fltk" | |
9663 && available_toolkits.find ("qt") == available_toolkits.end ())) | |
9664 dtk = name; | |
9665 } | |
9666 } | |
9667 } | |
9641 } | 9668 } |
9642 | 9669 |
9643 DEFUN (available_graphics_toolkits, , , | 9670 DEFUN (available_graphics_toolkits, , , |
9644 "-*- texinfo -*-\n\ | 9671 "-*- texinfo -*-\n\ |
9645 @deftypefn {Built-in Function} {} available_graphics_toolkits ()\n\ | 9672 @deftypefn {Built-in Function} {} available_graphics_toolkits ()\n\ |