translation fixes, pref wdw min width, xfer mode ops
[goodguy/history.git] / cinelerra-5.1 / cinelerra / zoombar.C
index 7730d918bc675df3403a1bfcc917bbdad55c95cd..47dc15d538ce5e4a29b209da9866b33b773ab5a7 100644 (file)
@@ -88,7 +88,12 @@ void ZoomBar::create_objects()
        track_zoom->zoom_tumbler->set_tooltip(_("Height of tracks in the timeline"));
        x += track_zoom->get_w() + 10;
 
-       add_subwindow(auto_type = new AutoTypeMenu(mwindow, this, x, y));
+       int wid = 120;
+       for( int i=AUTOGROUPTYPE_AUDIO_FADE; i<=AUTOGROUPTYPE_Y; ++i ) {
+               int ww = BC_GenericButton::calculate_w(this, AutoTypeMenu::to_text(i));
+               if( ww > wid ) wid = ww;
+       }
+       add_subwindow(auto_type = new AutoTypeMenu(mwindow, this, x, y, wid));
        auto_type->create_objects();
        x += auto_type->get_w() + 10;
 #define DEFAULT_TEXT "000.00 to 000.00"
@@ -171,26 +176,30 @@ int ZoomBar::draw()
 void ZoomBar::update_autozoom()
 {
        char string[BCTEXTLEN];
-       switch (mwindow->edl->local_session->zoombar_showautotype) {
+       int autogroup_type = mwindow->edl->local_session->zoombar_showautotype;
+       switch( autogroup_type ) {
        case AUTOGROUPTYPE_AUDIO_FADE:
        case AUTOGROUPTYPE_VIDEO_FADE:
                sprintf(string, "%0.01f to %0.01f\n", 
-                       mwindow->edl->local_session->automation_mins[mwindow->edl->local_session->zoombar_showautotype],
-                       mwindow->edl->local_session->automation_maxs[mwindow->edl->local_session->zoombar_showautotype]);
+                       mwindow->edl->local_session->automation_mins[autogroup_type],
+                       mwindow->edl->local_session->automation_maxs[autogroup_type]);
                break;
        case AUTOGROUPTYPE_ZOOM:
+       case AUTOGROUPTYPE_SPEED:
                sprintf(string, "%0.03f to %0.03f\n", 
-                       mwindow->edl->local_session->automation_mins[mwindow->edl->local_session->zoombar_showautotype],
-                       mwindow->edl->local_session->automation_maxs[mwindow->edl->local_session->zoombar_showautotype]);
+                       mwindow->edl->local_session->automation_mins[autogroup_type],
+                       mwindow->edl->local_session->automation_maxs[autogroup_type]);
                break;
        case AUTOGROUPTYPE_X:
        case AUTOGROUPTYPE_Y:
                sprintf(string, "%0.0f to %.0f\n", 
-                       mwindow->edl->local_session->automation_mins[mwindow->edl->local_session->zoombar_showautotype],
-                       mwindow->edl->local_session->automation_maxs[mwindow->edl->local_session->zoombar_showautotype]);
+                       mwindow->edl->local_session->automation_mins[autogroup_type],
+                       mwindow->edl->local_session->automation_maxs[autogroup_type]);
                break;
        }
        auto_zoom_text->update(string);
+       const char *group_name = AutoTypeMenu::to_text(autogroup_type);
+       auto_type->set_text(group_name);
 }
 
 int ZoomBar::update()
@@ -447,8 +456,8 @@ int AutoZoom::handle_down_event()
 
 
 
-AutoTypeMenu::AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar, int x, int y)
-       : BC_PopupMenu(x, y, 120,to_text(mwindow->edl->local_session->zoombar_showautotype), 1)
+AutoTypeMenu::AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar, int x, int y, int wid)
+       : BC_PopupMenu(x, y, wid, to_text(mwindow->edl->local_session->zoombar_showautotype), 1)
 {
        this->mwindow = mwindow;
        this->zoombar = zoombar;
@@ -460,6 +469,7 @@ void AutoTypeMenu::create_objects()
        add_item(new BC_MenuItem(to_text(AUTOGROUPTYPE_AUDIO_FADE)));
        add_item(new BC_MenuItem(to_text(AUTOGROUPTYPE_VIDEO_FADE)));
        add_item(new BC_MenuItem(to_text(AUTOGROUPTYPE_ZOOM)));
+       add_item(new BC_MenuItem(to_text(AUTOGROUPTYPE_SPEED)));
        add_item(new BC_MenuItem(to_text(AUTOGROUPTYPE_X)));
        add_item(new BC_MenuItem(to_text(AUTOGROUPTYPE_Y)));
 }
@@ -470,6 +480,7 @@ const char* AutoTypeMenu::to_text(int mode)
        case AUTOGROUPTYPE_AUDIO_FADE: return _("Audio Fade:");
        case AUTOGROUPTYPE_VIDEO_FADE: return _("Video Fade:");
        case AUTOGROUPTYPE_ZOOM: return _("Zoom:");
+       case AUTOGROUPTYPE_SPEED: return _("Speed:");
        case AUTOGROUPTYPE_X: return "X:";
        case AUTOGROUPTYPE_Y: return "Y:";
        }
@@ -478,16 +489,12 @@ const char* AutoTypeMenu::to_text(int mode)
 
 int AutoTypeMenu::from_text(char *text)
 {
-       if(!strcmp(text, to_text(AUTOGROUPTYPE_AUDIO_FADE)))
-               return AUTOGROUPTYPE_AUDIO_FADE;
-       if(!strcmp(text, to_text(AUTOGROUPTYPE_VIDEO_FADE)))
-               return AUTOGROUPTYPE_VIDEO_FADE;
-       if(!strcmp(text, to_text(AUTOGROUPTYPE_ZOOM)))
-               return AUTOGROUPTYPE_ZOOM;
-       if(!strcmp(text, to_text(AUTOGROUPTYPE_X)))
-               return AUTOGROUPTYPE_X;
-       if(!strcmp(text, to_text(AUTOGROUPTYPE_Y)))
-               return AUTOGROUPTYPE_Y;
+       if(!strcmp(text, to_text(AUTOGROUPTYPE_AUDIO_FADE))) return AUTOGROUPTYPE_AUDIO_FADE;
+       if(!strcmp(text, to_text(AUTOGROUPTYPE_VIDEO_FADE))) return AUTOGROUPTYPE_VIDEO_FADE;
+       if(!strcmp(text, to_text(AUTOGROUPTYPE_ZOOM))) return AUTOGROUPTYPE_ZOOM;
+       if(!strcmp(text, to_text(AUTOGROUPTYPE_SPEED))) return AUTOGROUPTYPE_SPEED;
+       if(!strcmp(text, to_text(AUTOGROUPTYPE_X))) return AUTOGROUPTYPE_X;
+       if(!strcmp(text, to_text(AUTOGROUPTYPE_Y))) return AUTOGROUPTYPE_Y;
        return AUTOGROUPTYPE_INT255;
 }