diff --git a/src/stage/timeline/stave-bracket-widget.cpp b/src/stage/timeline/stave-bracket-widget.cpp new file mode 100644 index 000000000..d3f0fe64a --- /dev/null +++ b/src/stage/timeline/stave-bracket-widget.cpp @@ -0,0 +1,73 @@ +/* + StaveBracketWidget - track body area to show overview and timecode and markers + + Copyright (C) Lumiera.org + 2023, Hermann Vosseler + + 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 stave-bracket-widget.cpp + ** Implementation of drawing code to indicate the structure of nested tracks + ** in the header area of the Timleline UI. + ** + ** @todo WIP-WIP-WIP as of 2/2023 + ** + */ + + +#include "stage/timeline/stave-bracket-widget.hpp" +//#include "stage/style-scheme.hpp" /////////////////////TODO needed? +//#include "lib/util.hpp" + +//#include +//#include + + + +//using util::_Fmt; +//using util::isnil; +//using util::contains; +//using Gtk::Widget; +//using sigc::mem_fun; +//using sigc::ptr_fun; +//using std::cout; +//using std::endl; + + +namespace stage { +namespace timeline { + + namespace { + } + + + + + StaveBracketWidget::StaveBracketWidget () + : DrawingArea{} + { } + + + StaveBracketWidget::~StaveBracketWidget() { } + + + /** */ + + + +}}// namespace stage::timeline diff --git a/src/stage/timeline/stave-bracket-widget.hpp b/src/stage/timeline/stave-bracket-widget.hpp new file mode 100644 index 000000000..0c25bd9a4 --- /dev/null +++ b/src/stage/timeline/stave-bracket-widget.hpp @@ -0,0 +1,78 @@ +/* + STAVE-BRACKET-WIDGET.hpp - draw connector to indicate nested track structure + + Copyright (C) Lumiera.org + 2023, Hermann Vosseler + + 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 stave-bracket-widget.hpp + ** Widget to group tracks visually in the Timeline presentation. + ** The TrackHeadWidget is structured according to the nested structure of tracks + ** in the Fork, using nested widgets to represent sub-tracks; in the grid's first column + ** a graphical structure is rendered to indicate the nesting and connectivity of tracks. + ** While based on few rather simple visual primitives, this structure need to adapt to + ** the actual space allocation and positioning of sub-tracks in the layout; technicalities + ** of actual drawing this structure is abstracted into this custom widget — allowing the + ** track head to indicate the necessary layout constraints generic and recursively. + ** + ** @todo WIP-WIP-WIP as of 2/2023 + ** + */ + + +#ifndef STAGE_TIMELINE_STAVE_BRACKET_WIDGET_H +#define STAGE_TIMELINE_STAVE_BRACKET_WIDGET_H + +#include "stage/gtk-base.hpp" +//#include "stage/model/controller.hpp" + +//#include "lib/util.hpp" + +//#include +//#include + + + +namespace stage { +namespace timeline { + +// class TrackPresenter; + + + /** + * Helper widget to handle display of the structure of track nesting in the timeline + * header pane. For each TrackHeadWidget, the connected cells in the first grid column + * are populated with this component, indicating connectivity and layout constraints. + * The actual drawing is based on Cairo, and implemented in the virtual draw() function. + */ + class StaveBracketWidget + : public Gtk::DrawingArea + { + public: + ~StaveBracketWidget(); + + StaveBracketWidget (); + + private:/* ===== Internals ===== */ + + }; + + +}}// namespace stage::timeline +#endif /*STAGE_TIMELINE_STAVE_BRACKET_WIDGET_H*/ diff --git a/src/stage/timeline/track-head-widget.hpp b/src/stage/timeline/track-head-widget.hpp index 5b44c7ac0..4f506faf3 100644 --- a/src/stage/timeline/track-head-widget.hpp +++ b/src/stage/timeline/track-head-widget.hpp @@ -50,6 +50,7 @@ #include "stage/ctrl/bus-term.hpp" #include "stage/model/view-hook.hpp" #include "stage/widget/element-box-widget.hpp" +#include "stage/timeline/stave-bracket-widget.hpp" diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 9ea9d8a83..5b1bea6e3 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -21167,9 +21167,9 @@ - - - + + + @@ -24677,7 +24677,7 @@ - + @@ -27835,20 +27835,22 @@ - + - + - - - - + + + + + + @@ -27922,9 +27924,9 @@ - - - + + + @@ -27942,7 +27944,35 @@ - + + + + + + + + + +

+ �� das ist kein Fehler...
Da sie zuerst eingefügt + werden, und ohne vexpand() niemals zusätzlichen Platz aufgreifen, wird + das Grid insgesamt nur so hoch wie minimal nötig, und jedwedes + Alignment-Setting auf der Zelle mit den Placement-Controls bleibt + wirkungslos; anschließend wird die zusätzliche Zeile eingefügt und + aufgespreitzt, um den Kind-Navigationsbereich auf den Level des ersten + Kind-tracks runter zu drücken +

+ +
+
+ + + + + +
+ + @@ -27964,10 +27994,69 @@ + + + + + + + + + + + + + + + + +

+ In Anspielung auf +

+
    +
  • + eine Leiter +
  • +
  • + ein Notensystem (stave) +
  • +
+

+ (*) stave ist zwar selterner und ausgeprägt Brittisch, staff  wäre geläufiger. Aber staff versteht man heutzutage als Personal, wohingegen stave auch die Leitersprosse sein könnte (BE und AE) +

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -29390,7 +29479,7 @@
- + @@ -34525,10 +34614,10 @@ - + - + @@ -34866,10 +34955,17 @@ - + - - + + + + + + + + +