X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fgwindowgui.C;h=c5248b4839b18591c02913405e7ebd2cd12f4c13;hb=09415d6aba2e181c49863393a047d0947c969d21;hp=b1b8300c2ee9c72d42b67193ad8f7e6f737fec7d;hpb=c4bf1f625b640ef45136dcf66b639e2a55bd8334;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/gwindowgui.C b/cinelerra-5.1/cinelerra/gwindowgui.C index b1b8300c..c5248b48 100644 --- a/cinelerra-5.1/cinelerra/gwindowgui.C +++ b/cinelerra-5.1/cinelerra/gwindowgui.C @@ -60,7 +60,7 @@ void GWindowGUI::start_color_thread(GWindowColorButton *color_button) { unlock_window(); delete color_thread; - color_thread = new GWindowColorThread(color_button); + color_thread = new GWindowColorThread(this, color_button); int color = auto_colors[color_button->auto_toggle->info->ref]; color_thread->start(color); lock_window("GWindowGUI::start_color_thread"); @@ -68,26 +68,26 @@ void GWindowGUI::start_color_thread(GWindowColorButton *color_button) const char *GWindowGUI::other_text[NON_AUTOMATION_TOTAL] = { - "Assets", - "Titles", - "Transitions", - "Plugin Autos" + N_("Assets"), + N_("Titles"), + N_("Transitions"), + N_("Plugin Keyframes") }; const char *GWindowGUI::auto_text[AUTOMATION_TOTAL] = { - "Mute", - "Camera X", - "Camera Y", - "Camera Z", - "Projector X", - "Projector Y", - "Projector Z", - "Fade", - "Pan", - "Mode", - "Mask", - "Speed" + N_("Mute"), + N_("Camera X"), + N_("Camera Y"), + N_("Camera Z"), + N_("Projector X"), + N_("Projector Y"), + N_("Projector Z"), + N_("Fade"), + N_("Pan"), + N_("Mode"), + N_("Mask"), + N_("Speed") }; int GWindowGUI::auto_colors[AUTOMATION_TOTAL] = @@ -190,8 +190,10 @@ GWindowColorButton::GWindowColorButton(GWindowToggle *auto_toggle, int x, int y, { this->auto_toggle = auto_toggle; this->color = 0; - for( int i=0; i<3; ++i ) - vframes[i] = new VFrame(w, w, BC_RGBA8888, -1); + for( int i=0; i<3; ++i ) { + vframes[i] = new VFrame(w, w, BC_RGBA8888); + vframes[i]->clear_frame(); + } } GWindowColorButton::~GWindowColorButton() @@ -247,11 +249,12 @@ void GWindowColorButton::update_gui(int color) draw_face(); } -GWindowColorThread::GWindowColorThread(GWindowColorButton *color_button) - : ColorThread(0, color_button->auto_toggle->caption) +GWindowColorThread::GWindowColorThread(GWindowGUI *gui, GWindowColorButton *color_button) + : ColorPicker(0, color_button->auto_toggle->caption) { - this->color = 0; + this->gui = gui; this->color_button = color_button; + this->color = 0; color_update = new GWindowColorUpdate(this); } @@ -269,7 +272,6 @@ void GWindowColorThread::start(int color) void GWindowColorThread::handle_done_event(int result) { color_update->stop(); - GWindowGUI *gui = color_button->auto_toggle->gui; int ref = color_button->auto_toggle->info->ref; gui->lock_window("GWindowColorThread::handle_done_event"); if( !result ) { @@ -282,7 +284,7 @@ void GWindowColorThread::handle_done_event(int result) color_button->update_gui(color); } gui->unlock_window(); - MWindowGUI *mwindow_gui = color_button->auto_toggle->gui->mwindow->gui; + MWindowGUI *mwindow_gui = gui->mwindow->gui; mwindow_gui->lock_window("GWindowColorUpdate::run"); mwindow_gui->draw_overlays(1); mwindow_gui->unlock_window(); @@ -297,7 +299,9 @@ int GWindowColorThread::handle_new_color(int color, int alpha) void GWindowColorThread::update_gui() { + gui->lock_window("GWindowColorThread::update_gui"); color_button->update_gui(color); + gui->unlock_window(); } GWindowColorUpdate::GWindowColorUpdate(GWindowColorThread *color_thread) @@ -351,7 +355,7 @@ int GWindowColorButton::handle_event() void GWindowGUI::create_objects() { int x = 10, y = 10; - lock_window("GWindowGUI::create_objects 1"); + lock_window("GWindowGUI::create_objects"); for( int i=0; i<(int)(sizeof(toggle_order)/sizeof(toggle_order[0])); ++i ) { toggleinfo *tp = &toggle_order[i]; @@ -369,9 +373,9 @@ void GWindowGUI::create_objects() case AUTOMATION_PAN: vframe = mwindow->theme->pankeyframe_data; break; case AUTOMATION_MASK: vframe = mwindow->theme->maskkeyframe_data; break; } - const char *label = tp->isauto ? auto_text[tp->ref] : other_text[tp->ref] ; + const char *label = _(tp->isauto ? auto_text[tp->ref] : other_text[tp->ref]); int color = !tp->isauto ? -1 : auto_colors[tp->ref]; - GWindowToggle *toggle = new GWindowToggle(mwindow, this, x, y, label, color, tp); + GWindowToggle *toggle = new GWindowToggle(this, x, y, label, color, tp); add_tool(toggles[i] = toggle); if( vframe ) draw_vframe(vframe, get_w()-vframe->get_w()-10, y); @@ -415,6 +419,7 @@ int GWindowGUI::translation_event() int GWindowGUI::close_event() { + delete color_thread; color_thread = 0; hide_window(); mwindow->session->show_gwindow = 0; unlock_window(); @@ -444,11 +449,10 @@ int GWindowGUI::keypress_event() } -GWindowToggle::GWindowToggle(MWindow *mwindow, GWindowGUI *gui, int x, int y, +GWindowToggle::GWindowToggle(GWindowGUI *gui, int x, int y, const char *text, int color, toggleinfo *info) - : BC_CheckBox(x, y, *get_main_value(mwindow, info), text, MEDIUMFONT, color) + : BC_CheckBox(x, y, *get_main_value(gui->mwindow, info), text, MEDIUMFONT, color) { - this->mwindow = mwindow; this->gui = gui; this->info = info; this->color = color; @@ -463,12 +467,13 @@ GWindowToggle::~GWindowToggle() int GWindowToggle::handle_event() { int value = get_value(); - *get_main_value(mwindow, info) = value; + *get_main_value(gui->mwindow, info) = value; gui->update_mwindow(); // Update stuff in MWindow unlock_window(); + MWindow *mwindow = gui->mwindow; mwindow->gui->lock_window("GWindowToggle::handle_event"); if( info->isauto ) { int autogroup_type = -1; @@ -535,7 +540,7 @@ int* GWindowToggle::get_main_value(MWindow *mwindow, toggleinfo *info) void GWindowToggle::update() { - int *vp = get_main_value(mwindow, info); + int *vp = get_main_value(gui->mwindow, info); if( !vp ) return; set_value(*vp); }