X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Finstance.h;h=16842c1ef16b64d82b3221dd10800c45e997ee2c;hb=0962b310bc44fd9a2b4904db9b91185ff0bfd1ed;hp=bd68918ff8b597f5fdfdfcfa228e629af9d96661;hpb=3a3c4bca3a17137bec5d7960560934b91ef4146e;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/instance.h b/synfig-studio/trunk/src/gtkmm/instance.h index bd68918..16842c1 100644 --- a/synfig-studio/trunk/src/gtkmm/instance.h +++ b/synfig-studio/trunk/src/gtkmm/instance.h @@ -1,41 +1,44 @@ -/* === S I N F G =========================================================== */ -/*! \file instance.h +/* === S Y N F I G ========================================================= */ +/*! \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 */ /* ========================================================================= */ /* === S T A R T =========================================================== */ -#ifndef __SINFG_STUDIO_INSTANCE_H -#define __SINFG_STUDIO_INSTANCE_H +#ifndef __SYNFIG_STUDIO_INSTANCE_H +#define __SYNFIG_STUDIO_INSTANCE_H /* === H E A D E R S ======================================================= */ #include #include #include -#include +#include #include -#include +#include #include "historytreestore.h" -#include +#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 sinfgapp::Instance + +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: @@ -61,20 +71,20 @@ public: Gtk::TreeModelColumn name; Gtk::TreeModelColumn id; - Gtk::TreeModelColumn canvas; + Gtk::TreeModelColumn canvas; Gtk::TreeModelColumn is_canvas; - Gtk::TreeModelColumn value_node; + Gtk::TreeModelColumn value_node; Gtk::TreeModelColumn is_value_node; - Gtk::TreeModelColumn value; + Gtk::TreeModelColumn value; Gtk::TreeModelColumn type; Gtk::TreeModelColumn link_id; Gtk::TreeModelColumn link_count; Gtk::TreeModelColumn is_editable; - Gtk::TreeModelColumn value_desc; - + 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_; @@ -127,7 +137,7 @@ private: protected: - Instance(sinfg::Canvas::Handle); + Instance(synfig::Canvas::Handle); public: @@ -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_; } @@ -155,25 +165,29 @@ public: //! Returns the number of instances that are currently open in the program static int get_count() { return instance_count_; } - //etl::handle get_canvas()const { return sinfgapp::Instance::get_canvas(); } - - etl::handle find_canvas_view(etl::handle canvas); + //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); + 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 sinfg::String &filename)const; + bool save_as(const synfig::String &filename); - bool save_as(const sinfg::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(); - bool save(); + void open(); + + Status save(); void dialog_cvs_commit(); @@ -182,38 +196,38 @@ 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(); - void add_actions_to_menu(Gtk::Menu *menu, const sinfgapp::Action::ParamList ¶m_list, sinfgapp::Action::Category category=sinfgapp::Action::CATEGORY_ALL)const; - void add_actions_to_menu(Gtk::Menu *menu, const sinfgapp::Action::ParamList ¶m_list1,const sinfgapp::Action::ParamList ¶m_list2, sinfgapp::Action::Category category=sinfgapp::Action::CATEGORY_ALL)const; + void add_actions_to_menu(Gtk::Menu *menu, const synfigapp::Action::ParamList ¶m_list, synfigapp::Action::Category category=synfigapp::Action::CATEGORY_ALL)const; + void add_actions_to_menu(Gtk::Menu *menu, const synfigapp::Action::ParamList ¶m_list1,const synfigapp::Action::ParamList ¶m_list2, synfigapp::Action::Category category=synfigapp::Action::CATEGORY_ALL)const; - void add_actions_to_group(const Glib::RefPtr& action_group, sinfg::String& ui_info, const sinfgapp::Action::ParamList ¶m_list, sinfgapp::Action::Category category=sinfgapp::Action::CATEGORY_ALL)const; + void add_actions_to_group(const Glib::RefPtr& action_group, synfig::String& ui_info, const synfigapp::Action::ParamList ¶m_list, synfigapp::Action::Category category=synfigapp::Action::CATEGORY_ALL)const; - void process_action(sinfg::String name, sinfgapp::Action::ParamList param_list); + void process_action(synfig::String name, synfigapp::Action::ParamList param_list); - void make_param_menu(Gtk::Menu *menu,sinfg::Canvas::Handle canvas, sinfgapp::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,sinfg::Canvas::Handle canvas,const std::list& value_desc_list); + void make_param_menu(Gtk::Menu *menu,synfig::Canvas::Handle canvas,const std::list& value_desc_list); - static void edit_waypoint(sinfgapp::ValueDesc value_desc,sinfg::Waypoint waypoint); + static void edit_waypoint(synfigapp::ValueDesc value_desc,synfig::Waypoint waypoint); private: - void insert_canvas(Gtk::TreeRow row,sinfg::Canvas::Handle canvas); + void insert_canvas(Gtk::TreeRow row,synfig::Canvas::Handle canvas); public: - static etl::handle create(sinfg::Canvas::Handle canvas); + static etl::handle create(synfig::Canvas::Handle canvas); }; // END class Instance }; // END namespace studio