2 Copyright (C) 2003 Paul Davis
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 #ifndef __gtk_ardour_marker_view_h__
22 #define __gtk_ardour_marker_view_h__
25 #include "time_axis_view_item.h"
33 class MarkerTimeAxisView ;
34 class ImageFrameView ;
37 * MarkerView defines a marker item that may be placed upon a MarkerTimeAxis.
39 * The aim of the MarkerView is to provide additional timing details for visual based time axis.
40 * The MarkerView item is associated with one other TimeAxisViewItem and has a start and a duration.
42 class MarkerView : public TimeAxisViewItem
45 //---------------------------------------------------------------------------------------//
46 // Constructor / Desctructor
49 * Constructs a new MarkerView
51 * @param parent the parent canvas item
52 * @param tv the parent TimeAxisView of this item
53 * @param marked the Item that this item is to be assciated (marking) with
54 * @param spu the current samples per unit
56 * @param mark_type the marker type/name text, eg fade out, pan up etc.
57 * @param mark_id unique name/id of this item
58 * @param start the start time of this item
59 * @param duration the duration of this item
61 MarkerView(ArdourCanvas::Group *parent,
63 ImageFrameView* marked,
65 Gdk::Color& base_color,
66 std::string mark_type,
73 * Destroys this Marker Item and removes the association between itself and the item it is marking.
77 static sigc::signal<void,MarkerView*> GoingAway;
79 //---------------------------------------------------------------------------------------//
80 // Marker Type Methods
83 * Sets the marker Type text of this this MarkerItem, eg fade_out, pan up etc.
85 * @param type_text the marker type text of this item
87 void set_mark_type_text(std::string type_text) ;
90 * Returns the marker Type of this this MarkerItem, eg fade_out, pan up etc.
92 * @return the marker type text of this item
94 std::string get_mark_type_text() const ;
97 //---------------------------------------------------------------------------------------//
98 // Marked Item Methods
101 * Returns the time axis item being marked by this item
103 * @return the time axis item being marked by this item
105 ImageFrameView* get_marked_item() ;
108 * Sets the time axis item being marker by this item
110 * @param item the time axis item to be marked by this item
111 * @return the previously marked item, or 0 if no previous marked item exists
113 ImageFrameView* set_marked_item(ImageFrameView* item) ;
115 //---------------------------------------------------------------------------------//
118 /** Emitted when the mark type text is changed */
119 sigc::signal<void,std::string,void*> MarkTypeChanged ;
121 /** Emitted when the Marked Item is changed */
122 sigc::signal<void,ImageFrameView*,void*> MarkedItemChanged ;
128 /** the unique name/id of this item */
129 std::string mark_type_text ;
131 /* a pointer to the time axis item this marker is assoiated(marking up) with */
132 ImageFrameView* marked_item ;
134 } ; /* class MarkerView */
137 #endif /* __gtk_ardour_imageframe_view_h__ */