Exciting new Alt/h help key provided by sge (Georgy) with many thanks!
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / recordgui.C
index 1f5b392153591117e63353d3d4bf7d82a8680768..082d26934342cb8aa022e04d0b643f5e02832e45 100644 (file)
@@ -112,6 +112,8 @@ RecordGUI::RecordGUI(MWindow *mwindow, Record *record)
        }
        total_dropped_frames = 0;
        total_clipped_samples = 0;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Record Web Media");
 }
 
 RecordGUI::~RecordGUI()
@@ -385,6 +387,11 @@ void RecordGUI::create_objects()
        add_subwindow(power_off = new RecordGUIPowerOff(this, x1, y1));
        x1 += power_off->get_w() + xs10;
        add_subwindow(commercial_check = new RecordGUICommCheck(this, x1, y1));
+       x1 += commercial_check->get_w() + xs30;
+       add_subwindow(deinterlace = new RecordGUIDeinterlace(this, x1, y1));
+       deinterlace->create_objects();
+       x1 += deinterlace->get_w() + xs5;
+       add_subwindow(new BC_Title(x1, y1, _("deinterlace")));
 
 // Batches
        x = xs10;
@@ -424,6 +431,7 @@ void RecordGUI::create_objects()
                batch_duration->enable();
        else
                batch_duration->disable();
+       show_window(1);
        unlock_window();
 }
 
@@ -582,7 +590,7 @@ int RecordGUISave::keypress_event()
 //             handle_event();
 //             return 1;
 //     }
-       return 0;
+       return context_help_check_and_show();
 }
 
 RecordGUICancel::RecordGUICancel(RecordGUI *gui)
@@ -606,7 +614,7 @@ int RecordGUICancel::keypress_event()
                return 1;
        }
 
-       return 0;
+       return context_help_check_and_show();
 }
 
 
@@ -663,7 +671,7 @@ int RecordGUIDropFrames::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 RecordGUIFillFrames::RecordGUIFillFrames(RecordGUI *gui, int x, int y)
@@ -687,7 +695,7 @@ int RecordGUIFillFrames::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 RecordGUIPowerOff::RecordGUIPowerOff(RecordGUI *gui, int x, int y)
@@ -696,6 +704,8 @@ RecordGUIPowerOff::RecordGUIPowerOff(RecordGUI *gui, int x, int y)
        this->set_underline(0);
        this->gui = gui;
        set_tooltip(_("poweroff system when batch record done."));
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 
 int RecordGUIPowerOff::handle_event()
@@ -711,7 +721,7 @@ int RecordGUIPowerOff::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 
@@ -721,6 +731,8 @@ RecordGUICommCheck::RecordGUICommCheck(RecordGUI *gui, int x, int y)
        this->set_underline(0);
        this->gui = gui;
        set_tooltip(_("check for commercials."));
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("The commercial DB");
 }
 
 int RecordGUICommCheck::handle_event()
@@ -729,7 +741,6 @@ int RecordGUICommCheck::handle_event()
        return 1;
 }
 
-
 int RecordGUICommCheck::keypress_event()
 {
        if( get_keypress() == caption[0] ) {
@@ -738,7 +749,45 @@ int RecordGUICommCheck::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
+}
+
+
+RecordGUIDelaceItem::RecordGUIDelaceItem(RecordGUIDeinterlace *popup,
+               const char *text, int id)
+ : BC_MenuItem(text)
+{
+       this->popup = popup;
+       this->id = id;
+}
+int RecordGUIDelaceItem::handle_event()
+{
+       popup->gui->record->deinterlace = id;
+       popup->update();
+       return 1;
+}
+
+RecordGUIDeinterlace::RecordGUIDeinterlace(RecordGUI *gui, int x, int y)
+ : BC_PopupMenu(x, y, xS(24), "", 1, 0, xS(3))
+{
+       this->gui = gui;
+}
+
+void RecordGUIDeinterlace::create_objects()
+{
+       add_item(new RecordGUIDelaceItem(this, _("None"), RECORD_LACE_NONE));
+       add_item(new RecordGUIDelaceItem(this, _("Even"), RECORD_LACE_EVEN));
+       add_item(new RecordGUIDelaceItem(this, _("Odd"), RECORD_LACE_ODD));
+       update();
+}
+
+void RecordGUIDeinterlace::update()
+{
+       int v = gui->record->deinterlace;
+       for( int i=0,n=total_items(); i<n; ++i ) {
+               RecordGUIDelaceItem *item = (RecordGUIDelaceItem *)get_item(i);
+               item->set_checked(item->id == v);
+       }
 }
 
 
@@ -766,6 +815,16 @@ int RecordGUIMonitorVideo::handle_event()
                lock_window("RecordGUIMonitorVideo::handle_event");
                record->video_window_open = 1;
        }
+       else {
+               unlock_window();
+               BC_Window *window = record->record_monitor->window;
+               window->lock_window("RecordGUIMonitorVideo::handle_event");
+               window->hide_window();
+               window->flush();
+               window->unlock_window();
+               lock_window("RecordGUIMonitorVideo::handle_event");
+               record->video_window_open = 0;
+       }
        return 1;
 }
 
@@ -777,7 +836,7 @@ int RecordGUIMonitorVideo::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 
@@ -815,7 +874,7 @@ int RecordGUIMonitorAudio::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 
@@ -824,6 +883,8 @@ RecordGUIAudioMeters::RecordGUIAudioMeters(RecordGUI *gui, int x, int y)
 {
        this->set_underline(6);
        this->gui = gui;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Sound Level Meters Window");
 }
 
 int RecordGUIAudioMeters::handle_event()
@@ -852,7 +913,7 @@ int RecordGUIAudioMeters::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 RecordPath::RecordPath(RecordGUI *gui, int x, int y)
@@ -920,6 +981,8 @@ RecordGUINewBatch::RecordGUINewBatch(RecordGUI *gui, int x, int y)
 {
        this->gui = gui;
        set_tooltip(_("Create new clip."));
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 int RecordGUINewBatch::handle_event()
 {
@@ -933,6 +996,8 @@ RecordGUIDeleteBatch::RecordGUIDeleteBatch(RecordGUI *gui, int x, int y)
 {
        this->gui = gui;
        set_tooltip(_("Delete clip."));
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 
 int RecordGUIDeleteBatch::handle_event()
@@ -947,6 +1012,8 @@ RecordGUIStartBatches::RecordGUIStartBatches(RecordGUI *gui, int x, int y)
 {
        this->gui = gui;
        set_tooltip(_("Start batch recording\nfrom the current position."));
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 
 int RecordGUIStartBatches::handle_event()
@@ -961,6 +1028,8 @@ RecordGUIStopBatches::RecordGUIStopBatches(RecordGUI *gui, int x, int y)
  : RecordBatchesGUI::StopBatches(gui->record->record_batches, x, y)
 {
        this->gui = gui;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 
 int RecordGUIStopBatches::handle_event()
@@ -978,6 +1047,8 @@ RecordGUIActivateBatch::RecordGUIActivateBatch(RecordGUI *gui, int x, int y)
 {
        this->gui = gui;
        set_tooltip(_("Make the highlighted\nclip active."));
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 int RecordGUIActivateBatch::handle_event()
 {
@@ -992,6 +1063,8 @@ RecordGUILabel::RecordGUILabel(RecordGUI *gui, int x, int y)
 {
        this->gui = gui;
        set_underline(0);
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 
 
@@ -1011,7 +1084,7 @@ int RecordGUILabel::keypress_event()
                handle_event();
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 
 
@@ -1019,6 +1092,8 @@ RecordGUIClearLabels::RecordGUIClearLabels(RecordGUI *gui, int x, int y)
  : BC_GenericButton(x, y, _("ClrLbls"))
 {
        this->gui = gui;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Capture at some Future Time via Batch");
 }
 
 
@@ -1194,7 +1269,12 @@ void RecordGUI::update_audio(int channels, double *max, int *over)
 
 int RecordGUI::keypress_event()
 {
-       return record_transport->keypress_event();
+       if (get_keypress() != 'h' || ! alt_down() ||
+           ! is_tooltip_event_win() || ! cursor_inside())
+               return record_transport->keypress_event();
+
+       context_help_show("Record Web Media");
+       return 1;
 }
 
 void RecordGUI::update_labels(double new_position)
@@ -1569,7 +1649,7 @@ int RecordGUIDCOffset::handle_event()
        return 1;
 }
 
-int RecordGUIDCOffset::keypress_event() { return 0; }
+int RecordGUIDCOffset::keypress_event() { return context_help_check_and_show(); }
 
 RecordGUIDCOffsetText::RecordGUIDCOffsetText(char *text, int y, int number)
  : BC_TextBox(xS(30), y+yS(1), xS(67), 1, text, 0)