split resource_thread update into separate audio/video threads, boxblur layout tweaks
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / loadmode.h
index 74745fea7be5870caf12b599487f768fa70bcb7d..61009f4e3e304548c76c35184b3f918bb50c4f04 100644 (file)
@@ -27,8 +27,6 @@
 #include "mwindow.inc"
 #include "theme.inc"
 
-class LoadModeListBox;
-
 class LoadModeItem : public BC_ListBoxItem
 {
 public:
@@ -36,36 +34,48 @@ public:
        int value;
 };
 
+class LoadModeToggle : public BC_Toggle
+{
+public:
+       LoadModeToggle(int x, int y, LoadMode *window, int value,
+               int *output, const char *images, const char *tooltip);
+       int handle_event();
+       LoadMode *window;
+       int id, *output;
+};
+
 class LoadMode
 {
 public:
-       LoadMode(MWindow *mwindow,
-               BC_WindowBase *window,
-               int x,
-               int y,
-               int *output,
-               int use_nothing);
+       LoadMode(MWindow *mwindow, BC_WindowBase *window,
+               int x, int y, int *load_mode, int *edl_mode=0,
+               int use_nothing=1, int line_wrap=0);
        ~LoadMode();
-
-       int create_objects();
+       void create_objects();
        int reposition_window(int x, int y);
-       static int calculate_w(BC_WindowBase *gui, Theme *theme);
-       static int calculate_h(BC_WindowBase *gui, Theme *theme);
+       static void load_mode_geometry(BC_WindowBase *gui, Theme *theme,
+               int use_nothing, int use_nested, int line_wrap,
+               int *pw, int *ph);
+       static int calculate_w(BC_WindowBase *gui, Theme *theme,
+               int use_nothing=1, int use_nested=0, int line_wrap=0);
+       static int calculate_h(BC_WindowBase *gui, Theme *theme,
+               int use_nothing=1, int use_nested=0, int line_wrap=0);
        int get_h();
        int get_x();
        int get_y();
 
-       char* mode_to_text();
+       const char *mode_to_text(int mode);
+       void update();
+       int set_line_wrap(int v);
 
-       BC_Title *title;
+       BC_Title *load_title, *edl_title;
        BC_TextBox *textbox;
        LoadModeListBox *listbox;
        MWindow *mwindow;
        BC_WindowBase *window;
-       int x;
-       int y;
-       int *output;
-       int use_nothing;
+       int x, y, *load_mode, *edl_mode;
+       int use_nothing, line_wrap;
+       LoadModeToggle *mode[TOTAL_LOADMODES];
        ArrayList<LoadModeItem*> load_modes;
 };