Lumiera  0.pre.03
»edit your freedom«
header-pane-widget.hpp
Go to the documentation of this file.
1 /*
2  HEADER-PANE-WIDGET.hpp - display pane for track headers within the timeline
3 
4  Copyright (C) Lumiera.org
5  2016, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
49 #ifndef STAGE_TIMELINE_HEADER_PANE_WIDGET_H
50 #define STAGE_TIMELINE_HEADER_PANE_WIDGET_H
51 
52 #include "stage/gtk-base.hpp"
55 #include "stage/style-scheme.hpp"
56 
57 
58 
59 namespace stage {
60 namespace timeline {
61 
62  using PAdjustment = Glib::RefPtr<Gtk::Adjustment>;
63 
64 
65  class TrackHeadWidget;
66 
67 
72  : public Gtk::Box
73  {
74  NavigatorWidget navigator_;
75  PatchbayWidget patchbay_;
76 
77  public:
78  ~HeaderPaneWidget() { }
79 
80  HeaderPaneWidget (PAdjustment const& vScroll)
81  : Gtk::Box{Gtk::ORIENTATION_VERTICAL}
82  , navigator_{}
83  , patchbay_{vScroll}
84  {
85  get_style_context()->add_class (CLASS_timeline_head);
86  this->pack_start (navigator_, Gtk::PACK_SHRINK);
87  this->pack_start (patchbay_, Gtk::PACK_EXPAND_WIDGET);
88  }
89 
95  void
97  {
98  patchbay_.installFork (rootTrackHead);
99  }
100 
101  void
102  disable()
103  {
104  patchbay_.disable();
105  }
106 
107 
108  private:/* ===== Internals ===== */
109 
110  };
111 
112 
113 }}// namespace stage::timeline
114 #endif /*STAGE_TIMELINE_HEADER_PANE_WIDGET_H*/
Header pane control area corresponding to a Track with nested child Tracks.
Widget to hold the track head controls within the timeline header pane UI.
void installForkRoot(TrackHeadWidget &rootTrackHead)
Initially install the root node of the track fork, which later can be extended recursively by adding ...
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:46
Header pane control area corresponding to a fork of nested tracks.
Definition of access keys for uniform UI styling.
A set of basic GTK includes for the UI.
void installFork(TrackHeadWidget &rootTrackHead)