add window layout feature, resource wdw select used, blue_dot/blond_cv theme fix...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / titler / titlerwindow.C
index bddb7993bdb845162de47d773e6454d01b847865..9245368f9bce421f77406ccdd8ec06c0353b32c6 100644 (file)
@@ -77,6 +77,7 @@ TitleWindow::TitleWindow(TitleMain *client)
        drag = 0;
        cur_popup = 0;
        fonts_popup = 0;
+       png_popup = 0;
 
        color_x = color_y = 0;
        outline_color_x = outline_color_y = 0;
@@ -92,6 +93,7 @@ TitleWindow::TitleWindow(TitleMain *client)
        encoding = 0;
        color_button = 0;
        color_thread = 0;
+       color_popup = 0;
        outline_color_button = 0;
        outline_color_thread = 0;
        motion_title = 0;
@@ -121,14 +123,17 @@ TitleWindow::TitleWindow(TitleMain *client)
 void TitleWindow::done_event(int result)
 {
        drag->drag_deactivate();
-       color_thread->close_window();
-       outline_color_thread->close_window();
-       color_popup->close_window();
-       png_popup->close_window();
+       delete color_thread;    color_thread = 0;
+       delete outline_color_thread;  outline_color_thread = 0;
+       delete color_popup;     color_popup = 0;
+       delete png_popup;       png_popup = 0;
+
 }
 
 TitleWindow::~TitleWindow()
 {
+       delete color_thread;
+       delete outline_color_thread;
        delete color_popup;
        delete png_popup;
        for( int i=0; i<fonts.size(); ++i )
@@ -785,7 +790,7 @@ TitleColorButton::TitleColorButton(TitleMain *client, TitleWindow *window, int x
 int TitleColorButton::handle_event()
 {
        window->color_thread->start_window(client->config.color,
-               client->config.alpha);
+               client->config.alpha, 1);
        return 1;
 }
 TitleOutlineColorButton::TitleOutlineColorButton(TitleMain *client, TitleWindow *window, int x, int y)
@@ -797,7 +802,7 @@ TitleOutlineColorButton::TitleOutlineColorButton(TitleMain *client, TitleWindow
 int TitleOutlineColorButton::handle_event()
 {
        window->outline_color_thread->start_window(client->config.outline_color,
-               client->config.outline_alpha);
+               client->config.outline_alpha, 1);
        return 1;
 }
 
@@ -1234,6 +1239,17 @@ int TitleColorThread::handle_new_color(int output, int alpha)
        return 1;
 }
 
+void TitleColorThread::handle_done_event(int result)
+{
+       if( result ) {
+               client->config.color = orig_color;
+               client->config.alpha = orig_alpha;
+               handle_new_color(orig_color, orig_alpha);
+               window->update_color();
+               window->send_configure_change();
+       }
+}
+
 TitleDrag::TitleDrag(TitleMain *client, TitleWindow *window, int x, int y)
  : DragCheckBox(client->server->mwindow, x, y, _("Drag"), &client->config.drag,
                client->config.title_x, client->config.title_y,
@@ -1528,9 +1544,10 @@ int TitleColorPopup::activate()
 }
 void TitleColorPopup::handle_done_event(int result)
 {
-       if( result ) return;
-       char txt[BCSTRLEN];  sprintf(txt, "<%s #%06x>", _(KW_COLOR), color_value);
-       window->insert_ibeam(txt);
+       if( !result ) {
+               char txt[BCSTRLEN];  sprintf(txt, "<%s #%06x>", _(KW_COLOR), color_value);
+               window->insert_ibeam(txt);
+       }
 }
 
 TitlePngPopup::TitlePngPopup(TitleMain *client, TitleWindow *window)