+++ /dev/null
-
-/*
- * CINELERRA
- * Copyright (C) 2008 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 CWINDOWGUI_H
-#define CWINDOWGUI_H
-
-#include "auto.inc"
-#include "canvas.h"
-#include "cpanel.inc"
-#include "ctimebar.inc"
-#include "cwindow.inc"
-#include "cwindowtool.inc"
-#include "editpanel.h"
-#include "floatauto.inc"
-#include "floatautos.inc"
-#include "guicast.h"
-#include "mainclock.inc"
-#include "maskauto.inc"
-#include "meterpanel.h"
-#include "mwindow.inc"
-#include "playtransport.h"
-#include "thread.h"
-#include "track.inc"
-#include "zoompanel.h"
-
-class CWindowZoom;
-class CWindowSlider;
-class CWindowReset;
-class CWindowDestination;
-class CWindowMeters;
-class CWindowTransport;
-class CWindowCanvas;
-class CWindowEditing;
-
-
-#define AUTO_ZOOM "Auto"
-
-class CWindowGUI : public BC_Window
-{
-public:
- CWindowGUI(MWindow *mwindow, CWindow *cwindow);
- ~CWindowGUI();
-
- void create_objects();
- int resize_event(int w, int h);
-
-// Events for the fullscreen canvas fall through to here.
- int button_press_event();
- int cursor_leave_event();
- int cursor_enter_event();
- int button_release_event();
- int cursor_motion_event();
-
-
- void zoom_canvas(int do_auto, double value, int update_menu);
-
- int close_event();
- int keypress_event();
- int translation_event();
- void set_operation(int value);
- void update_tool();
- void drag_motion();
- int drag_stop();
- void draw_status(int flush);
-// Zero out pointers to affected auto
- void reset_affected();
- void keyboard_zoomin();
- void keyboard_zoomout();
- void update_meters();
-
- MWindow *mwindow;
- CWindow *cwindow;
- CWindowEditing *edit_panel;
-// APanel *automation_panel;
- CPanel *composite_panel;
- CWindowZoom *zoom_panel;
- CWindowReset *reset;
- CWindowTransport *transport;
- CWindowCanvas *canvas;
- CTimeBar *timebar;
- BC_Pixmap *active;
- BC_Pixmap *inactive;
-// MainClock *clock;
-
-
- CWindowMeters *meters;
-
-
- CWindowTool *tool_panel;
-
-// Cursor motion modification being done
- int current_operation;
-// The pointers are only used for dragging. Information for tool windows
-// must be integers and recalculted for every keypress.
-// Track being modified in canvas
- Track *affected_track;
-// Transformation keyframe being modified
- FloatAuto *affected_x;
- FloatAuto *affected_y;
- FloatAuto *affected_z;
-// Pointer to mask keyframe being modified in the EDL
- MaskAuto *mask_keyframe;
-// Copy of original value of mask keyframe for keyframe spanning
- MaskAuto *orig_mask_keyframe;
-// Mask point being modified
- int affected_point;
-// Scrollbar offsets during last button press relative to output
- float x_offset, y_offset;
-// Cursor location during the last button press relative to output
-// and offset by scroll bars
- float x_origin, y_origin;
-// Crop handle being dragged
- int crop_handle;
-// If dragging crop translation
- int crop_translate;
-// Origin of crop handle during last button press
- float crop_origin_x, crop_origin_y;
-// Origin of all 4 crop points during last button press
- float crop_origin_x1, crop_origin_y1;
- float crop_origin_x2, crop_origin_y2;
-// Center of last eyedrop drawing
- int eyedrop_x, eyedrop_y;
- int eyedrop_visible;
-
- float ruler_origin_x, ruler_origin_y;
- int ruler_handle;
- int ruler_translate;
-
-// Origin for camera and projector operations during last button press
- float center_x, center_y, center_z;
- float control_in_x, control_in_y, control_out_x, control_out_y;
- int current_tool;
-// Must recalculate the origin when pressing shift.
-// Switch toggle on and off to recalculate origin.
- int translating_zoom;
-};
-
-
-class CWindowEditing : public EditPanel
-{
-public:
- CWindowEditing(MWindow *mwindow, CWindow *cwindow);
- virtual ~CWindowEditing() {}
-
- void copy_selection();
- void splice_selection();
- void overwrite_selection();
- void set_inpoint();
- void set_outpoint();
- void clear_inpoint();
- void clear_outpoint();
- void to_clip();
- void toggle_label();
- void prev_label();
- void next_label();
- void prev_edit();
- void next_edit();
-
- MWindow *mwindow;
- CWindow *cwindow;
-};
-
-
-class CWindowMeters : public MeterPanel
-{
-public:
- CWindowMeters(MWindow *mwindow, CWindowGUI *gui, int x, int y, int h);
- virtual ~CWindowMeters();
-
- int change_status_event(int new_status);
-
- MWindow *mwindow;
- CWindowGUI *gui;
-};
-
-class CWindowZoom : public ZoomPanel
-{
-public:
- CWindowZoom(MWindow *mwindow, CWindowGUI *gui, int x, int y, int w);
- virtual ~CWindowZoom();
- int handle_event();
- MWindow *mwindow;
- CWindowGUI *gui;
-};
-
-
-class CWindowSlider : public BC_PercentageSlider
-{
-public:
- CWindowSlider(MWindow *mwindow, CWindow *cwindow, int x, int y, int pixels);
- ~CWindowSlider();
-
- int handle_event();
- void set_position();
- int increase_value();
- int decrease_value();
-
- MWindow *mwindow;
- CWindow *cwindow;
-};
-
-class CWindowReset : public BC_Button
-{
-public:
- CWindowReset(MWindow *mwindow, CWindowGUI *cwindow, int x, int y);
- ~CWindowReset();
- int handle_event();
- CWindowGUI *cwindow;
- MWindow *mwindow;
-};
-
-// class CWindowDestination : public BC_PopupTextBox
-// {
-// public:
-// CWindowDestination(MWindow *mwindow, CWindowGUI *cwindow, int x, int y);
-// ~CWindowDestination();
-// int handle_event();
-// CWindowGUI *cwindow;
-// MWindow *mwindow;
-// };
-
-class CWindowTransport : public PlayTransport
-{
-public:
- CWindowTransport(MWindow *mwindow,
- CWindowGUI *gui,
- int x,
- int y);
- EDL* get_edl();
- void goto_start();
- void goto_end();
-
- CWindowGUI *gui;
-};
-
-
-class CWindowCanvas : public Canvas
-{
-public:
- CWindowCanvas(MWindow *mwindow, CWindowGUI *gui);
-
- void status_event();
- void zoom_resize_window(float percentage);
- void update_zoom(int x, int y, float zoom);
- int get_xscroll();
- int get_yscroll();
- float get_zoom();
- int do_eyedrop(int &rerender, int button_press, int draw);
- int do_mask(int &redraw,
- int &rerender,
- int button_press,
- int cursor_motion,
- int draw);
- void draw_refresh(int flash = 1);
- void draw_overlays();
- void draw_safe_regions();
-// Cursor may have to be drawn
- int cursor_leave_event();
- int cursor_enter_event();
- int cursor_motion_event();
- int button_press_event();
- int button_release_event();
- int get_fullscreen();
- void set_fullscreen(int value);
- int test_crop(int button_press, int &redraw);
- int test_bezier(int button_press,
- int &redraw,
- int &redraw_canvas,
- int &rerender,
- int do_camera);
- int do_ruler(int draw, int motion, int button_press, int button_release);
- int test_zoom(int &redraw);
- void reset_camera();
- void reset_projector();
- void reset_keyframe(int do_camera);
- void draw_crophandle(int x, int y);
- void zoom_auto();
-
-// Draw the projector overlay in different colors.
- void draw_bezier(int do_camera);
- void draw_crop();
- void calculate_origin();
- void toggle_controls();
- int get_cwindow_controls();
-
- MWindow *mwindow;
- CWindowGUI *gui;
-};
-
-#endif