X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowgui.C;h=d1aea0fc026c6c0440f12b839ce345bc74e5e654;hp=74f3e1f3b9a0200bd57afa70de2453e3d9c296c6;hb=d94bbdeebde4f16a77c388f9f28114b945db41d9;hpb=2ba7e9962ea989863e152373e96a09b00a0b4eb8 diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 74f3e1f3..d1aea0fc 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -320,12 +320,8 @@ void MWindowGUI::create_objects() if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); add_subwindow(mainclock = new MainClock(mwindow, - mwindow->theme->mclock_x, - mwindow->theme->mclock_y, + mwindow->theme->mclock_x, mwindow->theme->mclock_y, mwindow->theme->mclock_w)); - mainclock->set_position_offset( (double) - (mwindow->edl->session->get_frame_offset() / - mwindow->edl->session->frame_rate)); if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); mainclock->update(0); @@ -405,10 +401,10 @@ int MWindowGUI::resize_event(int w, int h) int x = w - MainShBtns::calculate_w(0); mainmenu->resize_event(x, mainmenu->get_h()); mainshbtns->reposition_window(x, -1); + ffmpeg_toggle->reposition_window(menu_w(), menu_h()+2); mwindow->theme->get_mwindow_sizes(this, w, h); mwindow->theme->draw_mwindow_bg(this); mbuttons->resize_event(); - ffmpeg_toggle->reposition_window(menu_w(), menu_h()+2); statusbar->resize_event(); zoombar->resize_event(); @@ -535,6 +531,7 @@ int MWindowGUI::resize_event(int w, int h) mwindow->theme->mzoom_y + 1 - mwindow->theme->get_image_set("pane")[0]->get_h()); resource_thread->start_draw(); + flash(1); return 0; } @@ -917,16 +914,25 @@ int MWindowGUI::visible(int64_t x1, int64_t x2, int64_t view_x1, int64_t view_x2 } -int MWindowGUI::show_message(char *message, int color) +void MWindowGUI::show_message(const char *message, int color) { -// printf("MWindowGUI::show_message %d: %s 0x%08x 0x%08x\n", -// __LINE__, message, color, mwindow->theme->message_normal); - if(color < 0) color = mwindow->theme->message_normal; - statusbar->status_text->set_color(color); - statusbar->status_text->update(message); - return 0; + statusbar->show_message(message, color); } +void MWindowGUI::update_default_message() +{ + statusbar->update_default_message(); +} + +void MWindowGUI::reset_default_message() +{ + statusbar->reset_default_message(); +} + +void MWindowGUI::default_message() +{ + statusbar->default_message(); +} // Drag motion called from other window int MWindowGUI::drag_motion() @@ -1162,6 +1168,14 @@ int MWindowGUI::keypress_event() result = 1; break; + case 'k': case 'K': + if( alt_down() ) break; + stop_transport("MWindowGUI::keypress_event 1"); + mwindow->nearest_plugin_keyframe(shift_down(), + !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE); + result = 1; + break; + case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': if( !alt_down() || shift_down() ) break; @@ -1172,9 +1186,7 @@ int MWindowGUI::keypress_event() case LEFT: if( !ctrl_down() ) { if( alt_down() ) { - unlock_window(); - mbuttons->transport->handle_transport(STOP, 1, 0, 0); - lock_window("MWindowGUI::keypress_event 1"); + stop_transport("MWindowGUI::keypress_event 1"); mwindow->prev_edit_handle(shift_down()); } else @@ -1183,12 +1195,17 @@ int MWindowGUI::keypress_event() } break; + case ',': + if( !ctrl_down() && !alt_down() ) { + mwindow->move_left(); + result = 1; + } + break; + case RIGHT: if( !ctrl_down() ) { if( alt_down() ) { - unlock_window(); - mbuttons->transport->handle_transport(STOP, 1, 0, 0); - lock_window("MWindowGUI::keypress_event 2"); + stop_transport("MWindowGUI::keypress_event 2"); mwindow->next_edit_handle(shift_down()); } else @@ -1197,6 +1214,13 @@ int MWindowGUI::keypress_event() } break; + case '.': + if( !ctrl_down() && !alt_down() ) { + mwindow->move_right(); + result = 1; + } + break; + case UP: if( ctrl_down() && !alt_down() ) mwindow->expand_y(); @@ -1292,7 +1316,7 @@ int MWindowGUI::key_listener(int key) record->record_gui->interrupt_thread->start(0); break; case KPHAND: - mwindow->quit(0); + mwindow->quit(); break; #ifdef HAVE_DVB case KPBOOK: @@ -2230,6 +2254,32 @@ void MWindowGUI::draw_trackmovement() } +void MWindowGUI::update_mixers(Track *track, int v) +{ + for( int i=0; ipatchbay; + if( !patchbay ) continue; + for( int j=0; jpatches.total; ++j ) { + PatchGUI *patchgui = patchbay->patches.values[j]; + if( !patchgui->mix ) continue; + if( !track || patchgui->track == track ) { + patchgui->mix->update(v>=0 ? v : + mwindow->mixer_track_active(patchgui->track)); + } + } + } +} + +void MWindowGUI::stop_transport(const char *lock_msg) +{ + if( !mbuttons->transport->is_stopped() ) { + if( lock_msg ) unlock_window(); + mbuttons->transport->handle_transport(STOP, 1, 0, 0); + if( lock_msg ) lock_window(lock_msg); + } +} + PaneButton::PaneButton(MWindow *mwindow, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("pane")) { @@ -2271,12 +2321,12 @@ int PaneButton::button_release_event() FFMpegToggle::FFMpegToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y) - : BC_Toggle(x, y, mwindow->theme->ffmpeg_toggle, mwindow->preferences->ffmpeg_early_probe) + : BC_Toggle(x, y, mwindow->theme->ffmpeg_toggle, + mwindow->preferences->get_file_probe_armed("FFMPEG_Early") > 0 ? 1 : 0) { this->mwindow = mwindow; this->mbuttons = mbuttons; - set_tooltip( mwindow->preferences->ffmpeg_early_probe ? - _("Try FFMpeg first") : _("Try FFMpeg last")); + set_tooltip(get_value() ? FFMPEG_EARLY_TIP : FFMPEG_LATE_TIP); } FFMpegToggle::~FFMpegToggle() @@ -2285,9 +2335,11 @@ FFMpegToggle::~FFMpegToggle() int FFMpegToggle::handle_event() { - mwindow->preferences->ffmpeg_early_probe = get_value(); - set_tooltip( mwindow->preferences->ffmpeg_early_probe ? - _("Try FFMpeg first") : _("Try FFMpeg last")); + int ffmpeg_early_probe = get_value(); + set_tooltip(ffmpeg_early_probe ? FFMPEG_EARLY_TIP : FFMPEG_LATE_TIP); + mwindow->preferences->set_file_probe_armed("FFMPEG_Early", ffmpeg_early_probe); + mwindow->preferences->set_file_probe_armed("FFMPEG_Late", !ffmpeg_early_probe); + mwindow->show_warning(&mwindow->preferences->warn_indexes, _("Changing the base codecs may require rebuilding indexes.")); return 1;