4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef __ZWINDOWGUI_H__
23 #define __ZWINDOWGUI_H__
28 #include "playbackengine.inc"
29 #include "zwindow.inc"
30 #include "zwindowgui.inc"
35 class ZWindowGUI : public BC_Window
38 ZWindowGUI(MWindow *mwindow, ZWindow *vwindow, Mixer *mixer);
41 void create_objects();
42 int resize_event(int w, int h);
43 int translation_event();
46 int button_press_event();
47 int cursor_leave_event();
48 int cursor_enter_event();
49 int button_release_event();
50 int cursor_motion_event();
51 int select_window(int n);
53 void set_highlighted(int v);
54 void set_playable(int v);
58 ZWindowCanvas *canvas;
60 PlaybackEngine *playback_engine;
61 int highlighted, playable;
64 class ZWindowCanvasTileMixers : public BC_MenuItem
67 ZWindowCanvasTileMixers(ZWindowCanvas *canvas);
69 ZWindowCanvas *canvas;
72 class ZWindowCanvasPlayable : public BC_MenuItem
75 ZWindowCanvasPlayable(ZWindowCanvas *canvas);
77 ZWindowCanvas *canvas;
81 class ZWindowCanvas : public Canvas
84 ZWindowCanvas(MWindow *mwindow, ZWindowGUI *gui,
85 int x, int y, int w, int h);
87 void create_objects(EDL *edl);
89 void draw_refresh(int flush = 1);
90 float get_auto_zoom();
92 void update_zoom(int x, int y, float zoom);
94 void zoom_resize_window(float percentage);