olaf neophyte and de.po updates, valgrind tweaks, delete green lady, inkscape dpi=96
[goodguy/history.git] / cinelerra-5.1 / cinelerra / theme.C
index 1fe52ec9e1567087572d98b2e3af5623aa7aea9f..96f8b80f9f95b2aaa89c472b2b6fbb2fb416f661 100644 (file)
@@ -22,7 +22,7 @@
 #include "awindowgui.h"
 #include "bcsignals.h"
 #include "clip.h"
-#include "colors.h"
+#include "bccolors.h"
 #include "cwindowgui.h"
 #include "edl.h"
 #include "edlsession.h"
@@ -40,7 +40,7 @@
 #include "overlayframe.h"
 #include "patchbay.h"
 #include "playtransport.h"
-#include "presetsgui.h"
+//#include "presetsgui.h"
 #include "recordgui.h"
 #include "recordmonitor.h"
 #include "resourcepixmap.h"
@@ -57,7 +57,7 @@
 #include <string.h>
 
 #define NEW_VFRAME \
-new VFrame(0, -1, default_data.get_w(), default_data.get_h(), BC_RGBA8888, -1)
+new VFrame(default_data.get_w(), default_data.get_h(), BC_RGBA8888)
 
 Theme::Theme()
  : BC_Theme()
@@ -65,9 +65,7 @@ Theme::Theme()
        window_border = 10;
        widget_border = 5;
        this->mwindow = 0;
-       theme_title = DEFAULT_THEME;
-       data_buffer = 0;
-       contents_buffer = 0;
+       theme_title = _(DEFAULT_THEME);
        last_image = 0;
        mtransport_margin = 0;
        toggle_margin = 0;
@@ -80,6 +78,7 @@ Theme::Theme()
        BC_WindowBase::get_resources()->recursive_resizing = 0;
        audio_color = BLACK;
        fade_h = 22;
+       inout_highlight_color = GREEN;
        meter_h = 17;
        mode_h = 30;
        pan_h = 32;
@@ -87,6 +86,7 @@ Theme::Theme()
        play_h = 22;
        title_h = 23;
        clock_bg_color = BLACK;
+       clock_fg_color = GREEN;
        assetedit_color = YELLOW;
        const char *cp = getenv("BC_USE_COMMERCIALS");
        use_commercials = !cp ? 0 : atoi(cp);
@@ -96,8 +96,8 @@ Theme::Theme()
        loadmode_w = 350;
        czoom_w = 80;
 
-#include "data/about_png.h"
-       about_bg = new VFramePng(about_png);
+#include "data/about_bg_png.h"
+       about_bg = new VFramePng(about_bg_png);
 
        pane_color = BLACK;
        drag_pane_color = WHITE;
@@ -129,6 +129,8 @@ Theme::Theme()
        edithandleout_data = 0;
        extract_data = 0;
        ffmpeg_toggle = 0;
+       proxy_s_toggle = 0;
+       proxy_p_toggle = 0;
        infoasset_data = 0;
        in_point = 0;
        insert_data = 0;
@@ -187,11 +189,6 @@ Theme::~Theme()
 
 void Theme::flush_images()
 {
-       if(data_buffer) delete [] data_buffer;
-       if(contents_buffer) delete [] contents_buffer;
-       data_buffer = 0;
-       contents_buffer = 0;
-       contents.remove_all();
 }
 
 void Theme::initialize()
@@ -212,7 +209,6 @@ void Theme::initialize()
        new_image("mode_replace", "mode_replace.png");
        new_image("mode_max", "mode_max.png");
        new_image("mode_min", "mode_min.png");
-       new_image("mode_average", "mode_average.png");
        new_image("mode_darken", "mode_darken.png");
        new_image("mode_lighten", "mode_lighten.png");
        new_image("mode_dst", "mode_dst.png");
@@ -225,8 +221,16 @@ void Theme::initialize()
        new_image("mode_srcin", "mode_srcin.png");
        new_image("mode_srcout", "mode_srcout.png");
        new_image("mode_srcover", "mode_srcover.png");
+       new_image("mode_and", "mode_and.png");
        new_image("mode_or", "mode_or.png");
        new_image("mode_xor", "mode_xor.png");
+       new_image("mode_overlay", "mode_overlay.png");
+       new_image("mode_screen", "mode_screen.png");
+       new_image("mode_burn", "mode_burn.png");
+       new_image("mode_dodge", "mode_dodge.png");
+       new_image("mode_hardlight", "mode_hardlight.png");
+       new_image("mode_softlight", "mode_softlight.png");
+       new_image("mode_difference", "mode_difference.png");
 
        new_image_set("mode_popup", 3, "mode_up.png", "mode_hi.png", "mode_dn.png");
 
@@ -237,6 +241,8 @@ void Theme::initialize()
        new_image("awindow_icon", "heroine_icon.png");
        new_image("record_icon", "heroine_icon.png");
        new_image("clip_icon", "clip_icon.png");
+       new_image_set("mixpatch_data", 5, "mixpatch_up.png", "mixpatch_hi.png",
+               "mixpatch_checked.png", "mixpatch_dn.png", "mixpatch_checkedhi.png");
 
 
        new_image("aeffect_icon", "aeffect_icon.png");
@@ -262,45 +268,44 @@ void Theme::build_menus()
        aspect_ratios.append(new BC_ListBoxItem("2.35:1"));
        aspect_ratios.append(new BC_ListBoxItem("2.66:1"));
 
-       frame_sizes.append(new BC_ListBoxItem("128x96"));
-       frame_sizes.append(new BC_ListBoxItem("160x120"));
-       frame_sizes.append(new BC_ListBoxItem("176x144"));
-       frame_sizes.append(new BC_ListBoxItem("240x180"));
-       frame_sizes.append(new BC_ListBoxItem("320x200"));
-       frame_sizes.append(new BC_ListBoxItem("320x240"));
-       frame_sizes.append(new BC_ListBoxItem("352x288"));
-       frame_sizes.append(new BC_ListBoxItem("360x240"));
-       frame_sizes.append(new BC_ListBoxItem("400x300"));
-       frame_sizes.append(new BC_ListBoxItem("424x318"));
-       frame_sizes.append(new BC_ListBoxItem("512x384"));
-       frame_sizes.append(new BC_ListBoxItem("640x350"));
-       frame_sizes.append(new BC_ListBoxItem("640x480"));
-       frame_sizes.append(new BC_ListBoxItem("704x576"));
-       frame_sizes.append(new BC_ListBoxItem("720x480"));
-       frame_sizes.append(new BC_ListBoxItem("720x576"));
-       frame_sizes.append(new BC_ListBoxItem("800x600"));
-       frame_sizes.append(new BC_ListBoxItem("852x480"));
-       frame_sizes.append(new BC_ListBoxItem("852x480"));
-       frame_sizes.append(new BC_ListBoxItem("960x540"));
-       frame_sizes.append(new BC_ListBoxItem("960x1080"));
-       frame_sizes.append(new BC_ListBoxItem("1024x768"));
-       frame_sizes.append(new BC_ListBoxItem("1280x720"));
-       frame_sizes.append(new BC_ListBoxItem("1280x1024"));
-       frame_sizes.append(new BC_ListBoxItem("1366x768"));
-       frame_sizes.append(new BC_ListBoxItem("1408x1152"));
-       frame_sizes.append(new BC_ListBoxItem("1600x1024"));
-       frame_sizes.append(new BC_ListBoxItem("1600x1200"));
-       frame_sizes.append(new BC_ListBoxItem("1920x1080"));
-       frame_sizes.append(new BC_ListBoxItem("1920x1088"));
-       frame_sizes.append(new BC_ListBoxItem("1920x1200"));
-       frame_sizes.append(new BC_ListBoxItem("2048x1536"));
-       frame_sizes.append(new BC_ListBoxItem("2560x1600"));
-       frame_sizes.append(new BC_ListBoxItem("2560x2048"));
-       frame_sizes.append(new BC_ListBoxItem("3200x2048"));
-       frame_sizes.append(new BC_ListBoxItem("3840x2400"));
-       frame_sizes.append(new BC_ListBoxItem("5120x4096"));
-       frame_sizes.append(new BC_ListBoxItem("6400x4096"));
-       frame_sizes.append(new BC_ListBoxItem("7680x4800"));
+       frame_sizes.append(new BC_ListBoxItem("128x96     "));
+       frame_sizes.append(new BC_ListBoxItem("160x120    "));
+       frame_sizes.append(new BC_ListBoxItem("320x240    "));
+       frame_sizes.append(new BC_ListBoxItem("360x240    "));
+       frame_sizes.append(new BC_ListBoxItem("400x300    "));
+       frame_sizes.append(new BC_ListBoxItem("640x360    nHD"));
+       frame_sizes.append(new BC_ListBoxItem("640x400    "));
+       frame_sizes.append(new BC_ListBoxItem("640x480    VGA"));
+       frame_sizes.append(new BC_ListBoxItem("720x480    NTSC"));
+       frame_sizes.append(new BC_ListBoxItem("720x576    PAL"));
+       frame_sizes.append(new BC_ListBoxItem("768x432    "));
+       frame_sizes.append(new BC_ListBoxItem("800x450    "));
+       frame_sizes.append(new BC_ListBoxItem("800x600    SVGA"));
+       frame_sizes.append(new BC_ListBoxItem("896x504    "));
+       frame_sizes.append(new BC_ListBoxItem("960x540    qHD"));
+       frame_sizes.append(new BC_ListBoxItem("1024x576   "));
+       frame_sizes.append(new BC_ListBoxItem("1024x768   XGA"));
+       frame_sizes.append(new BC_ListBoxItem("1152x648   "));
+       frame_sizes.append(new BC_ListBoxItem("1280x720   HD"));
+       frame_sizes.append(new BC_ListBoxItem("1280x1024  SXGA"));
+       frame_sizes.append(new BC_ListBoxItem("1366x768   WXGA"));
+       frame_sizes.append(new BC_ListBoxItem("1600x900   HD+"));
+       frame_sizes.append(new BC_ListBoxItem("1600x1200  UXGA"));
+       frame_sizes.append(new BC_ListBoxItem("1920x1080  Full HD"));
+       frame_sizes.append(new BC_ListBoxItem("2048x1152  "));
+       frame_sizes.append(new BC_ListBoxItem("2304x1296  "));
+       frame_sizes.append(new BC_ListBoxItem("2560x1440  QHD"));
+       frame_sizes.append(new BC_ListBoxItem("2880x1620  "));
+       frame_sizes.append(new BC_ListBoxItem("3200x1800  QHD+"));
+       frame_sizes.append(new BC_ListBoxItem("3520x1980  "));
+       frame_sizes.append(new BC_ListBoxItem("3840x2160  4K UHD"));
+       frame_sizes.append(new BC_ListBoxItem("4096x2304  Full 4K UHD"));
+       frame_sizes.append(new BC_ListBoxItem("4480x2520  "));
+       frame_sizes.append(new BC_ListBoxItem("5120x2880  5K UHD"));
+       frame_sizes.append(new BC_ListBoxItem("5760x3240  "));
+       frame_sizes.append(new BC_ListBoxItem("6400x3600  "));
+       frame_sizes.append(new BC_ListBoxItem("7040x3960  "));
+       frame_sizes.append(new BC_ListBoxItem("7680x4320  8K UHD"));
 
        sample_rates.append(new BC_ListBoxItem("8000"));
        sample_rates.append(new BC_ListBoxItem("16000"));
@@ -311,6 +316,7 @@ void Theme::build_menus()
        sample_rates.append(new BC_ListBoxItem("96000"));
        sample_rates.append(new BC_ListBoxItem("192000"));
 
+       frame_rates.append(new BC_ListBoxItem("0.25"));
        frame_rates.append(new BC_ListBoxItem("1"));
        frame_rates.append(new BC_ListBoxItem("5"));
        frame_rates.append(new BC_ListBoxItem("10"));
@@ -324,6 +330,9 @@ void Theme::build_menus()
        frame_rates.append(new BC_ListBoxItem("50"));
        frame_rates.append(new BC_ListBoxItem("59.94"));
        frame_rates.append(new BC_ListBoxItem("60"));
+       frame_rates.append(new BC_ListBoxItem("100"));
+       frame_rates.append(new BC_ListBoxItem("120"));
+       frame_rates.append(new BC_ListBoxItem("1000"));
 
        char string[BCTEXTLEN];
        for(int i = 1; i < 17; i++)
@@ -590,11 +599,11 @@ void Theme::get_mwindow_sizes(MWindowGUI *gui, int w, int h)
 {
        mbuttons_x = 0;
        mbuttons_y = gui->menu_h() + 1;
-       mbuttons_w = gui->menu_w();
+       mbuttons_w = w - (ffmpeg_toggle[0]->get_w()+2 + proxy_p_toggle[0]->get_w()+2);
        mbuttons_h = get_image("mbutton_bg")->get_h();
-       mclock_x = 10;
-       mclock_y = mbuttons_y - 1 + mbuttons_h + widget_border;
-       mclock_w = get_image("clock_bg")->get_w() - 40;
+       mclock_x = window_border - 5;
+       mclock_y = mbuttons_y - 1 + mbuttons_h;
+       mclock_w = get_image("clock_bg")->get_w() - 20;
        mclock_h = get_image("clock_bg")->get_h();
        mtimebar_x = get_image("patchbay_bg")->get_w();
        mtimebar_y = mbuttons_y - 1 + mbuttons_h;
@@ -969,8 +978,8 @@ void Theme::get_vwindow_sizes(VWindowGUI *gui)
                        widget_border;
 
                vdivision_x = 280;
-               vtime_x = vdivision_x;
-               vtime_y = vedit_y + 20;
+               vtime_x = vedit_x + 20; //vdivision_x;
+               vtime_y = vedit_y + 30; //+ 20;
        }
        else
        {
@@ -1175,40 +1184,106 @@ void Theme::get_plugindialog_sizes()
 
 void Theme::get_keyframedialog_sizes(KeyFrameWindow *gui)
 {
-       int x = widget_border;
-       int y = window_border +
-               BC_Title::calculate_h(gui, "P", LARGEFONT) +
+       int x = window_border;
+       int y = window_border + 
+               BC_Title::calculate_h(gui, "P", LARGEFONT) + 
+               widget_border;
+
+       presets_list_x = x;
+       presets_list_y = y;
+#ifdef EDIT_KEYFRAME
+       presets_list_w = mwindow->session->keyframedialog_w / 2 - 
+               widget_border - 
+               window_border;
+#else
+       presets_list_w = mwindow->session->keyframedialog_w - 
+               presets_list_x -
+               window_border;
+#endif
+       presets_list_h = mwindow->session->keyframedialog_h - 
+               BC_OKButton::calculate_h() - 
+               presets_list_y -
+               widget_border -
+               widget_border -
+               BC_Title::calculate_h(gui, "P") - 
+               widget_border -
+               BC_TextBox::calculate_h(gui, 
+                       MEDIUMFONT, 
+                       1, 
+                       1) -
+               widget_border -
+               (BC_GenericButton::calculate_h() + widget_border) * 3 - 
+               window_border;
+       y += presets_list_h + widget_border + widget_border + BC_Title::calculate_h(gui, "P");
+       presets_text_x = x;
+       presets_text_y = y;
+       presets_text_w = presets_list_w;
+       y += BC_TextBox::calculate_h(gui, 
+               MEDIUMFONT, 
+               1, 
+               1) + widget_border;
+
+       presets_delete_x = presets_text_x;
+       presets_delete_y = y;
+       y += BC_GenericButton::calculate_h() + widget_border;
+
+       presets_save_x = presets_text_x;
+       presets_save_y = y;
+       y += BC_GenericButton::calculate_h() + widget_border;
+
+       presets_apply_x = presets_text_x;
+       presets_apply_y = y;
+       y += BC_GenericButton::calculate_h();
+
+#ifdef EDIT_KEYFRAME
+       x = mwindow->session->keyframedialog_w / 2 + widget_border;
+       y = window_border + 
+               BC_Title::calculate_h(gui, "P", LARGEFONT) + 
                widget_border;
 
        keyframe_list_x = x;
        keyframe_list_y = y;
-       keyframe_list_w = mwindow->session->keyframedialog_w - widget_border * 2;
-       keyframe_list_h = mwindow->session->keyframedialog_h - widget_border -
-               widget_border - keyframe_list_y - BC_Title::calculate_h(gui, "P") -
-               widget_border - BC_TextBox::calculate_h(gui, MEDIUMFONT, 1, 1) -
-               widget_border - BC_Title::calculate_h(gui, "P") -
-               widget_border - BC_OKButton::calculate_h() -
+       keyframe_list_w = mwindow->session->keyframedialog_w / 2 - 
+               widget_border - 
+               window_border;
+       keyframe_list_h = mwindow->session->keyframedialog_h - 
+               keyframe_list_y -
+               widget_border -
+               widget_border -
+               BC_Title::calculate_h(gui, "P") -
+               widget_border - 
+               BC_TextBox::calculate_h(gui,
+                       MEDIUMFONT,
+                       1,
+                       1) -
+               widget_border - 
+               BC_Title::calculate_h(gui, "P") -
+               widget_border -
+               BC_OKButton::calculate_h() - 
                window_border;
 //     keyframe_text_x = keyframe_list_x + keyframe_list_w + widget_border;
 //     keyframe_text_y = y;
 //     keyframe_text_w = mwindow->session->keyframedialog_w - keyframe_text_x - window_border;
-//     y += BC_TextBox::calculate_h(gui,
-//             MEDIUMFONT,
-//             1,
+//     y += BC_TextBox::calculate_h(gui, 
+//             MEDIUMFONT, 
+//             1, 
 //             1) + widget_border;
-//
+// 
 
        y += keyframe_list_h + BC_Title::calculate_h(gui, "P") + widget_border + widget_border;
        keyframe_value_x = keyframe_list_x;
        keyframe_value_y = y;
        keyframe_value_w = keyframe_list_w;
-       y += BC_TextBox::calculate_h(gui,
-               MEDIUMFONT,
-               1,
+       y += BC_TextBox::calculate_h(gui, 
+               MEDIUMFONT, 
+               1, 
                1) + widget_border;
 
        keyframe_all_x = keyframe_value_x;
        keyframe_all_y = y;
+
+#endif
+
 }