X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Finstance.h;h=16842c1ef16b64d82b3221dd10800c45e997ee2c;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=ac9a76366df0bc4e20a97b4bc6fd2b16efea080b;hpb=ce408de81ca266b1f334ee9bc6c8fb7ba1492ed4;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/instance.h b/synfig-studio/trunk/src/gtkmm/instance.h index ac9a763..16842c1 100644 --- a/synfig-studio/trunk/src/gtkmm/instance.h +++ b/synfig-studio/trunk/src/gtkmm/instance.h @@ -1,11 +1,12 @@ /* === 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-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -37,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 ===================================================== */ @@ -47,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: @@ -75,7 +84,7 @@ public: Gtk::TreeModelColumn is_editable; Gtk::TreeModelColumn value_desc; - + CanvasTreeModel() { add(value); @@ -95,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" @@ -117,7 +126,7 @@ private: //! List of canvas view windows CanvasViewList canvas_view_list_; - + bool undo_status_; bool redo_status_; @@ -144,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_; } @@ -157,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(); @@ -183,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(); @@ -203,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);