Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

vwindowgui.h

Go to the documentation of this file.
00001 #ifndef VWINDOWGUI_H
00002 #define VWINDOWGUI_H
00003 
00004 #include "asset.inc"
00005 #include "canvas.h"
00006 #include "editpanel.h"
00007 #include "guicast.h"
00008 #include "mainclock.inc"
00009 #include "meterpanel.h"
00010 #include "mwindow.inc"
00011 #include "playtransport.h"
00012 
00013 #include "timebar.h"
00014 
00015 #include "vtimebar.inc"
00016 #include "vwindow.inc"
00017 #include "zoompanel.h"
00018 
00019 class VWindowSlider;
00020 class VWindowZoom;
00021 class VWindowSource;
00022 class VWindowTransport;
00023 class VWindowEditing;
00024 class VWindowCanvas;
00025 class VWindowMeters;
00026 class VWindowInPoint;
00027 class VWindowOutPoint;
00028 
00029 class VWindowGUI : public BC_Window
00030 {
00031 public:
00032         VWindowGUI(MWindow *mwindow, VWindow *vwindow);
00033         ~VWindowGUI();
00034 
00035         int create_objects();
00036         int resize_event(int w, int h);
00037         int translation_event();
00038         int close_event();
00039         int keypress_event();
00040 // Update source pulldown with new assets
00041         void update_sources(char *title);
00042 // Update GUI to reflect new source
00043         void change_source(EDL *edl, char *title);
00044         void drag_motion();
00045         int drag_stop();
00046 //      void update_labels();
00047 //      void update_points();
00048 
00049         MWindow *mwindow;
00050         VWindow *vwindow;
00051 
00052 // Meters are numbered from right to left
00053         VWindowCanvas *canvas;
00054         VWindowSlider *slider;
00055         BC_Title *fps_title;
00056         MainClock *clock;
00057         VTimeBar *timebar;
00058         VWindowZoom *zoom_panel;
00059         VWindowTransport *transport;
00060         VWindowEditing *edit_panel;
00061 //      VWindowSource *source;
00062         VWindowMeters *meters;
00063         ArrayList<BC_ListBoxItem*> sources;
00064         ArrayList<LabelGUI*> labels;
00065         VWindowInPoint *in_point;
00066         VWindowOutPoint *out_point;
00067 
00068 private:
00069         void get_scrollbars(int &canvas_x, int &canvas_y, int &canvas_w, int &canvas_h);
00070 };
00071 
00072 
00073 class VWindowMeters : public MeterPanel
00074 {
00075 public:
00076         VWindowMeters(MWindow *mwindow, VWindowGUI *gui, int x, int y, int h);
00077         ~VWindowMeters();
00078         
00079         int change_status_event();
00080         
00081         MWindow *mwindow;
00082         VWindowGUI *gui;
00083 };
00084 
00085 
00086 class VWindowCanvas : public Canvas
00087 {
00088 public:
00089         VWindowCanvas(MWindow *mwindow, VWindowGUI *gui);
00090 
00091         void zoom_resize_window(float percentage);
00092         void draw_refresh();
00093         void draw_overlays();
00094         void close_source();
00095 
00096         MWindow *mwindow;
00097         VWindowGUI *gui;
00098 };
00099 
00100 class VWindowEditing : public EditPanel
00101 {
00102 public:
00103         VWindowEditing(MWindow *mwindow, VWindow *vwindow);
00104         ~VWindowEditing();
00105         
00106         void copy_selection();
00107         void splice_selection();
00108         void overwrite_selection();
00109         void set_inpoint();
00110         void set_outpoint();
00111         void clear_inpoint();
00112         void clear_outpoint();
00113         void to_clip();
00114         void toggle_label();
00115         void prev_label();
00116         void next_label();
00117 
00118         MWindow *mwindow;
00119         VWindow *vwindow;
00120 };
00121 
00122 class VWindowZoom : public ZoomPanel
00123 {
00124 public:
00125         VWindowZoom(MWindow *mwindow, VWindowGUI *gui, int x, int y);
00126         ~VWindowZoom();
00127         int handle_event();
00128         MWindow *mwindow;
00129         VWindowGUI *gui;
00130 };
00131 
00132 
00133 class VWindowSlider : public BC_PercentageSlider
00134 {
00135 public:
00136         VWindowSlider(MWindow *mwindow, 
00137                 VWindow *vwindow, 
00138                 VWindowGUI *gui, 
00139                 int x, 
00140                 int y, 
00141                 int pixels);
00142         ~VWindowSlider();
00143 
00144         int handle_event();
00145         void set_position();
00146 
00147         VWindowGUI *gui;
00148         MWindow *mwindow;
00149         VWindow *vwindow;
00150 };
00151 
00152 class VWindowSource : public BC_PopupTextBox
00153 {
00154 public:
00155         VWindowSource(MWindow *mwindow, VWindowGUI *vwindow, int x, int y);
00156         ~VWindowSource();
00157         int handle_event();
00158         VWindowGUI *vwindow;
00159         MWindow *mwindow;
00160 };
00161 
00162 class VWindowTransport : public PlayTransport
00163 {
00164 public:
00165         VWindowTransport(MWindow *mwindow, 
00166                 VWindowGUI *gui, 
00167                 int x, 
00168                 int y);
00169         EDL* get_edl();
00170         void goto_start();
00171         void goto_end();
00172 
00173         VWindowGUI *gui;
00174 };
00175 
00176 class VWindowInPoint : public InPointGUI
00177 {
00178 public:
00179         VWindowInPoint(MWindow *mwindow, 
00180                 TimeBar *timebar, 
00181                 VWindowGUI *gui,
00182                 long pixel, 
00183                 double position);
00184         int handle_event();
00185         VWindowGUI *gui;
00186 };
00187 
00188 
00189 class VWindowOutPoint : public OutPointGUI
00190 {
00191 public:
00192         VWindowOutPoint(MWindow *mwindow, 
00193                 TimeBar *timebar, 
00194                 VWindowGUI *gui,
00195                 long pixel, 
00196                 double position);
00197         int handle_event();
00198         VWindowGUI *gui;
00199 };
00200 
00201 #endif

Generated on Sun Jan 8 13:39:02 2006 for Cinelerra-svn by  doxygen 1.4.4