/*
* 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 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
- *
+ *
*/
#ifndef MAINWINDOWGUI_H
#include "statusbar.inc"
#include "swindow.inc"
#include "timelinepane.inc"
+#include "track.inc"
#include "trackcanvas.inc"
#include "trackscroll.inc"
#include "transitionpopup.inc"
MButtons *mbuttons;
};
+class ProxyToggle : public BC_Toggle
+{
+public:
+ ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y);
+ ~ProxyToggle();
+ int handle_event();
+ int keypress_event();
+ void show();
+ void hide();
+
+ MWindow *mwindow;
+ MButtons *mbuttons;
+ int scaler_images;
+};
+
class MWindowGUI : public BC_Window
{
// 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 patchbay,
+ int patchbay,
int clock,
int buttonbar);
void draw_overlays(int flash_it);
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);
+ int show_window(int flush=1);
void deactivate_timeline();
void activate_timeline();
void reset_meters();
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 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
// 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();
MainClock *mainclock;
MButtons *mbuttons;
FFMpegToggle *ffmpeg_toggle;
+ ProxyToggle *proxy_toggle;
PaneDivider *x_divider;
PaneDivider *y_divider;
TimelinePane *pane[TOTAL_PANES];