Initial commit
[fillmore] / src / marina / ClassFactory.vala
1 /* Copyright 2009-2010 Yorba Foundation
2  *
3  * This software is licensed under the GNU Lesser General Public License
4  * (version 2.1 or later).  See the COPYING file in this distribution. 
5  */
6
7 public interface TrackView : Gtk.Widget {
8     public signal void clip_view_added(ClipView clip_view);
9     public abstract void move_to_top(ClipView clip_view);
10     public abstract void resize();
11     public abstract Model.Track get_track();
12     public abstract int get_track_height();
13     public abstract Gtk.Widget? find_child(double x, double y);
14     public abstract void select_all();
15 }
16
17 public class ClassFactory {
18     static ClassFactory class_factory = null;
19     static TransportDelegate transport_delegate = null;
20
21     public static ClassFactory get_class_factory() {
22         return class_factory;
23     }
24
25     public virtual TrackView get_track_view(Model.Track track, TimeLine timeline) {
26         assert(transport_delegate != null);
27         return new TrackViewConcrete(transport_delegate, track, timeline);
28     }
29     
30     public static void set_class_factory(ClassFactory class_factory) {
31         ClassFactory.class_factory = class_factory;
32     }
33
34     public static void set_transport_delegate(TransportDelegate transport_delegate) {
35         ClassFactory.transport_delegate = transport_delegate;
36     }
37 }