00001
00021
00022
00023
00024
00025 #ifndef __SYNFIG_STUDIO_DOCK_CANVASSPECIFIC_H
00026 #define __SYNFIG_STUDIO_DOCK_CANVASSPECIFIC_H
00027
00028
00029
00030 #include "dockable.h"
00031 #include <gtkmm/treeview.h>
00032 #include "instance.h"
00033
00034
00035
00036
00037
00038
00039
00040 namespace studio {
00041
00042 class CanvasView;
00043 class Instance;
00044
00045 class Dock_CanvasSpecific : public Dockable
00046 {
00047 sigc::connection canvas_delete_connection;
00048 protected:
00049 virtual void init_instance_vfunc(etl::loose_handle<Instance> instance);
00050
00051 virtual void init_canvas_view_vfunc(etl::loose_handle<CanvasView> canvas_view);
00052 virtual void changed_canvas_view_vfunc(etl::loose_handle<CanvasView> canvas_view);
00053
00054 private:
00055 void init_canvas_view(CanvasView* canvas_view);
00056 void init_instance(etl::handle<Instance> instance);
00057 void delete_instance(etl::handle<Instance> instance);
00058 void canvas_view_changed();
00059 void changed_canvas_view(etl::loose_handle<CanvasView> canvas_view) { return changed_canvas_view_vfunc(canvas_view); }
00060 public:
00061
00062 etl::loose_handle<studio::CanvasView> get_canvas_view();
00063 etl::loose_handle<synfigapp::CanvasInterface> get_canvas_interface();
00064
00065 Dock_CanvasSpecific(const synfig::String& name,const synfig::String& local_name,Gtk::StockID stock_id_=Gtk::StockID(" "));
00066 virtual ~Dock_CanvasSpecific();
00067 };
00068
00069 };
00070
00071
00072
00073 #endif