rework histogram_bezier, init wm icon set_icon(gg), update de.po+msg/txt
[goodguy/history.git] / cinelerra-5.1 / cinelerra / zoombar.C
index 6fee32b14ef371ca5aaa3d93b515092e0594262f..408473d6ec0167c6ca7d1a722ffbc245e5bc1fd3 100644 (file)
@@ -2,21 +2,21 @@
 /*
  * CINELERRA
  * Copyright (C) 1997-2014 Adam Williams <broadcast at earthling dot net>
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
+ *
  */
 
 #include "apatchgui.inc"
@@ -45,7 +45,7 @@ ZoomBar::ZoomBar(MWindow *mwindow, MWindowGUI *gui)
  : BC_SubWindow(mwindow->theme->mzoom_x,
        mwindow->theme->mzoom_y,
        mwindow->theme->mzoom_w,
-       mwindow->theme->mzoom_h) 
+       mwindow->theme->mzoom_h)
 {
        this->gui = gui;
        this->mwindow = mwindow;
@@ -62,30 +62,21 @@ ZoomBar::~ZoomBar()
 void ZoomBar::create_objects()
 {
        int x = 3;
-       int y = get_h() / 2 - 
+       int y = get_h() / 2 -
                mwindow->theme->get_image_set("zoombar_menu", 0)[0]->get_h() / 2;
 
        draw_top_background(get_parent(), 0, 0, get_w(), get_h());
        sample_zoom = new SampleZoomPanel(mwindow, this, x, y);
-       sample_zoom->set_menu_images(mwindow->theme->get_image_set("zoombar_menu", 0));
-       sample_zoom->set_tumbler_images(mwindow->theme->get_image_set("zoombar_tumbler", 0));
        sample_zoom->create_objects();
-       sample_zoom->zoom_text->set_tooltip(_("Duration visible in the timeline"));
-       sample_zoom->zoom_tumbler->set_tooltip(_("Duration visible in the timeline"));
+       sample_zoom->set_tooltip(_("Duration visible in the timeline"));
        x += sample_zoom->get_w();
        amp_zoom = new AmpZoomPanel(mwindow, this, x, y);
-       amp_zoom->set_menu_images(mwindow->theme->get_image_set("zoombar_menu", 0));
-       amp_zoom->set_tumbler_images(mwindow->theme->get_image_set("zoombar_tumbler", 0));
        amp_zoom->create_objects();
-       amp_zoom->zoom_text->set_tooltip(_("Audio waveform scale"));
-       amp_zoom->zoom_tumbler->set_tooltip(_("Audio waveform scale"));
+       amp_zoom->set_tooltip(_("Audio waveform scale"));
        x += amp_zoom->get_w();
        track_zoom = new TrackZoomPanel(mwindow, this, x, y);
-       track_zoom->set_menu_images(mwindow->theme->get_image_set("zoombar_menu", 0));
-       track_zoom->set_tumbler_images(mwindow->theme->get_image_set("zoombar_tumbler", 0));
        track_zoom->create_objects();
-       track_zoom->zoom_text->set_tooltip(_("Height of tracks in the timeline"));
-       track_zoom->zoom_tumbler->set_tooltip(_("Height of tracks in the timeline"));
+       track_zoom->set_tooltip(_("Height of tracks in the timeline"));
        x += track_zoom->get_w() + 10;
 
        int wid = 120;
@@ -100,9 +91,9 @@ void ZoomBar::create_objects()
        add_subwindow(auto_zoom = new AutoZoom(mwindow, this, x, y, 0));
        x += auto_zoom->get_w();
        add_subwindow(auto_zoom_text = new ZoomTextBox(
-               mwindow, 
-               this, 
-               x, 
+               mwindow,
+               this,
+               x,
                y,
                DEFAULT_TEXT));
        x += auto_zoom_text->get_w() + 5;
@@ -136,23 +127,9 @@ void ZoomBar::update_formatting(BC_TextBox *dst)
 
 void ZoomBar::resize_event()
 {
-       reposition_window(mwindow->theme->mzoom_x,
-               mwindow->theme->mzoom_y,
-               mwindow->theme->mzoom_w,
-               mwindow->theme->mzoom_h);
-
+       reposition_window(mwindow->theme->mzoom_x, mwindow->theme->mzoom_y,
+               mwindow->theme->mzoom_w, mwindow->theme->mzoom_h);
        draw_top_background(get_parent(), 0, 0, get_w(), get_h());
-       int x = 3, y = 1;
-       if (sample_zoom) delete sample_zoom;
-       sample_zoom = new SampleZoomPanel(mwindow, this, x, y);
-       sample_zoom->set_menu_images(mwindow->theme->get_image_set("zoombar_menu", 0));
-       sample_zoom->set_tumbler_images(mwindow->theme->get_image_set("zoombar_tumbler", 0));
-       sample_zoom->create_objects();
-//     x += sample_zoom->get_w();
-//     amp_zoom->reposition_window(x, y);
-//     x += amp_zoom->get_w();
-//     track_zoom->reposition_window(x, y);
-       flash();
 }
 
 void ZoomBar::redraw_time_dependancies()
@@ -176,27 +153,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]);
+               sprintf(string, "%0.01f to %0.01f\n",
+                       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]);
+               sprintf(string, "%0.03f to %0.03f\n",
+                       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]);
+               sprintf(string, "%0.0f to %.0f\n",
+                       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()
@@ -212,7 +192,7 @@ int ZoomBar::update()
 int ZoomBar::update_clocks()
 {
        from_value->update_position(mwindow->edl->local_session->get_selectionstart(1));
-       length_value->update_position(mwindow->edl->local_session->get_selectionend(1) - 
+       length_value->update_position(mwindow->edl->local_session->get_selectionend(1) -
                mwindow->edl->local_session->get_selectionstart(1));
        to_value->update_position(mwindow->edl->local_session->get_selectionend(1));
        return 0;
@@ -222,10 +202,9 @@ int ZoomBar::update_playback(int64_t new_position)
 {
        if(new_position != old_position)
        {
-               Units::totext(string, 
-                               new_position, 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+               Units::totext(string, new_position,
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
                playback_value->update(string);
@@ -259,14 +238,14 @@ int ZoomBar::set_selection(int which_one)
        switch(which_one)
        {
                case SET_LENGTH:
-                       start_position = Units::text_to_seconds(from_value->get_text(), 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+                       start_position = Units::text_to_seconds(from_value->get_text(),
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
-                       length = Units::text_to_seconds(length_value->get_text(), 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+                       length = Units::text_to_seconds(length_value->get_text(),
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
                        end_position = start_position + length;
@@ -280,14 +259,14 @@ int ZoomBar::set_selection(int which_one)
                        break;
 
                case SET_FROM:
-                       start_position = Units::text_to_seconds(from_value->get_text(), 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+                       start_position = Units::text_to_seconds(from_value->get_text(),
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
-                       end_position = Units::text_to_seconds(to_value->get_text(), 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+                       end_position = Units::text_to_seconds(to_value->get_text(),
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
 
@@ -300,14 +279,14 @@ int ZoomBar::set_selection(int which_one)
                        break;
 
                case SET_TO:
-                       start_position = Units::text_to_seconds(from_value->get_text(), 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+                       start_position = Units::text_to_seconds(from_value->get_text(),
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
-                       end_position = Units::text_to_seconds(to_value->get_text(), 
-                               mwindow->edl->session->sample_rate, 
-                               mwindow->edl->session->time_format, 
+                       end_position = Units::text_to_seconds(to_value->get_text(),
+                               mwindow->edl->session->sample_rate,
+                               mwindow->edl->session->time_format,
                                mwindow->edl->session->frame_rate,
                                mwindow->edl->session->frames_per_foot);
 
@@ -347,19 +326,9 @@ int ZoomBar::set_selection(int which_one)
 
 
 
-SampleZoomPanel::SampleZoomPanel(MWindow *mwindow, 
-       ZoomBar *zoombar, 
-       int x, 
-       int y)
- : ZoomPanel(mwindow, 
-       zoombar, 
-       mwindow->edl->local_session->zoom_sample, 
-       x, 
-       y, 
-       110, 
-       MIN_ZOOM_TIME, 
-       MAX_ZOOM_TIME, 
-       ZOOM_TIME)
+SampleZoomPanel::SampleZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y)
+ : ZoomPanel(mwindow, zoombar, mwindow->edl->local_session->zoom_sample,
+               x, y, 110, MIN_ZOOM_TIME, MAX_ZOOM_TIME, ZOOM_TIME)
 {
        this->mwindow = mwindow;
        this->zoombar = zoombar;
@@ -372,15 +341,8 @@ int SampleZoomPanel::handle_event()
 
 
 AmpZoomPanel::AmpZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y)
- : ZoomPanel(mwindow, 
-       zoombar, 
-       mwindow->edl->local_session->zoom_y, 
-       x, 
-       y, 
-       80,
-       MIN_AMP_ZOOM, 
-       MAX_AMP_ZOOM, 
-       ZOOM_LONG)
+ : ZoomPanel(mwindow, zoombar, mwindow->edl->local_session->zoom_y,
+               x, y, 80, MIN_AMP_ZOOM, MAX_AMP_ZOOM, ZOOM_LONG)
 {
        this->mwindow = mwindow;
        this->zoombar = zoombar;
@@ -392,15 +354,8 @@ int AmpZoomPanel::handle_event()
 }
 
 TrackZoomPanel::TrackZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y)
- : ZoomPanel(mwindow, 
-       zoombar, 
-       mwindow->edl->local_session->zoom_track, 
-       x, 
-       y, 
-       70,
-       MIN_TRACK_ZOOM, 
-       MAX_TRACK_ZOOM, 
-       ZOOM_LONG)
+ : ZoomPanel(mwindow, zoombar, mwindow->edl->local_session->zoom_track,
+               x, y, 70, MIN_TRACK_ZOOM, MAX_TRACK_ZOOM, ZOOM_LONG)
 {
        this->mwindow = mwindow;
        this->zoombar = zoombar;
@@ -416,9 +371,7 @@ int TrackZoomPanel::handle_event()
 
 
 AutoZoom::AutoZoom(MWindow *mwindow, ZoomBar *zoombar, int x, int y, int changemax)
- : BC_Tumbler(x,
-       y,
-       mwindow->theme->get_image_set("zoombar_tumbler"))
+ : BC_Tumbler(x, y, mwindow->theme->get_image_set("zoombar_tumbler"))
 {
        this->mwindow = mwindow;
        this->zoombar = zoombar;
@@ -545,7 +498,7 @@ int ZoomTextBox::handle_event()
        {
                AUTOMATIONVIEWCLAMPS(min, mwindow->edl->local_session->zoombar_showautotype);
                AUTOMATIONVIEWCLAMPS(max, mwindow->edl->local_session->zoombar_showautotype);
-               if (max > min) 
+               if (max > min)
                {
                        mwindow->edl->local_session->automation_mins[mwindow->edl->local_session->zoombar_showautotype] = min;
                        mwindow->edl->local_session->automation_maxs[mwindow->edl->local_session->zoombar_showautotype] = max;
@@ -583,12 +536,10 @@ int FromTextBox::handle_event()
 
 int FromTextBox::update_position(double new_position)
 {
-       new_position += mwindow->edl->session->get_frame_offset() / 
-                                                mwindow->edl->session->frame_rate;;
-       Units::totext(string, 
-               new_position, 
-               mwindow->edl->session->time_format, 
-               mwindow->edl->session->sample_rate, 
+       Units::totext(string,
+               new_position,
+               mwindow->edl->session->time_format,
+               mwindow->edl->session->sample_rate,
                mwindow->edl->session->frame_rate,
                mwindow->edl->session->frames_per_foot);
 //printf("FromTextBox::update_position %f %s\n", new_position, string);
@@ -621,10 +572,10 @@ int LengthTextBox::handle_event()
 
 int LengthTextBox::update_position(double new_position)
 {
-       Units::totext(string, 
-               new_position, 
-               mwindow->edl->session->time_format, 
-               mwindow->edl->session->sample_rate, 
+       Units::totext(string,
+               new_position,
+               mwindow->edl->session->time_format,
+               mwindow->edl->session->sample_rate,
                mwindow->edl->session->frame_rate,
                mwindow->edl->session->frames_per_foot);
        update(string);
@@ -655,12 +606,9 @@ int ToTextBox::handle_event()
 
 int ToTextBox::update_position(double new_position)
 {
-       new_position += mwindow->edl->session->get_frame_offset() /
-                                                mwindow->edl->session->frame_rate;
-       Units::totext(string, 
-               new_position, 
-               mwindow->edl->session->time_format, 
-               mwindow->edl->session->sample_rate, 
+       Units::totext(string, new_position,
+               mwindow->edl->session->time_format,
+               mwindow->edl->session->sample_rate,
                mwindow->edl->session->frame_rate,
                mwindow->edl->session->frames_per_foot);
        update(string);