lumiera_/src/gui/timeline/timeline-widget-empty.hpp
Ichthyostega 14588dbc19 clarify the principles of UI - Core collaboration
it occurred to me that effectively we abandoned the use of
a business facade and proxy model in the UI. The connection
becomes entirely message based now.

To put that into context, the originally intended architecture
never came to life. The UI development stalled before this could
happen; possibly it was also hampered by the "impedance mismatch"
between our intentions in the core and such a classical, model centric
architecture. Joel several times complained that he felt blocked; but
I did not really understand this issue. Only recently, when I came to
adapting the timeline display to GTK-3, I realised the model centric
approach can not possibly work with such an open model as intended
in our case. It would lead to endless cascades of introspection.
2016-12-02 20:07:31 +01:00

82 lines
2.3 KiB
C++

/*
TIMELINE-WIDGET-EMPTY.hpp - placeholder widget for a missing timeline
Copyright (C) Lumiera.org
2016, Hermann Vosseler <Ichthyostega@web.de>
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-widget-empty.hpp
** Empty placeholder to be rendered when the UI starts without session.
** The TimelinePannel represents the [model root](\ref mobject::session::Root) and thus
** has the responsibility to manage the individual TimelineWidget instances. In case the
** UI is started with no usable session loaded in Proc-Layer, this empty placeholder widget
** can be inserted.
**
** @todo as of 12/2016 a complete rework of the timeline display is underway
**
*/
#ifndef GUI_TIMELINE_TIMELINE_WIDGET_EMPTY_H
#define GUI_TIMELINE_TIMELINE_WIDGET_EMPTY_H
#include "gui/gtk-base.hpp"
#include "lib/time/timevalue.hpp"
//#include <memory>
//#include <vector>
namespace gui {
namespace timeline {
/**
* Core timeline display (custom widget).
* @todo WIP-WIP-rewrite as of 12/2016
* @remarks At top level, this widget is split into a header pane (left)
* and a scrollable timeline body (right). The layout of both parts is aligned.
*/
class TimelineWidgetEmpty
{
public:
/**
* @param source_state state to be used used as the
* data source (model) for this timeline widget.
*/
TimelineWidgetEmpty();
~TimelineWidgetEmpty();
public: /* ===== Control interface ===== */
public: /* ===== Signals ===== */
private:/* ===== Events ===== */
private:/* ===== Internals ===== */
};
}}// namespace gui::timeline
#endif /*GUI_TIMELINE_TIMELINE_WIDGET_EMPTY_H*/