fix default color btn in set title bar color, fix bar color fast path, tweaks to...
authorGood Guy <good1.2guy@gmail.com>
Tue, 31 Dec 2019 01:46:14 +0000 (18:46 -0700)
committerGood Guy <good1.2guy@gmail.com>
Tue, 31 Dec 2019 01:46:14 +0000 (18:46 -0700)
cinelerra-5.1/cinelerra/colorpicker.C
cinelerra-5.1/cinelerra/colorpicker.h
cinelerra-5.1/cinelerra/resourcepixmap.C
cinelerra-5.1/cinelerra/trackpopup.C
cinelerra-5.1/plugins/sketcher/sketcherwindow.C

index 26451d7..7c0a38d 100644 (file)
@@ -86,6 +86,7 @@ BC_Window* ColorPicker::new_gui()
        if( x < 0 ) x = 0;
        if( y < 0 ) y = 0;
        ColorWindow *window = new ColorWindow(this, x, y, w, h, window_title);
+       window->create_objects();
        window->start_selection(color, !do_alpha ? -1 : alpha, ok_cancel);
        return window;
 }
@@ -114,6 +115,13 @@ ColorWindow::~ColorWindow()
 {
 }
 
+void ColorWindow::create_objects()
+{
+       BC_WindowBase::create_objects();
+       ColorGUI::create_objects();
+       thread->create_objects(this);
+}
+
 void ColorWindow::update_gui(int color, int alpha)
 {
        lock_window("ColorWindow::update_gui");
index 706b279..9116e0d 100644 (file)
@@ -45,6 +45,7 @@ public:
        ColorPicker(int do_alpha = 0, const char *title = 0);
        ~ColorPicker();
        void start_window(int color, int alpha, int ok_cancel=0);
+       virtual void create_objects(ColorWindow *window) {}
        virtual void update_gui(int color, int alpha);
        virtual int handle_new_color(int color, int alpha);
        BC_Window* new_gui();
@@ -142,6 +143,7 @@ public:
 
        void update_gui(int color, int alpha);
        int handle_new_color(int color, int alpha);
+       void create_objects();
 
        int close_event() { return close_gui(); }
        int cursor_motion_event() { return cursor_motion_gui(); }
index 9ed12d9..b0bc49b 100644 (file)
@@ -238,6 +238,8 @@ VFrame *ResourcePixmap::change_title_color(VFrame *title_bg, int color)
        VFrame *title_bar = new VFrame(tw, th, colormodel);
        uint8_t **bar_rows = title_bar->get_rows();
        const uint8_t gap_grey = 0x4a;
+       union { unsigned rgba; struct { uint8_t r,g,b,a; }; } c;
+       c.r = color>>16;  c.g = color>>8;  c.b = color>>0;  c.a = 0xff;
        if( BC_CModels::has_alpha(colormodel) && // fast path
            BC_CModels::calculate_pixelsize(colormodel) == sizeof(unsigned) ) {
                const unsigned gap_rgba = (0xff<<24) |
@@ -246,16 +248,14 @@ VFrame *ResourcePixmap::change_title_color(VFrame *title_bg, int color)
                        unsigned *bp = (unsigned *)bar_rows[0];
                        for( int i=tw; --i>=0; ) *bp++ = gap_rgba;
                }
-               unsigned rgba = (0xff<<24) | (color & 0xffffff);
                for( int y=1; y<th; ++y ) {
                        unsigned *bp = (unsigned *)bar_rows[y];
                        if( tw > 0 ) *bp++ = gap_rgba;
-                       for( int i=tw1; --i>0; ++bp ) *bp = rgba;
+                       for( int i=tw1; --i>0; ++bp ) *bp = c.rgba;
                        if( tw > 1 ) *bp = gap_rgba;
                }
        }
        else {
-               uint8_t cr = (color>>16), cg = (color>>8), cb = (color>>0);
                if( th > 0 ) {
                        uint8_t *cp = bar_rows[0];
                        for( int x=0; x<tw; ++x ) {
@@ -272,7 +272,7 @@ VFrame *ResourcePixmap::change_title_color(VFrame *title_bg, int color)
                                cp += bpp;
                        }
                        for( int x=1; x<tw1; ++x ) {
-                               cp[0] = cr; cp[1] = cg; cp[2] = cb;
+                               cp[0] = c.r; cp[1] = c.g; cp[2] = c.b;
                                if( bpp > 3 ) cp[3] = 0xff;
                                cp += bpp;
                        }
index 224343b..c00c023 100644 (file)
@@ -454,10 +454,12 @@ TrackTitleColorPicker::~TrackTitleColorPicker()
 }
 void TrackTitleColorPicker::create_objects(ColorWindow *gui)
 {
+       gui->lock_window("TrackTitleColorPicker::create_objects");
        int y = gui->get_h() - BC_CancelButton::calculate_h() + yS(10);
        int x = gui->get_w() - BC_CancelButton::calculate_w() - xS(10);
        x -= BC_GenericButton::calculate_w(gui, _("default")) + xS(15);
        gui->add_subwindow(new TrackTitleColorDefault(this, x, y));
+       gui->unlock_window();
 }
 
 int TrackTitleColorPicker::handle_new_color(int color, int alpha)
index 5a38b4b..dfb7e95 100644 (file)
@@ -278,6 +278,7 @@ SketcherAliasing::SketcherAliasing(SketcherWindow *gui, Sketcher *plugin,
 {
        this->gui = gui;
        this->plugin = plugin;
+       set_tooltip(_("Anti-Aliasing"));
 }
 SketcherAliasing::~SketcherAliasing()
 {
@@ -293,7 +294,7 @@ void SketcherAliasing::create_objects()
 const char *SketcherAliasing::alias_to_text(int alias)
 {
        if( alias < 0 ) return _("Off");
-       if( alias > 0 ) return _("Dbl");
+       if( alias > 0 ) return _("Double");
        return _("On");
 }