X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrackcanvas.h;h=4b9c4eba22736a68f8c5be3f8fd9013260ea6f44;hp=b42660c57bb1a29c26bb0a586bfbd5376b3b3b2f;hb=03fa86e6dc495f9444ae14dad401b1ad6de793fe;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1 diff --git a/cinelerra-5.1/cinelerra/trackcanvas.h b/cinelerra-5.1/cinelerra/trackcanvas.h index b42660c5..4b9c4eba 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.h +++ b/cinelerra-5.1/cinelerra/trackcanvas.h @@ -43,20 +43,13 @@ #include "resourcepixmap.inc" #include "timelinepane.inc" #include "track.inc" +#include "trackcanvas.inc" #include "tracks.inc" #include "transitionhandles.inc" #include "keyframe.inc" #include -// draw mode: -// NORMAL_DRAW causes incremental drawing of pixmaps. Used for navigation and index refresh. -// FORCE_REDRAW causes all resource pixmaps to be redrawn from scratch. Used by editing. -// IGNORE_THREAD causes resource pixmaps to ignore picon thread. Used by Piconthread. -#define NORMAL_DRAW 1 -#define FORCE_REDRAW 2 -#define IGNORE_THREAD 3 - class TrackCanvas : public BC_SubWindow { public: @@ -267,13 +260,14 @@ public: void draw_loop_points(); void draw_transitions(); void draw_drag_handle(); + void draw_selected_edits(EDL *edl, int dx, int dy, int color0, int color1); void draw_plugins(); void refresh_plugintoggles(); void update_edit_handles(Edit *edit, int64_t edit_x, int64_t edit_y, int64_t edit_w, int64_t edit_h); void update_transitions(); void update_keyframe_handles(Track *track); // Draw everything to synchronize with the view. - void draw(int mode = 0, int hide_cursor = 1); + void draw(int mode, int hide_cursor); // Draw resources during index building void draw_indexes(Indexable *indexable); // Get location of edit on screen without boundary checking @@ -283,6 +277,10 @@ public: void get_pixmap_size(Edit *edit, int64_t edit_x, int64_t edit_w, int64_t &pixmap_x, int64_t &pixmap_w, int64_t &pixmap_h); ResourcePixmap* create_pixmap(Edit *edit, int64_t edit_x, int64_t pixmap_x, int64_t pixmap_w, int64_t pixmap_h); void update_cursor(int flush); + void draw_selected(int x, int y, int w, int h); + int arrow_mode(); + int ibeam_mode(); + // Get edit and handle the cursor is over int do_edit_handles(int cursor_x, int cursor_y, @@ -311,6 +309,8 @@ public: int do_tracks(int cursor_x, int cursor_y, int button_press); + int test_track_group(EDL *group, Track *first_track, double &pos); + int edit_intersects(Track *track, Edit *src_edit, double &pos); int test_resources(int cursor_x, int cursor_y); int do_plugins(int cursor_x, int cursor_y, @@ -341,10 +341,11 @@ public: int start_selection(double position); int drag_motion_event(); int drag_stop_event(); - int drag_motion(Track **over_track, - Edit **over_edit, - PluginSet **over_pluginset, - Plugin **over_plugin); + int drag_motion(Track **over_track, Edit **over_edit, + PluginSet **over_pluginset, Plugin **over_plugin); + int drag_cursor_motion(int cursor_x, int cursor_y, + Track **over_track, Edit **over_edit, + PluginSet **over_pluginset, Plugin **over_plugin); int drag_stop(int *redraw); int64_t drop_edit_position (int *is_insertion, Edit *moved_edit, int64_t moved_edit_length); int64_t drop_plugin_position(PluginSet *plugin_set, Plugin *moved_plugin); @@ -359,7 +360,7 @@ public: int update_drag_toggleauto(int cursor_x, int cursor_y); int update_drag_auto(int cursor_x, int cursor_y); int update_drag_pluginauto(int cursor_x, int cursor_y); - void show_message(Auto *current, int show_curve_type, const char *fmt, ...); + void show_message(Auto *current, int box_color, const char *fmt, ...); // Update status bar to reflect drag operation void update_drag_caption();