a/v per track data height, boxblur power fix, add french expanders
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / theme.C
index 71bb2399ae82e4d8672238f0f0cb1fdf4fb4411d..c1847b78edb95f22b4b6ef8229dd24fa1e168cb9 100644 (file)
@@ -24,6 +24,7 @@
 #include "clip.h"
 #include "bccolors.h"
 #include "cwindowgui.h"
+#include "edit.h"
 #include "edl.h"
 #include "edlsession.h"
 #include "keyframegui.h"
@@ -46,6 +47,7 @@
 #include "resourcepixmap.h"
 #include "statusbar.h"
 #include "theme.h"
+#include "track.h"
 #include "timebar.h"
 #include "trackcanvas.h"
 #include "vframe.h"
@@ -735,28 +737,30 @@ SET_TRACE
 
 
                int buttons_h = get_image("rewind")->get_h() + widget_border;
+               int panel_y = mwindow->session->cwindow_h - buttons_h + yS(4);
                ctransport_x = widget_border;
-               ctransport_y = mwindow->session->cwindow_h - buttons_h - widget_border;
                if( ctransport_x + transport_w + widget_border +
                    edit_w + widget_border + zoom_w + widget_border +
                    division_w + status_w > cmeter_x ) {
-                       buttons_h += EditPanel::calculate_h(mwindow) + widget_border;
-                       cedit_x = widget_border;
-                       cedit_y = mwindow->session->cwindow_h - buttons_h;
+                       ctransport_y = panel_y;
                        czoom_x = ctransport_x + transport_w + widget_border;
-                       czoom_y = ctransport_y + widget_border;
+                       czoom_y = panel_y;
                        cstatus_x = xS(440);
-                       cstatus_y = cedit_y + yS(20);
+                       cstatus_y = panel_y - yS(2);
+                       int edit_h = EditPanel::calculate_h(mwindow) + widget_border;
+                       buttons_h += edit_h;  panel_y -= edit_h;
+                       cedit_x = widget_border;
+                       cedit_y = panel_y;
                }
                else {
                        ctransport_x = widget_border;
-                       ctransport_y = mwindow->session->cwindow_h - buttons_h;
+                       ctransport_y = panel_y;
                        cedit_x = ctransport_x + transport_w + widget_border;
-                       cedit_y = ctransport_y;
+                       cedit_y = panel_y;
                        czoom_x = cedit_x + edit_w + widget_border;
-                       czoom_y = cedit_y + widget_border;
+                       czoom_y = panel_y;
                        cstatus_x = czoom_x + zoom_w + division_w;
-                       cstatus_y = ctransport_y;
+                       cstatus_y = panel_y;
                }
                buttons_h += ctimebar_h;
 
@@ -869,12 +873,13 @@ void Theme::draw_rwindow_bg(RecordGUI *gui)
 }
 
 
-void Theme::draw_resource_bg(TrackCanvas *canvas, ResourcePixmap *pixmap, int color,
-       int edit_x, int edit_w, int pixmap_x, int x1, int y1, int x2, int y2)
+void Theme::draw_resource_bg(TrackCanvas *canvas, ResourcePixmap *pixmap,
+               int color, Edit *edit, int edit_x, int edit_w,
+               int pixmap_x, int x1, int y1, int x2, int y2)
 {
        VFrame *image = 0;
-
-       switch(mwindow->edl->local_session->zoom_track) {
+       int data_h = edit->track->data_h;
+       switch( data_h ) {
                case 1024: image = get_image("resource1024");  break;
                case 512: image = get_image("resource512");  break;
                case 256: image = get_image("resource256");  break;
@@ -930,27 +935,29 @@ void Theme::get_vwindow_sizes(VWindowGUI *gui)
        vcanvas_w = vmeter_x - vcanvas_x - widget_border;
 
        int buttons_h = get_image("rewind")->get_h() + widget_border;
+       int panel_y = mwindow->session->vwindow_h - buttons_h + yS(4);
        vtransport_x = widget_border;
-       vtransport_y = mwindow->session->vwindow_h - buttons_h - widget_border;
        if( vtransport_x + transport_w + widget_border +
            edit_w + widget_border + vtime_w + xS(40) + widget_border > vmeter_x ) {
-               buttons_h += EditPanel::calculate_h(mwindow) + widget_border;
-               vedit_x = widget_border;
-               vedit_y = mwindow->session->vwindow_h - buttons_h;
+               vtransport_y = panel_y;
                vzoom_x = vtransport_x + transport_w + widget_border;
-               vzoom_y = vtransport_y + widget_border;
-               vdivision_x = xS(280);
+               vzoom_y = panel_y;
+               vdivision_x = xS(320);
                vtime_x = vdivision_x;
-               vtime_y = vtransport_y + widget_border;;
+               vtime_y = panel_y;
+               int edit_h = EditPanel::calculate_h(mwindow) + widget_border;
+               buttons_h += edit_h;  panel_y -= edit_h;
+               vedit_x = widget_border;
+               vedit_y = panel_y;
        }
        else {
                vtransport_x = widget_border;
-               vtransport_y = mwindow->session->vwindow_h - buttons_h;
+               vtransport_y = panel_y;
                vedit_x = vtransport_x + transport_w + widget_border;
-               vedit_y = vtransport_y;
+               vedit_y = panel_y;
                vdivision_x = vedit_x + edit_w + division_w;
                vtime_x = vdivision_x + vtime_border;
-               vtime_y = vtransport_y + widget_border;;
+               vtime_y = panel_y;
        }
        buttons_h += vtimebar_h;