bsd lang segv fix, enable bsd lv2, lv2 gui enable fix, proxy/ffmpeg toggle resize...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindowgui.h
index 4d742667f042fac6ec01ed677d3513c15353f83a..d4205162e380d6580b6d1219dc74e4f5a1fb014d 100644 (file)
@@ -2,21 +2,21 @@
 /*
  * CINELERRA
  * Copyright (C) 1997-2014 Adam Williams <broadcast at earthling dot net>
 /*
  * 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 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.
  * 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
  * 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
- * 
+ *
  */
 
 #ifndef MAINWINDOWGUI_H
  */
 
 #ifndef MAINWINDOWGUI_H
@@ -51,6 +51,7 @@
 #include "statusbar.inc"
 #include "swindow.inc"
 #include "timelinepane.inc"
 #include "statusbar.inc"
 #include "swindow.inc"
 #include "timelinepane.inc"
+#include "track.inc"
 #include "trackcanvas.inc"
 #include "trackscroll.inc"
 #include "transitionpopup.inc"
 #include "trackcanvas.inc"
 #include "trackscroll.inc"
 #include "transitionpopup.inc"
@@ -77,6 +78,18 @@ public:
        MButtons *mbuttons;
 };
 
        MButtons *mbuttons;
 };
 
+class ProxyToggle : public BC_Toggle
+{
+public:
+       ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y);
+       ~ProxyToggle();
+       int handle_event();
+       int keypress_event();
+
+       MWindow *mwindow;
+       MButtons *mbuttons;
+};
+
 
 class MWindowGUI : public BC_Window
 {
 
 class MWindowGUI : public BC_Window
 {
@@ -99,10 +112,10 @@ public:
 //          FORCE_REDRAW for delete and redraw of resources
 //          IGNORE_THREAD to ignore picon thread
        void update(int scrollbars,
 //          FORCE_REDRAW for delete and redraw of resources
 //          IGNORE_THREAD to ignore picon thread
        void update(int scrollbars,
-               int do_canvas, 
+               int do_canvas,
                int timebar,
                int zoombar,
                int timebar,
                int zoombar,
-               int patchbay, 
+               int patchbay,
                int clock,
                int buttonbar);
        void draw_overlays(int flash_it);
                int clock,
                int buttonbar);
        void draw_overlays(int flash_it);
@@ -111,10 +124,12 @@ public:
        void update_timebar(int flush_it);
        void update_timebar_highlights();
        void update_patchbay();
        void update_timebar(int flush_it);
        void update_timebar_highlights();
        void update_patchbay();
+       void update_proxy_toggle();
        void update_plugintoggles();
        void update_scrollbars(int flush);
        void draw_canvas(int mode, int hide_cursor);
        void flash_canvas(int flush);
        void update_plugintoggles();
        void update_scrollbars(int flush);
        void draw_canvas(int mode, int hide_cursor);
        void flash_canvas(int flush);
+       int show_window(int flush=1);
        void deactivate_timeline();
        void activate_timeline();
        void reset_meters();
        void deactivate_timeline();
        void activate_timeline();
        void reset_meters();
@@ -127,12 +142,15 @@ public:
        void set_playing_back(int value);
        void set_editing_mode(int flush);
        void set_meter_format(int mode, int min, int max);
        void set_playing_back(int value);
        void set_editing_mode(int flush);
        void set_meter_format(int mode, int min, int max);
+       void update_mixers(Track *track, int v);
+       void stop_transport(const char *lock_msg);
 
        int translation_event();
        int resize_event(int w, int h);          // handle a resize event
 
        int translation_event();
        int resize_event(int w, int h);          // handle a resize event
+       int button_release_event();
        int keypress_event();
        int keyboard_listener(BC_WindowBase *wp);
        int keypress_event();
        int keyboard_listener(BC_WindowBase *wp);
-       int keyboard_listener(int key);
+       int key_listener(int key);
        void use_android_remote(int on);
        int close_event();
        int quit();
        void use_android_remote(int on);
        int close_event();
        int quit();
@@ -141,8 +159,10 @@ public:
        int menu_w();
        int menu_h();
 // Draw on the status bar only.
        int menu_w();
        int menu_h();
 // Draw on the status bar only.
-       int show_message(char *message, int color = -1);
-// Pop up a box if the statusbar is taken and show an error.
+       void show_message(const char *message, int color=-1);
+       void update_default_message();
+       void reset_default_message();
+       void default_message();
        void show_error(char *message, int color = BLACK);
        int repeat_event(int64_t duration);
 // Entry point for drag events in all windows
        void show_error(char *message, int color = BLACK);
        int repeat_event(int64_t duration);
 // Entry point for drag events in all windows
@@ -155,7 +175,7 @@ public:
 // 1 if there are 2 panes horizontally
        int horizontal_panes();
 
 // 1 if there are 2 panes horizontally
        int horizontal_panes();
 
-// get pane number where cursor updates should be drawn in, 
+// get pane number where cursor updates should be drawn in,
 // whether active or not
        TimelinePane* get_focused_pane();
        void start_x_pane_drag();
 // whether active or not
        TimelinePane* get_focused_pane();
        void start_x_pane_drag();
@@ -191,11 +211,14 @@ public:
        EditPopup *edit_menu;
        PluginPopup *plugin_menu;
        KeyframePopup *keyframe_menu;
        EditPopup *edit_menu;
        PluginPopup *plugin_menu;
        KeyframePopup *keyframe_menu;
+       KeyframeHidePopup *keyframe_hide;
+       BC_SubWindow *keyvalue_popup;
        TransitionPopup *transition_menu;
 
        MainClock *mainclock;
        MButtons *mbuttons;
        FFMpegToggle *ffmpeg_toggle;
        TransitionPopup *transition_menu;
 
        MainClock *mainclock;
        MButtons *mbuttons;
        FFMpegToggle *ffmpeg_toggle;
+       ProxyToggle *proxy_toggle;
        PaneDivider *x_divider;
        PaneDivider *y_divider;
        TimelinePane *pane[TOTAL_PANES];
        PaneDivider *x_divider;
        PaneDivider *y_divider;
        TimelinePane *pane[TOTAL_PANES];
@@ -221,7 +244,6 @@ public:
 
        BC_DragWindow *drag_popup;
 
 
        BC_DragWindow *drag_popup;
 
-
 //     PatchBay *patchbay;
 //     MTimeBar *timebar;
 //     SampleScroll *samplescroll;
 //     PatchBay *patchbay;
 //     MTimeBar *timebar;
 //     SampleScroll *samplescroll;