add shuttle udev rules to doc, fix still images drag handle
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / resourcepixmap.C
index 0da77299438ab769f192132e0ac216392d5ed37f..86fb5023d384252047453b4b89918e035dad38dd 100644 (file)
@@ -238,10 +238,11 @@ VFrame *ResourcePixmap::change_title_color(VFrame *title_bg, int color)
        VFrame *title_bar = new VFrame(tw, th, colormodel);
        uint8_t cr = (color>>16), cg = (color>>8), cb = (color>>0);
        uint8_t **bar_rows = title_bar->get_rows();
+       const uint8_t gap_grey = 0x4a;
        if( th > 0 ) {
                uint8_t *cp = bar_rows[0];
                for( int x=0; x<tw; ++x ) {
-                       cp[0] = cp[1] = cp[2] = 0;
+                       cp[0] = cp[1] = cp[2] = gap_grey;
                        if( bpp > 3 ) cp[3] = 0xff;
                        cp += bpp;
                }
@@ -249,7 +250,7 @@ VFrame *ResourcePixmap::change_title_color(VFrame *title_bg, int color)
        for( int y=1; y<th; ++y ) {
                uint8_t *cp = bar_rows[y];
                if( tw > 0 ) {
-                       cp[0] = cp[1] = cp[2] = 0;
+                       cp[0] = cp[1] = cp[2] = gap_grey;
                        if( bpp > 3 ) cp[3] = 0xff;
                        cp += bpp;
                }
@@ -259,7 +260,7 @@ VFrame *ResourcePixmap::change_title_color(VFrame *title_bg, int color)
                        cp += bpp;
                }
                if( tw > 1 ) {
-                       cp[0] = cp[1] = cp[2] = 0;
+                       cp[0] = cp[1] = cp[2] = gap_grey;
                        if( bpp > 3 ) cp[3] = 0xff;
                }
        }
@@ -270,13 +271,15 @@ VFrame *ResourcePixmap::change_picon_alpha(VFrame *picon_frame, int alpha)
 {
        uint8_t **picon_rows = picon_frame->get_rows();
        int w = picon_frame->get_w(), h = picon_frame->get_h();
+       int color_model = picon_frame->get_color_model();
+       int bpp = BC_CModels::calculate_pixelsize(color_model);
        VFrame *frame = new VFrame(w, h, BC_RGBA8888);
        uint8_t **rows = frame->get_rows();
        for( int y=0; y<h; ++y ) {
                uint8_t *bp = picon_rows[y], *rp = rows[y];
                for( int x=0; x<w; ++x ) {
                        rp[0] = bp[0];  rp[1] = bp[1];
-                       rp[2] = bp[2];  bp += 3;
+                       rp[2] = bp[2];  bp += bpp;
                        rp[3] = alpha;  rp += 4;
                }
        }
@@ -302,21 +305,19 @@ void ResourcePixmap::draw_title(TrackCanvas *canvas,
        canvas->draw_3segmenth(x, 0, w, total_x, total_w, title_bar, this);
        if( title_bar != title_bg ) delete title_bar;
 
-//     if( total_x > -BC_INFINITY ) {
-               char title[BCTEXTLEN];
-               edit->get_title(title);
-               canvas->set_color(mwindow->theme->title_color);
-               canvas->set_font(mwindow->theme->title_font);
+       char title[BCTEXTLEN];
+       edit->get_title(title);
+       canvas->set_color(mwindow->theme->title_color);
+       canvas->set_font(mwindow->theme->title_font);
 
 // Justify the text on the left boundary of the edit if it is visible.
 // Otherwise justify it on the left side of the screen.
-               int text_x = total_x + left_margin;
-               text_x = MAX(left_margin, text_x);
+       int text_x = total_x + left_margin;
+       text_x = MAX(left_margin, text_x);
 //printf("ResourcePixmap::draw_title 1 %d\n", text_x);
-               canvas->draw_text(text_x,
-                       canvas->get_text_ascent(mwindow->theme->title_font) + 2,
-                       title, strlen(title), this);
-//     }
+       canvas->draw_text(text_x, // 2,
+               canvas->get_text_ascent(mwindow->theme->title_font) + 2,
+               title, strlen(title), this);
 }