- Main Page
- Related Pages
- Namespaces
- Classes
- Files

# canvasview.h

Go to the documentation of this file.

    00001 /* === S Y N F I G ========================================================= */
    00023 /* ========================================================================= */
    00024
    00025 /* === S T A R T =========================================================== */
    00026
    00027 #ifndef __SYNFIG_STUDIO_GTKMM_CANVASVIEW_H
    00028 #define __SYNFIG_STUDIO_GTKMM_CANVASVIEW_H
    00029
    00030 /* === H E A D E R S ======================================================= */
    00031
    00032 #include <gtkmm/window.h>
    00033 #include <gtkmm/image.h>
    00034 #include <gtkmm/tooltips.h>
    00035 #include <gtkmm/table.h>
    00036 #include <gtkmm/statusbar.h>
    00037 #include <gtkmm/progressbar.h>
    00038 #include <gtkmm/button.h>
    00039 #include <gtkmm/menu.h>
    00040 #include <gtkmm/treeview.h>
    00041 #include <gtkmm/treestore.h>
    00042 #include <gtkmm/scrolledwindow.h>
    00043 #include <gtkmm/notebook.h>
    00044 #include <gdkmm/device.h>
    00045 #include <gtkmm/spinbutton.h>
    00046
    00047 #include <synfigapp/canvasinterface.h>
    00048 #include <synfigapp/selectionmanager.h>
    00049
    00050 #include <synfig/canvas.h>
    00051 #include <synfig/string.h>
    00052 #include <synfig/time.h>
    00053
    00054 #include "instance.h"
    00055 #include "canvasproperties.h"
    00056 #include "canvasoptions.h"
    00057 #include "render.h"
    00058 #include "cellrenderer_timetrack.h"
    00059 #include "app.h"
    00060
    00061 #include "layertreestore.h"
    00062 #include "layertree.h"
    00063 #include "childrentreestore.h"
    00064 #include "childrentree.h"
    00065 #include "keyframetreestore.h"
    00066 #include "keyframetree.h"
    00067
    00068 #include "dialog_waypoint.h"
    00069 #include "dialog_keyframe.h"
    00070 #include "framedial.h"
    00071 #include "toggleducksdial.h"
    00072 #include "resolutiondial.h"
    00073
    00074 #include "duckmatic.h"
    00075 #include <gtkmm/scale.h>
    00076
    00077 #include <gtkmm/uimanager.h>
    00078
    00079 #include "smach.h"
    00080
    00081 #include <memory>
    00082 #include <set>
    00083 #include <map>
    00084 #include <gtkmm/toggleaction.h>
    00085 #include <gtkmm/radioaction.h>
    00086 #include <synfig/rect.h>
    00087
    00088 #include "adjust_window.h"
    00089
    00090 #include <synfig/transform.h>
    00091
    00092 /* === M A C R O S ========================================================= */
    00093
    00094 #ifndef DEBUGPOINT_CLASS
    00095 #if _DEBUG
    00096 #define DEBUGPOINT_CLASS(x)     struct debugpointclass_ ## x { debugpointclass_ ## x () { DEBUGPOINT(); } ~debugpointclass_ ## x () { DEBUGPOINT(); } } badfthguae_ ## x ;
    00097 #else
    00098 #define DEBUGPOINT_CLASS(x)
    00099 #endif
    00100 #endif
    00101
    00102 /* === T Y P E D E F S ===================================================== */
    00103
    00104 /* === C L A S S E S & S T R U C T S ======================================= */
    00105
    00106 namespace synfig {
    00107     class TransformStack;
    00108 }
    00109
    00110 namespace studio {
    00111
    00112 class CanvasViewUIInterface;
    00113 class CanvasViewSelectionManager;
    00114
    00115 class CellRenderer_TimeTrack;
    00116 class CellRenderer_ValueBase;
    00117 class UniversalScrubber;
    00118 class WorkArea;
    00119
    00120 class Duckmatic;
    00121
    00122 class Preview;
    00123 struct PreviewInfo;
    00124 class AudioContainer;
    00125
    00126 class Widget_Sound;
    00127 class Widget_Timeslider;
    00128 class Widget_Time;
    00129
    00130 class Dialog_SoundSelect;
    00131 class Dialog_Preview;
    00132
    00133 class Dock_Layers;
    00134 class Dock_Children;
    00135 class Dock_Keyframes;
    00136
    00137 class CanvasView : public Gtk::Window, public etl::shared_object
    00138 {
    00139     friend class UniversalScrubber;
    00140     friend class Dock_Layers;
    00141     friend class Dock_Children;
    00142     friend class Dock_Keyframes;
    00143
    00144     friend class CanvasViewUIInterface;
    00145     friend class CanvasViewSelectionManager;
    00146
    00147     friend class Duckmatic;
    00148
    00149     /*
    00150  -- ** -- P U B L I C   T Y P E S ---------------------------------------------
    00151     */
    00152
    00153 public:
    00154
    00155     typedef etl::handle<CanvasView> Handle;
    00156
    00157     typedef etl::handle<const CanvasView> ConstHandle;
    00158
    00159     typedef etl::loose_handle<CanvasView> LooseHandle;
    00160
    00161     typedef LayerTreeStore::Model LayerTreeModel;
    00162
    00163     typedef ChildrenTreeStore::Model ChildrenTreeModel;
    00164
    00166
    00168     class IsWorking
    00169     {
    00170         CanvasView &canvas_view_;
    00171
    00172     public:
    00173         IsWorking(CanvasView &canvas_view_);
    00174         ~IsWorking();
    00175         operator bool()const;
    00176     };
    00177     friend class IsWorking;
    00178
    00179     typedef synfigapp::CanvasInterface::Mode Mode;
    00180
    00181     void set_grid_snap_toggle(bool flag) { grid_snap_toggle->set_active(flag); }
    00182     void set_grid_show_toggle(bool flag) { grid_show_toggle->set_active(flag); }
    00183
    00184     /*
    00185  -- ** -- P R I V A T E   D A T A ---------------------------------------------
    00186     */
    00187
    00188 public:
    00189     std::auto_ptr<WorkArea> work_area;
    00190
    00191     WorkArea* get_work_area() { return work_area.get(); }
    00192 private:
    00193
    00194     synfig::TransformStack curr_transform_stack;
    00195     bool curr_transform_stack_set;
    00196
    00197     synfig::Rect bbox;
    00198
    00199     // DEBUGPOINT_CLASS(1);
    00200
    00202     Smach smach_;
    00203
    00204     // DEBUGPOINT_CLASS(2);
    00205
    00206     etl::loose_handle<Instance> instance_;
    00207     etl::handle<synfigapp::CanvasInterface> canvas_interface_;
    00208
    00209     // DEBUGPOINT_CLASS(3);
    00210
    00212     etl::handle<AudioContainer>     audio;
    00213     studio::Widget_Sound            *disp_audio; //should this be put into thing too?
    00214
    00215     sigc::connection                playcon;
    00216     sigc::connection                stopcon;
    00217
    00218     std::auto_ptr<UniversalScrubber> universal_scrubber;
    00219
    00221     Gtk::Tooltips tooltips;
    00222
    00223     // DEBUGPOINT_CLASS(4);
    00224
    00226     LayerTreeModel layer_tree_model;
    00227
    00229     ChildrenTreeModel children_tree_model;
    00230
    00231     //Glib::RefPtr<LayerTreeStore> layer_tree_store_;
    00232
    00233     //Glib::RefPtr<ChildrenTreeStore> children_tree_store_;
    00234
    00235     //Glib::RefPtr<KeyframeTreeStore> keyframe_tree_store_;
    00236
    00237     // DEBUGPOINT_CLASS(5);
    00238
    00239     //std::map<synfig::String,Glib::RefPtr<Gtk::TreeModel> > tree_model_book_;
    00240     std::map<synfig::String,Glib::RefPtr<Glib::ObjectBase> > ref_obj_book_;
    00241     std::map<synfig::String,Gtk::Widget*> ext_widget_book_;
    00242
    00244     Gtk::Adjustment time_adjustment_;
    00245
    00247     //Gtk::Adjustment time_window_adjustment_;
    00248     studio::Adjust_Window time_window_adjustment_;
    00249
    00250     LayerTree *layer_tree;
    00251
    00252     ChildrenTree *children_tree;
    00253
    00254     KeyframeTree *keyframe_tree;
    00255
    00256     Gtk::Widget *keyframe_tab_child;
    00257
    00258     Gtk::ProgressBar *progressbar;
    00259     Gtk::Statusbar *statusbar;
    00260
    00261     Gtk::TreeRow children_canvas_row;
    00262     Gtk::TreeRow children_valuenode_row;
    00263
    00264     Gtk::Button *stopbutton;
    00265     Gtk::Button *refreshbutton;
    00266     Gtk::Button *treetogglebutton;  // not used
    00267     Gtk::Notebook *notebook; // not used
    00268     Gtk::Table *timebar;
    00269     Gtk::Table *displaybar;
    00270     Gtk::Button *animatebutton;
    00271     Gtk::Button *keyframebutton;
    00272     FrameDial *framedial;
    00273     ToggleDucksDial *toggleducksdial;
    00274     bool toggling_ducks_;
    00275     ResolutionDial *resolutiondial;
    00276     bool changing_resolution_;
    00277     Gtk::Adjustment quality_adjustment_;
    00278     Gtk::SpinButton *quality_spin;
    00279     Gtk::Adjustment past_onion_adjustment_;
    00280     Gtk::SpinButton *past_onion_spin;
    00281     Gtk::Adjustment future_onion_adjustment_;
    00282     Gtk::SpinButton *future_onion_spin;
    00283     bool updating_quality_;
    00284     Gtk::ToggleButton *show_grid;
    00285     Gtk::ToggleButton *snap_grid;
    00286     Gtk::ToggleButton *onion_skin;
    00287     bool toggling_show_grid;
    00288     bool toggling_snap_grid;
    00289     bool toggling_onion_skin;
    00291     Widget_Time *current_time_widget;
    00292     void on_current_time_widget_changed();
    00293
    00295     std::auto_ptr<Widget_Timeslider> timeslider;
    00296
    00297     std::list<sigc::connection> duck_changed_connections;
    00298
    00299 /*  DEBUGPOINT_CLASS(8);
    00300
    00301     Gtk::Menu duckmaskmenu;
    00302     DEBUGPOINT_CLASS(77);
    00303     Gtk::Menu qualitymenu;
    00304     DEBUGPOINT_CLASS(6);
    00305
    00306     Gtk::Menu filemenu;
    00307     DEBUGPOINT_CLASS(777);
    00308     Gtk::Menu editmenu;
    00309     DEBUGPOINT_CLASS(71);
    00310     Gtk::Menu canvasmenu;
    00311     DEBUGPOINT_CLASS(73);
    00312 public:
    00313     Gtk::Menu layermenu;
    00314 private:
    00315     DEBUGPOINT_CLASS(74);
    00316     Gtk::Menu newlayermenu;
    00317     DEBUGPOINT_CLASS(76);
    00318     Gtk::Menu viewmenu;
    00319
    00320     DEBUGPOINT_CLASS(99);
    00321     Gtk::Menu keyframemenu;
    00322
    00323     Gtk::Menu parammenu;
    00324     DEBUGPOINT_CLASS(9);
    00325     Gtk::Menu trackmenu;
    00326     DEBUGPOINT_CLASS(7);
    00327
    00328     Gtk::CheckMenuItem* duck_mask_position;
    00329     Gtk::CheckMenuItem* duck_mask_vertex;
    00330     Gtk::CheckMenuItem* duck_mask_tangent;
    00331     Gtk::CheckMenuItem* duck_mask_radius;
    00332     Gtk::CheckMenuItem* duck_mask_width;
    00333     Gtk::CheckMenuItem* duck_mask_angle;
    00334 */
    00336     Gtk::Menu parammenu;
    00337
    00338     Glib::RefPtr<Gtk::ToggleAction> grid_snap_toggle;
    00339     Glib::RefPtr<Gtk::ToggleAction> grid_show_toggle;
    00340
    00341     Gtk::RadioButtonGroup quality_group;
    00342     Gtk::RadioButtonGroup low_res_pixel_size_group;
    00343
    00344     Glib::RefPtr<Gtk::ActionGroup> action_group;
    00345
    00346     etl::handle<synfigapp::UIInterface> ui_interface_;
    00347     etl::handle<synfigapp::SelectionManager> selection_manager_;
    00348
    00349     bool is_playing_;
    00350
    00351     sigc::signal<void> signal_deleted_;
    00352
    00353     bool rebuild_ducks_queued;
    00354     sigc::connection queue_rebuild_ducks_connection;
    00355
    00356     /*
    00357  -- ** -- P U B L I C   D A T A -----------------------------------------------
    00358     */
    00359
    00360 public:
    00361     void queue_rebuild_ducks();
    00362     sigc::signal<void>& signal_deleted() { return signal_deleted_; }
    00363
    00364     Gtk::Menu mainmenu;
    00365
    00366     bool duck_refresh_flag;
    00367     bool duck_refresh_needed;
    00368
    00370     int working_depth;
    00371
    00372     bool cancel;
    00373
    00374     /*
    00375  -- ** -- D I A L O G S -------------------------------------------------------
    00376     */
    00377
    00378 public:
    00379
    00380     CanvasProperties canvas_properties;
    00381     CanvasOptions canvas_options;
    00382     RenderSettings render_settings;
    00383     Dialog_Waypoint waypoint_dialog;
    00384     Dialog_Keyframe keyframe_dialog;
    00385
    00386     std::auto_ptr<Dialog_Preview>           preview_dialog;
    00387     //std::auto_ptr<Dialog_PreviewOptions>  previewoption_dialog;
    00388     std::auto_ptr<Dialog_SoundSelect>       sound_dialog;
    00389
    00390     /*
    00391  -- ** -- P R I V A T E   M E T H O D S ---------------------------------------
    00392     */
    00393
    00394 private:
    00395
    00396     // Constructor is private to force the use of the "create()" constructor
    00397     CanvasView(etl::loose_handle<Instance> instance,etl::handle<synfigapp::CanvasInterface> canvas_interface);
    00398
    00400     // Gtk::Widget* create_layer_tree();
    00401
    00403     // Gtk::Widget* create_children_tree();
    00404
    00406     // Gtk::Widget* create_keyframe_tree();
    00407
    00409     Gtk::Widget* create_status_bar();
    00410
    00412     void init_menus();
    00413
    00414     bool duck_change_param(const synfig::Point &value,synfig::Layer::Handle layer, synfig::String param_name);
    00415
    00416     void refresh_time_window();
    00417
    00418     void time_was_changed();
    00419
    00420     void refresh_rend_desc();
    00421
    00422     void toggle_duck_mask(Duckmatic::Type type);
    00423
    00424     Gtk::Widget *create_work_area();
    00425
    00426     Gtk::Widget *create_time_bar();
    00427
    00428     Gtk::Widget *create_display_bar();
    00429
    00431     void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc)
    00432     { popup_param_menu(value_desc,location,true); }
    00433
    00435     void popup_param_menu(synfigapp::ValueDesc value_desc, float location=0, bool bezier=false);
    00436
    00437     void workarea_layer_selected(synfig::Layer::Handle layer);
    00438
    00439     void selected_layer_color_set(synfig::Color color);
    00440
    00441     void register_layer_type(synfig::Layer::Book::value_type &lyr,std::map<synfig::String,Gtk::Menu*>*);
    00442
    00444     void build_new_layer_menu(Gtk::Menu &menu);
    00445
    00446     void rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set<synfig::Layer::Handle>& selected_list);
    00447
    00448     void decrease_low_res_pixel_size();
    00449     void increase_low_res_pixel_size();
    00450     void toggle_low_res_pixel_flag();
    00451     void set_quality(int x);
    00452     void set_onion_skins();
    00453     void toggle_show_grid();
    00454     void toggle_snap_grid();
    00455     void toggle_onion_skin();
    00456
    00457     /*
    00458  -- ** -- P U B L I C   M E T H O D S -----------------------------------------
    00459     */
    00460
    00461 public:
    00462     const synfig::TransformStack& get_curr_transform_stack()const { return curr_transform_stack; }
    00463
    00464     const synfig::Rect& get_bbox()const { return bbox; }
    00465
    00466     Glib::RefPtr<Glib::ObjectBase> get_ref_obj(const synfig::String& x);
    00467     Glib::RefPtr<const Glib::ObjectBase> get_ref_obj(const synfig::String& x)const;
    00468     void set_ref_obj(const synfig::String& x, Glib::RefPtr<Glib::ObjectBase> y);
    00469
    00470     Glib::RefPtr<Gtk::TreeModel> get_tree_model(const synfig::String& x);
    00471     Glib::RefPtr<const Gtk::TreeModel> get_tree_model(const synfig::String& x)const;
    00472     void set_tree_model(const synfig::String& x, Glib::RefPtr<Gtk::TreeModel> y);
    00473
    00474     Gtk::Widget* get_ext_widget(const synfig::String& x);
    00475     void set_ext_widget(const synfig::String& x, Gtk::Widget* y);
    00476
    00477     //std::map<synfig::String,Gtk::Widget*>& tree_view_book() { return tree_view_book_; }
    00478     //std::map<synfig::String,Gtk::Widget*>& ext_widget_book() { return tree_view_book_; }
    00479
    00480     void popup_main_menu();
    00481
    00482     Smach& get_smach() { return smach_; }
    00483
    00484     const Smach& get_smach()const { return smach_; }
    00485
    00486     Smach::event_result process_event_key(EventKey x);
    00487
    00488     void popup_layer_menu(synfig::Layer::Handle layer);
    00489
    00490     virtual ~CanvasView();
    00491
    00492     void set_mode(Mode x) { canvas_interface()->set_mode(x); }
    00493
    00494     Mode get_mode()const { return canvas_interface()->get_mode(); }
    00495
    00496     Gtk::Adjustment &time_adjustment() { return time_adjustment_; }
    00497
    00498     const Gtk::Adjustment &time_adjustment()const { return time_adjustment_; }
    00499
    00500     studio::Adjust_Window &time_window_adjustment() { return time_window_adjustment_; }
    00501
    00502     const studio::Adjust_Window &time_window_adjustment()const { return time_window_adjustment_; }
    00503
    00504     etl::handle<synfigapp::UIInterface> get_ui_interface() { return ui_interface_;}
    00505
    00506     etl::handle<synfigapp::SelectionManager> get_selection_manager() { return selection_manager_; }
    00507
    00508     Glib::RefPtr<Gtk::TreeModel> layer_tree_store() { return get_tree_model("layers"); }
    00509
    00510     Glib::RefPtr<const Gtk::TreeModel> layer_tree_store()const { return get_tree_model("layers"); }
    00511
    00512     Glib::RefPtr<Gtk::TreeModel> children_tree_store() { return get_tree_model("children"); }
    00513
    00514     Glib::RefPtr<const Gtk::TreeModel> children_tree_store()const { return get_tree_model("children"); }
    00515
    00516     Glib::RefPtr<Gtk::TreeModel> keyframe_tree_store() { return get_tree_model("keyframes"); }
    00517
    00518     Glib::RefPtr<const Gtk::TreeModel> keyframe_tree_store()const { return get_tree_model("keyframes"); }
    00519
    00520     void set_time(synfig::Time t) { canvas_interface_->set_time(t); }
    00521
    00522     synfig::Time get_time() { return canvas_interface_->get_time(); }
    00523
    00524     etl::handle<synfig::Canvas> get_canvas()const { return canvas_interface_->get_canvas(); }
    00525
    00526     etl::handle<Instance> get_instance()const { return instance_; }
    00527
    00528     etl::handle<synfigapp::CanvasInterface> canvas_interface() { return canvas_interface_; }
    00529
    00530     etl::handle<const synfigapp::CanvasInterface> canvas_interface()const { return canvas_interface_; }
    00531
    00532     void add_actions_to_menu(Gtk::Menu *menu,   const synfigapp::Action::ParamList &param_list, synfigapp::Action::Category category=synfigapp::Action::CATEGORY_ALL)const;
    00533
    00535     void update_title();
    00536
    00538     bool close_instance();
    00539
    00541     bool close_view();
    00542
    00544
    00545     void stop() { cancel=true; }
    00546
    00548
    00549     bool get_cancel_status()const { return cancel; }
    00550
    00552
    00553     void reset_cancel_status() { cancel=false; }
    00554
    00555     void new_child_canvas();
    00556
    00558     void rebuild_tables();
    00559
    00561     void build_tables();
    00562
    00564     void refresh_tables();
    00565
    00566     //void rebuild_layer_table();
    00567     //void build_layer_table();
    00568     //void refresh_layer_table();
    00569
    00570 //  void rebuild_canvas_table();
    00571 //  void build_canvas_table();
    00572 //  void refresh_canvas_table();
    00573
    00574 //  void rebuild_valuenode_table();
    00575 //  void build_valuenode_table();
    00576 //  void refresh_valuenode_table();
    00577
    00579     void rebuild_ducks();
    00580
    00581     //bool add_to_ducks(synfigapp::ValueDesc value_desc, synfig::ParamDesc *param_desc=NULL);
    00582
    00584     void play();
    00585
    00587     void show_tables();
    00588
    00590     void hide_tables();
    00591
    00593     void toggle_tables();
    00594
    00596     bool tables_are_visible();
    00597
    00599     void show_timebar();
    00600
    00602     void hide_timebar();
    00603
    00604     //t Enables or disables interaction with the timebar
    00605     void set_sensitive_timebar(bool sensitive);
    00606
    00607     void time_zoom_in();
    00608     void time_zoom_out();
    00609
    00610     void add_layer(synfig::String x);
    00611
    00612     void show_keyframe_dialog();
    00613
    00614     void play_audio(float t);
    00615     void stop_audio();
    00616
    00617     void image_import();
    00618
    00619     void on_waypoint_clicked_canvasview(synfigapp::ValueDesc,std::set<synfig::Waypoint,std::less<synfig::UniqueID> >, int button);
    00620
    00621     void preview_option() {on_preview_option();}
    00622
    00623     void present();
    00624
    00625     bool is_playing() { return is_playing_; }
    00626
    00627     void update_quality();
    00628
    00629
    00630
    00631     /*
    00632  -- ** -- S I G N A L   T E R M I N A L S -------------------------------------
    00633     */
    00634
    00635 private:
    00636
    00637     void on_select_layers();
    00638     void on_unselect_layers();
    00639
    00640     void on_input_device_changed(GdkDevice*);
    00641
    00642     virtual void on_hide();
    00643
    00644     virtual bool on_focus_in_event(GdkEventFocus*);
    00645     virtual bool on_focus_out_event(GdkEventFocus*);
    00646
    00647     //bool on_children_tree_event(GdkEvent *event);
    00648
    00649     bool on_keyframe_tree_event(GdkEvent *event);
    00650
    00651     //void on_children_edited_value(const Glib::ustring&path_string,synfig::ValueBase value);
    00652
    00653     void on_dirty_preview();
    00654
    00655     bool on_children_user_click(int, Gtk::TreeRow, ChildrenTree::ColumnID);
    00656
    00657     bool on_layer_user_click(int, Gtk::TreeRow, LayerTree::ColumnID);
    00658
    00659 //  void on_layer_toggle(const Glib::ustring& path_string, Gtk::TreeModelColumn<bool> column);
    00660
    00661     void on_mode_changed(synfigapp::CanvasInterface::Mode mode);
    00662
    00663 //  void on_layer_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator);
    00664
    00665     //void on_children_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator);
    00666
    00667     void on_waypoint_changed();
    00668
    00669     void on_waypoint_delete();
    00670
    00671     void on_refresh_pressed();
    00672
    00673     void on_id_changed();
    00674
    00675     void on_time_changed();
    00676
    00677     /*
    00678     void on_layer_raise_pressed();
    00679     void on_layer_lower_pressed();
    00680     void on_layer_duplicate_pressed();
    00681     void on_layer_delete_pressed();
    00682     */
    00683
    00684     void on_keyframe_add_pressed();
    00685
    00686     void on_keyframe_duplicate_pressed();
    00687
    00688     void on_keyframe_remove_pressed();
    00689
    00690     void on_animate_button_pressed();
    00691
    00692     void on_keyframe_button_pressed();
    00693
    00694     void on_preview_option();
    00695     void on_preview_create(const PreviewInfo &);
    00696
    00697     void on_audio_option();
    00698     void on_audio_file_change(const std::string &f);
    00699     void on_audio_offset_change(const synfig::Time &t);
    00700
    00701     void on_audio_file_notify();
    00702     void on_audio_offset_notify();
    00703
    00704     bool on_duck_changed(const synfig::Point &value,const synfigapp::ValueDesc& value_desc);
    00705     bool on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp::ValueDesc& value_desc);
    00706
    00707     void on_layer_toggle(synfig::Layer::Handle);
    00708
    00709     void on_edited_value(synfigapp::ValueDesc,synfig::ValueBase);
    00710
    00711     void on_drop_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time);
    00712
    00713     //void on_audio_play();
    00714     bool on_audio_scrub();
    00715
    00716     void on_play_stop_pressed();
    00717
    00718 protected:
    00719     bool close_instance_when_safe();
    00720     bool on_delete_event(GdkEventAny* event);
    00721
    00722     /*
    00723  -- ** -- S T A T I C   P U B L I C   M E T H O D S ---------------------------
    00724     */
    00725
    00726 public:
    00727
    00728     static etl::handle<studio::CanvasView> create(etl::loose_handle<Instance> instance,etl::handle<synfig::Canvas> canvas);
    00729     static std::list<int>& get_pixel_sizes();
    00730
    00731 }; // END of class CanvasView
    00732
    00733 }; // END of namespace studio
    00734
    00735 /* === E N D =============================================================== */
    00736
    00737 #endif