diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index a63f5d1db..88b8ae341 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -120,6 +120,8 @@ gtk_gui_la_SOURCES = \ $(lumigui_srcdir)/widgets/timeline/timeline-clip-track.hpp \ $(lumigui_srcdir)/widgets/timeline/timeline-clip.cpp \ $(lumigui_srcdir)/widgets/timeline/timeline-clip.hpp \ + $(lumigui_srcdir)/widgets/timeline/timeline-entity.cpp \ + $(lumigui_srcdir)/widgets/timeline/timeline-entity.hpp \ $(lumigui_srcdir)/widgets/timeline/timeline-group-track.cpp \ $(lumigui_srcdir)/widgets/timeline/timeline-group-track.hpp \ $(lumigui_srcdir)/widgets/timeline/timeline-header-container.cpp \ diff --git a/src/gui/widgets/timeline/timeline-clip.cpp b/src/gui/widgets/timeline/timeline-clip.cpp index a3f847cc8..e7d95fb3a 100644 --- a/src/gui/widgets/timeline/timeline-clip.cpp +++ b/src/gui/widgets/timeline/timeline-clip.cpp @@ -27,7 +27,8 @@ namespace widgets { namespace timeline { Clip::Clip(boost::shared_ptr clip) - : modelClip(clip), + : Entity(), + modelClip(clip), selected(false) { REQUIRE(modelClip); diff --git a/src/gui/widgets/timeline/timeline-clip.hpp b/src/gui/widgets/timeline/timeline-clip.hpp index 4937e38bc..9a8cceff9 100644 --- a/src/gui/widgets/timeline/timeline-clip.hpp +++ b/src/gui/widgets/timeline/timeline-clip.hpp @@ -27,8 +27,9 @@ #include "gui/gtk-lumiera.hpp" #include "gui/model/clip.hpp" -#include "timeline-view-window.hpp" #include "include/logging.h" +#include "timeline-entity.hpp" +#include "timeline-view-window.hpp" #ifndef TIMELINE_CLIP_HPP #define TIMELINE_CLIP_HPP @@ -37,7 +38,7 @@ namespace gui { namespace widgets { namespace timeline { - class Clip : public model::Clip + class Clip : public Entity { public: Clip(boost::shared_ptr clip); diff --git a/src/gui/widgets/timeline/timeline-entity.cpp b/src/gui/widgets/timeline/timeline-entity.cpp new file mode 100644 index 000000000..55229b85b --- /dev/null +++ b/src/gui/widgets/timeline/timeline-entity.cpp @@ -0,0 +1,36 @@ +/* + timeline-entity.cpp - Implementation of the timeline entity object + + Copyright (C) Lumiera.org + 2010, Stefan Kangas + + 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. + +* *****************************************************/ +/** @file timeline-entity.hpp + ** Declares the Timeline Entity class. + */ + +#ifndef TIMELINE_ENTITY_HPP +#define TIMELINE_ENTITY_HPP + +namespace gui { +namespace widgets { +namespace timeline { + + /** + * Base class for timeline entities. + * Everything that can be placed on the timeline is a timeline Entity. + */ + class Entity { + protected: + + /** + * Constructor + */ + Entity(); + + public: + + /** + * + */ + bool + getEnabled(); + + /** + * + */ + void + setEnabled(bool selected); + + private: + + /** + * True when this entity is enabled. + */ + bool enabled; + }; + +} // namespace timeline +} // namespace widgets +} // namespace gui + +#endif // TIMELINE_ENTITY_HPP