00001 #ifndef ZOOMBAR_H
00002 #define ZOOMBAR_H
00003
00004 class FromTextBox;
00005 class LengthTextBox;
00006 class ToTextBox;
00007
00008
00009 class SampleZoomPanel;
00010 class AmpZoomPanel;
00011 class TrackZoomPanel;
00012 class AutoZoom;
00013
00014
00015 #include "guicast.h"
00016 #include "mwindow.inc"
00017 #include "mwindowgui.inc"
00018 #include "zoompanel.h"
00019
00020 class ZoomBar : public BC_SubWindow
00021 {
00022 public:
00023 ZoomBar(MWindow *mwindow, MWindowGUI *gui);
00024 ~ZoomBar();
00025
00026 int create_objects();
00027 void ZoomBar::resize_event();
00028 int draw();
00029 int resize_event(int w, int h);
00030 void redraw_time_dependancies();
00031 int update();
00032 void update_autozoom();
00033 int update_clocks();
00034 int update_playback(int64_t new_position);
00035 int set_selection(int which_one);
00036 void update_formatting(BC_TextBox *dst);
00037
00038 MWindow *mwindow;
00039 MWindowGUI *gui;
00040 SampleZoomPanel *sample_zoom;
00041 AmpZoomPanel *amp_zoom;
00042 TrackZoomPanel *track_zoom;
00043 AutoZoom *auto_zoom;
00044 BC_Title *auto_zoom_text;
00045
00046 BC_Title *zoom_value, *playback_value;
00047 LengthTextBox *length_value;
00048 FromTextBox *from_value;
00049 ToTextBox *to_value;
00050 char string[256], string2[256];
00051 int64_t old_position;
00052 };
00053
00054 class SampleZoomPanel : public ZoomPanel
00055 {
00056 public:
00057 SampleZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00058 int handle_event();
00059 MWindow *mwindow;
00060 ZoomBar *zoombar;
00061 };
00062
00063 class AmpZoomPanel : public ZoomPanel
00064 {
00065 public:
00066 AmpZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00067 int handle_event();
00068 MWindow *mwindow;
00069 ZoomBar *zoombar;
00070 };
00071
00072 class TrackZoomPanel : public ZoomPanel
00073 {
00074 public:
00075 TrackZoomPanel(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00076 int handle_event();
00077 MWindow *mwindow;
00078 ZoomBar *zoombar;
00079 };
00080
00081 class AutoZoom : public BC_Tumbler
00082 {
00083 public:
00084 AutoZoom(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00085 int handle_up_event();
00086 int handle_down_event();
00087 MWindow *mwindow;
00088 ZoomBar *zoombar;
00089 };
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 class FromTextBox : public BC_TextBox
00100 {
00101 public:
00102 FromTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00103 int handle_event();
00104 int update_position(double new_position);
00105 char string[256], string2[256];
00106 MWindow *mwindow;
00107 ZoomBar *zoombar;
00108 };
00109
00110
00111 class LengthTextBox : public BC_TextBox
00112 {
00113 public:
00114 LengthTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00115 int handle_event();
00116 int update_position(double new_position);
00117 char string[256], string2[256];
00118 MWindow *mwindow;
00119 ZoomBar *zoombar;
00120 };
00121
00122 class ToTextBox : public BC_TextBox
00123 {
00124 public:
00125 ToTextBox(MWindow *mwindow, ZoomBar *zoombar, int x, int y);
00126 int handle_event();
00127 int update_position(double new_position);
00128 char string[256], string2[256];
00129 MWindow *mwindow;
00130 ZoomBar *zoombar;
00131 };
00132
00133
00134
00135
00136 #endif