Fix 1675309: CanvasView::close() was previously just hiding the canvas, not closing it.
[synfig.git] / synfig-studio / trunk / src / gtkmm / state_bline.cpp
index f2ba41b..d21ad9e 100644 (file)
@@ -5,16 +5,17 @@
 **     $Id: state_bline.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $
 **
 **     \legal
-**     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **
-**     This software and associated documentation
-**     are CONFIDENTIAL and PROPRIETARY property of
-**     the above-mentioned copyright holder.
+**     This package is free software; you can redistribute it and/or
+**     modify it under the terms of the GNU General Public License as
+**     published by the Free Software Foundation; either version 2 of
+**     the License, or (at your option) any later version.
 **
-**     You may not copy, print, publish, or in any
-**     other way distribute this software without
-**     a prior written agreement with
-**     the copyright holder.
+**     This package is distributed in the hope that it will be useful,
+**     but WITHOUT ANY WARRANTY; without even the implied warranty of
+**     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+**     General Public License for more details.
 **     \endlegal
 */
 /* ========================================================================= */
@@ -103,6 +104,7 @@ class studio::StateBLine_Context : public sigc::trackable
        void bline_delete_vertex(synfig::ValueNode_Const::Handle value_node);
        void bline_insert_vertex(synfig::ValueNode_Const::Handle value_node,float origin=0.5);
        void loop_bline();
+       void unloop_bline();
 
        void refresh_ducks(bool x=true);
        
@@ -1054,12 +1056,24 @@ StateBLine_Context::loop_bline()
 }
 
 void
+StateBLine_Context::unloop_bline()
+{
+       loop_=false;
+
+       refresh_ducks(false);
+}
+
+void
 StateBLine_Context::popup_vertex_menu(synfig::ValueNode_Const::Handle value_node)
 {
        menu.items().clear();
 
-       if(!loop_ && value_node==bline_point_list.front())
+       if(loop_)
        {
+               menu.items().push_back(Gtk::Menu_Helpers::MenuElem("Unloop BLine",
+                               sigc::mem_fun(*this,&studio::StateBLine_Context::unloop_bline)
+               ));
+       } else {
                menu.items().push_back(Gtk::Menu_Helpers::MenuElem("Loop BLine",
                                sigc::mem_fun(*this,&studio::StateBLine_Context::loop_bline)
                ));