X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fcanvasview.h;h=ea3fae71a91c25878289e363a725e041093c9d19;hb=3a2a20f4d04c9a1791b6e1997e75d729326a422b;hp=993b057c29f95cda8ff0ef868b93f1ea2147d280;hpb=7034cf6b8aa10ff2cd1d129ec79abb3c7c40afee;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 993b057..ea3fae7 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore +** Copyright (c) 2007, 2008 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 @@ -65,6 +65,9 @@ #include "dialog_waypoint.h" #include "dialog_keyframe.h" +#include "framedial.h" +#include "toggleducksdial.h" +#include "resolutiondial.h" #include "duckmatic.h" #include @@ -98,6 +101,10 @@ /* === C L A S S E S & S T R U C T S ======================================= */ +namespace synfig { + class TransformStack; +} + namespace studio { class CanvasViewUIInterface; @@ -121,7 +128,6 @@ class Widget_Time; class Dialog_SoundSelect; class Dialog_Preview; -class synfig::TransformStack; class Dock_Layers; class Dock_Children; class Dock_Keyframes; @@ -170,6 +176,9 @@ public: typedef synfigapp::CanvasInterface::Mode Mode; + void set_grid_snap_toggle(bool flag) { grid_snap_toggle->set_active(flag); } + void set_grid_show_toggle(bool flag) { grid_show_toggle->set_active(flag); } + /* -- ** -- P R I V A T E D A T A --------------------------------------------- */ @@ -229,7 +238,6 @@ private: std::map > ref_obj_book_; std::map ext_widget_book_; - //! The time adjustment's scope is defined by the time_window adjustment Gtk::Adjustment time_adjustment_; @@ -237,7 +245,6 @@ private: //Gtk::Adjustment time_window_adjustment_; studio::Adjust_Window time_window_adjustment_; - LayerTree *layer_tree; ChildrenTree *children_tree; @@ -254,22 +261,28 @@ private: Gtk::Button *stopbutton; Gtk::Button *refreshbutton; - Gtk::Button *treetogglebutton; - Gtk::Notebook *notebook; - Gtk::Widget *timebar; + Gtk::Button *treetogglebutton; // not used + Gtk::Notebook *notebook; // not used + Gtk::Table *timebar; + Gtk::Table *displaybar; + Gtk::Button *animatebutton; + Gtk::Button *keyframebutton; + FrameDial *framedial; + ToggleDucksDial *toggleducksdial; + bool toggling_ducks_; + ResolutionDial *resolutiondial; + bool changing_resolution_; + + //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); - std::auto_ptr timeslider; + //! Time slider class. Same than the Time track panel + std::auto_ptr timeslider; std::list duck_changed_connections; - - - Gtk::Button *animatebutton; - Gtk::Button *keyframebutton; - /* DEBUGPOINT_CLASS(8); Gtk::Menu duckmaskmenu; @@ -306,21 +319,17 @@ private: Gtk::CheckMenuItem* duck_mask_width; Gtk::CheckMenuItem* duck_mask_angle; */ + //! Menu members Gtk::Menu parammenu; - - Glib::RefPtr duck_mask_position; - Glib::RefPtr duck_mask_vertex; - Glib::RefPtr duck_mask_tangent; - Glib::RefPtr duck_mask_radius; - Glib::RefPtr duck_mask_width; - Glib::RefPtr duck_mask_angle; + Glib::RefPtr grid_snap_toggle; + Glib::RefPtr grid_show_toggle; Gtk::RadioButtonGroup quality_group; + Gtk::RadioButtonGroup low_res_pixel_size_group; Glib::RefPtr action_group; - etl::handle ui_interface_; etl::handle selection_manager_; @@ -349,7 +358,6 @@ public: bool cancel; - /* -- ** -- D I A L O G S ------------------------------------------------------- */ @@ -376,13 +384,13 @@ private: CanvasView(etl::loose_handle instance,etl::handle canvas_interface); //! Constructor Helper - Gtk::Widget* create_layer_tree(); + // Gtk::Widget* create_layer_tree(); //! Constructor Helper - Gtk::Widget* create_children_tree(); + // Gtk::Widget* create_children_tree(); //! Constructor Helper - Gtk::Widget* create_keyframe_tree(); + // Gtk::Widget* create_keyframe_tree(); //! Constructor Helper Gtk::Widget* create_status_bar(); @@ -404,20 +412,19 @@ private: Gtk::Widget *create_time_bar(); + Gtk::Widget *create_display_bar(); - + //! Pop up menu for the bezier (bline, draw) tool (?) void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc) - { popup_param_menu(value_desc,location); } - - void popup_param_menu(synfigapp::ValueDesc value_desc, float location=0); + { popup_param_menu(value_desc,location,true); } + //! Pop up menu for the tools but not the bezier ones. + void popup_param_menu(synfigapp::ValueDesc value_desc, float location=0, bool bezier=false); void workarea_layer_selected(synfig::Layer::Handle layer); void selected_layer_color_set(synfig::Color color); - - void register_layer_type(synfig::Layer::Book::value_type &lyr,std::map*); //! Rebuilds the "new layer" menu @@ -425,6 +432,10 @@ private: void rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set& selected_list); + void decrease_low_res_pixel_size(); + void increase_low_res_pixel_size(); + void toggle_low_res_pixel_flag(); + /* -- ** -- P U B L I C M E T H O D S ----------------------------------------- */ @@ -587,7 +598,7 @@ public: void image_import(); - void on_waypoint_clicked(synfigapp::ValueDesc,synfig::Waypoint, int button); + void on_waypoint_clicked_canvasview(synfigapp::ValueDesc,std::set >, int button); void preview_option() {on_preview_option();} @@ -601,6 +612,7 @@ public: private: + void on_select_layers(); void on_unselect_layers(); void on_input_device_changed(GdkDevice*); @@ -674,13 +686,13 @@ private: void on_edited_value(synfigapp::ValueDesc,synfig::ValueBase); - //void on_waypoint_clicked(synfigapp::ValueDesc,synfig::ValueNode_Animated::WaypointList::iterator, int button); - void on_drop_drag_data_received(const Glib::RefPtr& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time); //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); @@ -692,6 +704,8 @@ protected: public: static etl::handle create(etl::loose_handle instance,etl::handle canvas); + static std::list& get_pixel_sizes(); + }; // END of class CanvasView }; // END of namespace studio