patch expander changes, rework show assets/titles/transitions, add projector/camera...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / resourcepixmap.C
index 6f74c85dcf3a4de2a052acd1a1139a9424b707d4..cdc1e1b1d4b8b2d79a425f5bc8c4494cc22cf4a0 100644 (file)
@@ -117,14 +117,9 @@ void ResourcePixmap::resize(int w, int h)
 
 
 void ResourcePixmap::draw_data(TrackCanvas *canvas,
-       Edit *edit,
-       int64_t edit_x,
-       int64_t edit_w,
-       int64_t pixmap_x,
-       int64_t pixmap_w,
-       int64_t pixmap_h,
-       int mode,
-       int indexes_only)
+       Edit *edit, int64_t edit_x, int64_t edit_w,
+       int64_t pixmap_x, int64_t pixmap_w, int64_t pixmap_h,
+       int mode, int indexes_only)
 {
 // Get new areas to fill in relative to pixmap
 // Area to redraw relative to pixmap
@@ -135,9 +130,8 @@ void ResourcePixmap::draw_data(TrackCanvas *canvas,
 //     if( mode == IGNORE_THREAD ) return;
 
        int y = 0;
-       if( mwindow->edl->session->show_titles )
+       if( edit->track->show_titles() )
                y += mwindow->theme->get_image("title_bg_data")->get_h();
-       Track *track = edit->edits->track;
 
 
 // If want indexes only & index can't be drawn, don't do anything.
@@ -374,6 +368,7 @@ void ResourcePixmap::draw_data(TrackCanvas *canvas,
 
 
 // Draw media which already exists
+       Track *track = edit->track;
        if( track->draw ) {
                switch( track->data_type )
                {
@@ -404,16 +399,6 @@ void ResourcePixmap::draw_data(TrackCanvas *canvas,
                                break;
                }
        }
-
-// Draw title
-SET_TRACE
-       if( mwindow->edl->session->show_titles )
-               draw_title(canvas,
-                       edit,
-                       edit_x,
-                       edit_w,
-                       pixmap_x,
-                       pixmap_w);
 SET_TRACE
 }
 
@@ -531,7 +516,7 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i
        w++;
        Indexable *indexable = edit->get_source();
        int center_pixel = mwindow->edl->local_session->zoom_track / 2;
-       if( mwindow->edl->session->show_titles )
+       if( edit->track->show_titles() )
                center_pixel += mwindow->theme->get_image("title_bg_data")->get_h();
        int64_t scale_y = mwindow->edl->local_session->zoom_y;
        int y_max = center_pixel + scale_y / 2 - 1;
@@ -693,11 +678,12 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i
        canvas->test_timer();
 }
 
-void ResourcePixmap::draw_wave(TrackCanvas *canvas, int x, double high, double low)
+void ResourcePixmap::draw_wave(TrackCanvas *canvas,
+       int x, double high, double low)
 {
        int top_pixel = 0;
        if( mwindow->edl->session->show_titles )
-               top_pixel = mwindow->theme->get_image("title_bg_data")->get_h();
+               top_pixel += mwindow->theme->get_image("title_bg_data")->get_h();
        int center_pixel = mwindow->edl->local_session->zoom_track / 2 + top_pixel;
        int bottom_pixel = top_pixel + mwindow->edl->local_session->zoom_track;
        int y1 = (int)(center_pixel -
@@ -733,7 +719,7 @@ void ResourcePixmap::draw_video_resource(TrackCanvas *canvas,
        if( frame_w < picon_w ) frame_w = picon_w;
 // Current pixel relative to pixmap
        int y = 0;
-       if( mwindow->edl->session->show_titles )
+       if( edit->track->show_titles() )
                y += mwindow->theme->get_image("title_bg_data")->get_h();
 
 // Frame in project touched by current pixel
@@ -781,8 +767,8 @@ void ResourcePixmap::draw_subttl_resource(TrackCanvas *canvas, Edit *edit, int x
        SEdit *sedit = (SEdit *)edit;
        char *text = sedit->get_text();
        if( !*text || w < 10 ) return;
-       int center_pixel = mwindow->edl->local_session->zoom_track / 2;
-       if( mwindow->edl->session->show_titles )
+       int center_pixel = canvas->resource_h() / 2;
+       if( edit->track->show_titles() )
                center_pixel += mwindow->theme->get_image("title_bg_data")->get_h();
        int64_t scale_y = mwindow->edl->local_session->zoom_y;
        int x0 = edit_x;