diff options
author | Taybin Rutkin <taybin@taybin.com> | 2005-09-25 18:42:24 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2005-09-25 18:42:24 +0000 |
commit | 209d967b1bb80a9735d690d8f4f0455ecb9970ca (patch) | |
tree | 9d76ddcd7c1ac9d91bb2b1a33d31b66ce4ded5de /gtk2_ardour/marker_view.h | |
parent | e4b9aed743fc765219ac775905a221c017c88fba (diff) |
Initial import of gtk2_ardour.
git-svn-id: svn://localhost/trunk/ardour2@24 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/marker_view.h')
-rw-r--r-- | gtk2_ardour/marker_view.h | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/gtk2_ardour/marker_view.h b/gtk2_ardour/marker_view.h new file mode 100644 index 0000000000..fdd70ffb00 --- /dev/null +++ b/gtk2_ardour/marker_view.h @@ -0,0 +1,133 @@ +/* + Copyright (C) 2003 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + $Id$ +*/ + +#ifndef __gtk_ardour_marker_view_h__ +#define __gtk_ardour_marker_view_h__ + +#include <string> +#include <gtk--.h> +#include <gtk-canvas.h> +#include "time_axis_view_item.h" + +class MarkerTimeAxisView ; +class ImageFrameView ; + +/** + * MarkerView defines a marker item that may be placed upon a MarkerTimeAxis. + * + * The aim of the MarkerView is to provide additional timing details for visual based time axis. + * The MarkerView item is associated with one other TimeAxisViewItem and has a start and a duration. + */ +class MarkerView : public TimeAxisViewItem +{ + public: + //---------------------------------------------------------------------------------------// + // Constructor / Desctructor + + /** + * Constructs a new MarkerView + * + * @param parent the parent canvas item + * @param tv the parent TimeAxisView of this item + * @param marked the Item that this item is to be assciated (marking) with + * @param spu the current samples per unit + * @param base_color + * @param mark_type the marker type/name text, eg fade out, pan up etc. + * @param mark_id unique name/id of this item + * @param start the start time of this item + * @param duration the duration of this item + */ + MarkerView(GtkCanvasGroup *parent, + TimeAxisView *tv, + ImageFrameView* marked, + double spu, + GdkColor& base_color, + std::string mark_type, + std::string mark_id, + jack_nframes_t start, + jack_nframes_t duration) ; + + /** + * Destructor + * Destroys this Marker Item and removes the association between itself and the item it is marking. + */ + ~MarkerView() ; + + static SigC::Signal1<void,MarkerView*> GoingAway; + + //---------------------------------------------------------------------------------------// + // Marker Type Methods + + /** + * Sets the marker Type text of this this MarkerItem, eg fade_out, pan up etc. + * + * @param type_text the marker type text of this item + */ + void set_mark_type_text(std::string type_text) ; + + /** + * Returns the marker Type of this this MarkerItem, eg fade_out, pan up etc. + * + * @return the marker type text of this item + */ + std::string get_mark_type_text() const ; + + + //---------------------------------------------------------------------------------------// + // Marked Item Methods + + /** + * Returns the time axis item being marked by this item + * + * @return the time axis item being marked by this item + */ + ImageFrameView* get_marked_item() ; + + /** + * Sets the time axis item being marker by this item + * + * @param item the time axis item to be marked by this item + * @return the previously marked item, or 0 if no previous marked item exists + */ + ImageFrameView* set_marked_item(ImageFrameView* item) ; + + //---------------------------------------------------------------------------------// + // Emitted Signals + + /** Emitted when the mark type text is changed */ + SigC::Signal2<void,std::string,void*> MarkTypeChanged ; + + /** Emitted when the Marked Item is changed */ + SigC::Signal2<void,ImageFrameView*,void*> MarkedItemChanged ; + + + protected: + + private: + /** the unique name/id of this item */ + std::string mark_type_text ; + + /* a pointer to the time axis item this marker is assoiated(marking up) with */ + ImageFrameView* marked_item ; + +} ; /* class MarkerView */ + + +#endif /* __gtk_ardour_imageframe_view_h__ */ |