prevent popup deactivation while button_down
[goodguy/history.git] / cinelerra-5.0 / cinelerra / interfaceprefs.C
index 94b4e95875e3084709f9a77470e583fe2afe8cf3..4758a1ae38bc577b0abfd4af488f81c83dba44c4 100644 (file)
@@ -28,6 +28,7 @@
 #include "preferences.h"
 #include "preferencesthread.h"
 #include "interfaceprefs.h"
+#include "shbtnprefs.h"
 #include "theme.h"
 
 #if 0
@@ -45,8 +46,37 @@ N_("No effect")
 InterfacePrefs::InterfacePrefs(MWindow *mwindow, PreferencesWindow *pwindow)
  : PreferencesDialog(mwindow, pwindow)
 {
+       hms = 0;
+       hmsf = 0;
+       samples = 0;
+       frames = 0;
+       hex = 0;
+       feet = 0;
+       min_db = 0;
+       max_db = 0;
+//     vu_db = 0;
+//     vu_int = 0;
+       thumbnails = 0;
+       shbtn_dialog = 0;
 }
 
+InterfacePrefs::~InterfacePrefs()
+{
+       delete hms;
+       delete hmsf;
+       delete samples;
+       delete frames;
+       delete hex;
+       delete feet;
+       delete min_db;
+       delete max_db;
+//     delete vu_db;
+//     delete vu_int;
+       delete thumbnails;
+       delete shbtn_dialog;
+}
+
+
 void InterfacePrefs::create_objects()
 {
        int x, y;
@@ -102,6 +132,7 @@ void InterfacePrefs::create_objects()
 
        y += 35;
        add_subwindow(new UseTipWindow(pwindow, x, y));
+       add_subwindow(new UseWarnIndecies(pwindow, x+200, y));
 
        y += 35;
        add_subwindow(new BC_Bar(5, y,  get_w() - 10));
@@ -153,7 +184,7 @@ void InterfacePrefs::create_objects()
 
        add_subwindow(thumbnails = new ViewThumbnails(x, y, pwindow));
 
-       int x2 = x + 320, y2 = y;
+       int x2 = x + 400, y2 = y;
        AndroidRemote *android_remote = new AndroidRemote(pwindow, x2, y2);
        add_subwindow(android_remote);
        y2 += android_remote->get_h() + 10;
@@ -166,6 +197,9 @@ void InterfacePrefs::create_objects()
        AndroidPIN *android_pin = new AndroidPIN(pwindow, x3, y2);
        add_subwindow(android_pin);
 
+       y2 += title->get_h() + 30;
+       add_subwindow(new ShBtnPrefs(pwindow, this, x2, y2));
+
        y += 35;
        add_subwindow(new BC_Title(x, y, _("Clicking on edit boundaries does what:")));
        y += 25;
@@ -253,22 +287,6 @@ int InterfacePrefs::update(int new_value)
        return 0;
 }
 
-InterfacePrefs::~InterfacePrefs()
-{
-       delete hms;
-       delete hmsf;
-       delete samples;
-       delete frames;
-       delete hex;
-       delete feet;
-       delete min_db;
-       delete max_db;
-//     delete vu_db;
-//     delete vu_int;
-       delete thumbnails;
-}
-
-
 
 
 
@@ -640,6 +658,23 @@ int UseTipWindow::handle_event()
 }
 
 
+UseWarnIndecies::UseWarnIndecies(PreferencesWindow *pwindow, int x, int y)
+ : BC_CheckBox(x, 
+       y, 
+       pwindow->thread->preferences->warn_indecies, 
+       _("ffmpeg probe warns rebuild indecies"))
+{
+       this->pwindow = pwindow;
+}
+
+int UseWarnIndecies::handle_event()
+{
+       pwindow->thread->preferences->warn_indecies = get_value();
+       return 1;
+}
+
+
+
 
 ScanCommercials::ScanCommercials(PreferencesWindow *pwindow, int x, int y)
  : BC_CheckBox(x, 
@@ -669,7 +704,6 @@ int AndroidRemote::handle_event()
        return 1;
 }
 
-
 AndroidPIN::AndroidPIN(PreferencesWindow *pwindow, int x, int y)
  : BC_TextBox(x, y, 240, 1, pwindow->thread->preferences->android_pin)
 {
@@ -702,3 +736,24 @@ int AndroidPort::handle_event()
        return 1;
 }
 
+int InterfacePrefs::start_shbtn_dialog()
+{
+       if( !shbtn_dialog )
+               shbtn_dialog = new ShBtnEditDialog(pwindow);
+       shbtn_dialog->start();
+       return 1;
+}
+
+ShBtnPrefs::ShBtnPrefs(PreferencesWindow *pwindow, InterfacePrefs *iface_prefs, int x, int y)
+ : BC_GenericButton(x, y, _("Shell Commands"))
+{
+       this->pwindow = pwindow;
+       this->iface_prefs = iface_prefs;
+       set_tooltip(_("Main Menu Shell Commands"));
+}
+
+int ShBtnPrefs::handle_event()
+{
+       return iface_prefs->start_shbtn_dialog();
+}
+