X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Finstance.h;h=16842c1ef16b64d82b3221dd10800c45e997ee2c;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=374c7e48164208273825dd28b29b4b5f7c4d378a;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/instance.h b/synfig-studio/trunk/src/gtkmm/instance.h index 374c7e4..16842c1 100644 --- a/synfig-studio/trunk/src/gtkmm/instance.h +++ b/synfig-studio/trunk/src/gtkmm/instance.h @@ -1,20 +1,22 @@ /* === S Y N F I G ========================================================= */ -/*! \file instance.h +/*! \file gtkmm/instance.h ** \brief writeme ** -** $Id: instance.h,v 1.2 2005/01/13 18:37:30 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** -** 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 */ /* ========================================================================= */ @@ -36,6 +38,7 @@ #include /* === M A C R O S ========================================================= */ +#define DEFAULT_FILENAME_PREFIX _("Synfig Animation ") // will be followed by a different number for each document /* === T Y P E D E F S ===================================================== */ @@ -46,13 +49,20 @@ namespace Gtk { class Menu; class ActionGroup; }; namespace studio { class CanvasView; - + class Instance : public synfigapp::Instance { public: typedef std::list< etl::handle > CanvasViewList; + enum Status + { + STATUS_OK, + STATUS_ERROR, + STATUS_CANCEL + }; + class CanvasTreeModel : public Gtk::TreeModel::ColumnRecord { public: @@ -74,7 +84,7 @@ public: Gtk::TreeModelColumn is_editable; Gtk::TreeModelColumn value_desc; - + CanvasTreeModel() { add(value); @@ -94,12 +104,12 @@ public: add(link_id); } } canvas_tree_model; - + private: sigc::signal signal_canvas_view_created_; sigc::signal signal_canvas_view_deleted_; - + sigc::signal signal_undo_redo_status_changed_; //! Tree containing the canvases -- used for the "canvas browser" @@ -116,7 +126,7 @@ private: //! List of canvas view windows CanvasViewList canvas_view_list_; - + bool undo_status_; bool redo_status_; @@ -143,7 +153,7 @@ public: bool get_redo_status()const { return redo_status_; } int get_visible_canvases()const; - + Glib::RefPtr canvas_tree_store() { return canvas_tree_store_; } Glib::RefPtr canvas_tree_store()const { return canvas_tree_store_; } @@ -156,24 +166,28 @@ public: static int get_count() { return instance_count_; } //etl::handle get_canvas()const { return synfigapp::Instance::get_canvas(); } - + etl::handle find_canvas_view(etl::handle canvas); //! Sets the focus to a specific canvas void focus(etl::handle canvas); CanvasViewList & canvas_view_list() { return canvas_view_list_; } - - const CanvasViewList & canvas_view_list()const { return canvas_view_list_; } - bool save_as(const synfig::String &filename)const; + const CanvasViewList & canvas_view_list()const { return canvas_view_list_; } bool save_as(const synfig::String &filename); + //! returns true if the instance has a real filename associated with it, rather than the made up "synfig animation 1" or some such + bool has_real_filename(); + //! Opens a "Save As" dialog, and then saves the composition to that file - void dialog_save_as(); + //! returns true if the save was successful + bool dialog_save_as(); + + void open(); - bool save(); + Status save(); void dialog_cvs_commit(); @@ -182,16 +196,16 @@ public: void dialog_cvs_update(); void dialog_cvs_revert(); - + //! Closes the instance of this composition void close(); - + void revert(); - + void update_all_titles(); void refresh_canvas_tree(); - + bool safe_revert(); bool safe_close(); @@ -202,7 +216,7 @@ public: void process_action(synfig::String name, synfigapp::Action::ParamList param_list); - void make_param_menu(Gtk::Menu *menu,synfig::Canvas::Handle canvas, synfigapp::ValueDesc value_desc, float location=0.5f); + void make_param_menu(Gtk::Menu *menu,synfig::Canvas::Handle canvas, synfigapp::ValueDesc value_desc, float location=0.5f, bool bezier=false); void make_param_menu(Gtk::Menu *menu,synfig::Canvas::Handle canvas,const std::list& value_desc_list);