Timeline: control alignment to sub-tracks through additional padding
...a huge improvement; however, it becomes obiouvs now that we'll have to deal specifically with the root track ruler canvas and "prelude" padding...
This commit is contained in:
parent
b38481fa89
commit
9bfae3cee1
5 changed files with 152 additions and 8 deletions
|
|
@ -121,7 +121,9 @@ namespace timeline {
|
|||
void accommodateContentHeight(uint contentExtension);
|
||||
uint DEBUGconH() const { return contentHeight_;}////////////////////////////////////TODO
|
||||
|
||||
uint getContentOffsetY() { return startLine_ + contentOffset_; }
|
||||
uint getContentOffsetY() const { return startLine_ + contentOffset_; }
|
||||
uint getOwnContentHeight() const { return contentOffset_ + contentHeight_
|
||||
+ decoration.content - decoration.trackPad; }
|
||||
|
||||
DisplayManager::SignalStructureChange signalStructureChange_;
|
||||
|
||||
|
|
|
|||
|
|
@ -163,6 +163,21 @@ cout<<"|+| Head:inc ("<<left<<","<<top<<") h="<<h<<" ⟶ "<<height<<" vor:"<<hvo
|
|||
enforceExpansionHeight (overallHeight - getLabelHeight());
|
||||
}
|
||||
|
||||
/**
|
||||
* The first part of each track's display relates to the direct content;
|
||||
* below that area, the content of sub-tracks may be added. This function
|
||||
* possibly adds further padding to shift the sub-track headers down
|
||||
* to correspond to the display of the sub track body content.
|
||||
* @param directHeight the vertical space to use for direct content
|
||||
*/
|
||||
void
|
||||
TrackHeadWidget::syncSubtrackStartHeight (uint directHeight)
|
||||
{
|
||||
uint localHeight = getContentHeight() + getLabelHeight();
|
||||
if (directHeight > localHeight)
|
||||
enforceSyncPadHeight (directHeight - localHeight);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ namespace timeline {
|
|||
|
||||
void accommodateContentHeight(uint);
|
||||
void accommodateOverallHeight(uint);
|
||||
void syncSubtrackStartHeight (uint);
|
||||
|
||||
private:/* ===== Internals ===== */
|
||||
|
||||
|
|
@ -126,6 +127,7 @@ namespace timeline {
|
|||
uint getLabelHeight() const { return getHeightAt (0,0); };
|
||||
|
||||
void enforceContentHeight (uint h){ enforceHeightAt (1,1, h); }
|
||||
void enforceSyncPadHeight (uint h){ enforceHeightAt (1,2, h); }
|
||||
void enforceExpansionHeight(uint h){ enforceHeightAt (0,1, h); }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -513,13 +513,15 @@ cout<<"|*| establishExtension(clipH="<<bodyH<<" headH="<<headH<<" max="<<maxVSiz
|
|||
{
|
||||
uint headSize = head_.getOverallHeight();
|
||||
uint bodySize = body_.calcHeight();
|
||||
if (bodySize > headSize)
|
||||
uint directH = body_.getOwnContentHeight();
|
||||
//if (bodySize > headSize)
|
||||
{//////////////////////////////////////////////////////TODO
|
||||
uint hcV = head_.getContentHeight();
|
||||
head_.accommodateOverallHeight (bodySize);
|
||||
head_.syncSubtrackStartHeight (directH);
|
||||
head_.accommodateOverallHeight (bodySize);
|
||||
uint hN = head_.getOverallHeight();
|
||||
uint hcN = head_.getContentHeight();
|
||||
cout<<"|+| syncBal: head="<<headSize<<" body="<<bodySize<<" Δ="<<bodySize-headSize<<" hN="<<hN<<"(c:"<<hcV<<"⟶"<<hcN<<")"<<endl;
|
||||
cout<<"|+| syncBal: head="<<headSize<<" body="<<bodySize<<"(dir:"<<directH<<") Δ="<<bodySize-headSize<<" hN="<<hN<<"(c:"<<hcV<<"⟶"<<hcN<<")"<<endl;
|
||||
}//////////////////////////////////////////////////////TODO
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27803,8 +27803,8 @@
|
|||
<linktarget COLOR="#f6e1c2" DESTINATION="ID_530086217" ENDARROW="Default" ENDINCLINATION="-366;30;" ID="Arrow_ID_694017211" SOURCE="ID_1463490313" STARTARROW="None" STARTINCLINATION="-2163;252;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1563469700651" ID="ID_478580800" MODIFIED="1674161457707" TEXT="auf die richtige Höhe zielen">
|
||||
<linktarget COLOR="#bf7897" DESTINATION="ID_478580800" ENDARROW="Default" ENDINCLINATION="451;41;" ID="Arrow_ID_513449931" SOURCE="ID_1311832889" STARTARROW="None" STARTINCLINATION="481;-27;"/>
|
||||
<linktarget COLOR="#5ba7d5" DESTINATION="ID_478580800" ENDARROW="Default" ENDINCLINATION="358;-30;" ID="Arrow_ID_776518349" SOURCE="ID_904031404" STARTARROW="None" STARTINCLINATION="-77;131;"/>
|
||||
<linktarget COLOR="#bf7897" DESTINATION="ID_478580800" ENDARROW="Default" ENDINCLINATION="451;41;" ID="Arrow_ID_513449931" SOURCE="ID_1311832889" STARTARROW="None" STARTINCLINATION="481;-27;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1563469735149" ID="ID_704791408" MODIFIED="1563469741153" TEXT="Selection-State zeigen">
|
||||
|
|
@ -29320,14 +29320,137 @@
|
|||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1674172473327" ID="ID_1376269414" MODIFIED="1674172528937" TEXT="Beginn der nested-Tracks koordinieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1674172473327" ID="ID_1376269414" MODIFIED="1674347900406" TEXT="Beginn der nested-Tracks koordinieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1674172530639" ID="ID_1531517037" MODIFIED="1674172537538" TEXT="sie beginnen typischerweise zu früh"/>
|
||||
<node CREATED="1674172548813" ID="ID_53484260" MODIFIED="1674172558839" TEXT="Padding für die Content-Höhe genügt nicht"/>
|
||||
<node CREATED="1674345881143" ID="ID_1661063602" MODIFIED="1674345967809" TEXT="TrackBody kann das aber berechnen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...und zwar über den contentOffset, der relativ zur Start-Zeile gemessen wird, sowie der direkten ContentHeight, zuzüglich Padding
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1674172566487" ID="ID_1608232649" MODIFIED="1674172575495" TEXT="Diskrepanz sinnvoll einbringen">
|
||||
<node COLOR="#435e98" CREATED="1674172577081" ID="ID_1556472546" MODIFIED="1674254503089" TEXT="Höhe insgesamt ⟼ Struktur-Spalte"/>
|
||||
<node CREATED="1674172577081" ID="ID_902379987" MODIFIED="1674247020264" TEXT="Synchronisation ⟼ padding nach direct content"/>
|
||||
<node COLOR="#435e98" CREATED="1674172577081" ID="ID_902379987" MODIFIED="1674347889053" TEXT="Synchronisation ⟼ padding nach direct content"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1674347903812" ID="ID_1742313131" MODIFIED="1674348450808" TEXT="Höhenberechnung im TrackBody unvollständig">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1674347924697" ID="ID_1440620020" MODIFIED="1674348439431" TEXT="Probleme">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1674347929637" ID="ID_1693517831" MODIFIED="1674347942830" TEXT="der separate Ruler-Canvas wird nicht berücksichtigt">
|
||||
<node CREATED="1674350584579" ID="ID_1671695186" MODIFIED="1674350589304" TEXT="wie groß?">
|
||||
<node CREATED="1674350590559" ID="ID_1966298653" MODIFIED="1674351114799" TEXT="11px == decoration.topMar">
|
||||
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_354285269" ENDARROW="Default" ENDINCLINATION="70;0;" ID="Arrow_ID_1818076269" STARTARROW="None" STARTINCLINATION="-79;8;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1674354054786" ID="ID_1551678224" MODIFIED="1674354124203" TEXT="aber: er fehlt nur im contentOffset und im Gesamtergebnis (line = res)"/>
|
||||
<node CREATED="1674354075442" ID="ID_1951685087" MODIFIED="1674354088196" TEXT="in die Größe werden zumindest die Ruler korrekt mit eingerechnet"/>
|
||||
</node>
|
||||
<node CREATED="1674347946242" ID="ID_1905901999" MODIFIED="1674347965339" TEXT="der Margin für Prelude / Postlude wird nicht berücksichtigt">
|
||||
<node CREATED="1674353995316" ID="ID_1351496959" MODIFIED="1674354004872" TEXT="das ist ein generelles Problem"/>
|
||||
<node CREATED="1674354005689" ID="ID_374452100" MODIFIED="1674354012709" TEXT="aber gewissermaßen auch logisch"/>
|
||||
<node CREATED="1674354013794" ID="ID_26588386" MODIFIED="1674354028708" TEXT="Prelude wird eben nicht zur Größe des Root-Track gerechnet"/>
|
||||
</node>
|
||||
<node CREATED="1674347969175" ID="ID_1910872157" MODIFIED="1674347994788" TEXT="die Slope-down/up wird nicht berücksichtigt"/>
|
||||
</node>
|
||||
<node CREATED="1674351098493" ID="ID_894959453" MODIFIED="1674351101849" TEXT="Beobachtung">
|
||||
<node CREATED="1674350941467" ID="ID_1826693009" MODIFIED="1674350945974" TEXT="decoration">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1674350951914" ID="ID_106173502" MODIFIED="1674350955686" TEXT="content = 42"/>
|
||||
<node CREATED="1674350959876" ID="ID_1487607693" MODIFIED="1674350963292" TEXT="ruler = 28"/>
|
||||
<node CREATED="1674350967152" ID="ID_354285269" MODIFIED="1674351114799" TEXT="topMar = 11">
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_354285269" ENDARROW="Default" ENDINCLINATION="70;0;" ID="Arrow_ID_1818076269" SOURCE="ID_1966298653" STARTARROW="None" STARTINCLINATION="-79;8;"/>
|
||||
</node>
|
||||
<node CREATED="1674350972480" ID="ID_1303308489" MODIFIED="1674350984992" TEXT="botMar = 11"/>
|
||||
<node CREATED="1674350985965" ID="ID_13244002" MODIFIED="1674351218230" TEXT="trackPad = 21">
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_13244002" ENDARROW="Default" ENDINCLINATION="66;0;" ID="Arrow_ID_90576593" SOURCE="ID_1917807649" STARTARROW="None" STARTINCLINATION="66;0;"/>
|
||||
</node>
|
||||
<node CREATED="1674351003803" ID="ID_291429640" MODIFIED="1674351018789" TEXT="borders = [5,5,10,14,17,20]"/>
|
||||
</node>
|
||||
<node CREATED="1674351179091" ID="ID_1301058819" MODIFIED="1674351189821" TEXT="root-track">
|
||||
<node CREATED="1674351117941" ID="ID_546308961" MODIFIED="1674351196739" TEXT="Track content-height: contentHeight + decoration.content = 40+42 = 82"/>
|
||||
<node CREATED="1674351205888" ID="ID_1917807649" MODIFIED="1674351218230" TEXT="contentOffset = 21">
|
||||
<arrowlink DESTINATION="ID_13244002" ENDARROW="Default" ENDINCLINATION="66;0;" ID="Arrow_ID_90576593" STARTARROW="None" STARTINCLINATION="66;0;"/>
|
||||
</node>
|
||||
<node CREATED="1674352921149" ID="ID_1580223577" MODIFIED="1674352942925" TEXT="danach: line =169">
|
||||
<linktarget COLOR="#30a7c5" DESTINATION="ID_1580223577" ENDARROW="Default" ENDINCLINATION="138;4;" ID="Arrow_ID_352754066" SOURCE="ID_1287712179" STARTARROW="None" STARTINCLINATION="138;4;"/>
|
||||
</node>
|
||||
<node CREATED="1674353017672" ID="ID_1991251821" MODIFIED="1674353037386" TEXT="+slopeup ⟼ 174"/>
|
||||
<node CREATED="1674353017672" ID="ID_1761513033" MODIFIED="1674353075157" TEXT="+coda ⟼ 190"/>
|
||||
</node>
|
||||
<node CREATED="1674352771789" ID="ID_1103517565" MODIFIED="1674352775750" TEXT="sub-track">
|
||||
<node CREATED="1674352788969" ID="ID_961058180" MODIFIED="1674352794647" TEXT="startLine_ = 87"/>
|
||||
<node CREATED="1674352777377" ID="ID_1184947760" MODIFIED="1674352781866" TEXT="contentOffset = 21"/>
|
||||
<node CREATED="1674352814630" ID="ID_59687" MODIFIED="1674352825233" TEXT="content-heigt: ebenfalls 82"/>
|
||||
<node CREATED="1674352856355" ID="ID_1287712179" MODIFIED="1674352947649" TEXT="line (=res) : 82">
|
||||
<arrowlink COLOR="#30a7c5" DESTINATION="ID_1580223577" ENDARROW="Default" ENDINCLINATION="138;4;" ID="Arrow_ID_352754066" STARTARROW="None" STARTINCLINATION="138;4;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1674348025640" ID="ID_565643095" MODIFIED="1674348439417" TEXT="Komplikationen">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1674348030567" ID="ID_493716565" MODIFIED="1674348045940" TEXT="Prelude / Postlude und Ruler-Canvas treten nur beim Root-Track auf">
|
||||
<node CREATED="1674348203360" ID="ID_1395576616" MODIFIED="1674348210235" TEXT="aber ein Track weiß nicht, daß er Root ist"/>
|
||||
</node>
|
||||
<node CREATED="1674348164550" ID="ID_1253760936" MODIFIED="1674348183015" TEXT="Slope-down/up wird im Parent-Track gesteuert">
|
||||
<node CREATED="1674348231749" ID="ID_1598827658" MODIFIED="1674348251134" TEXT="dieser Offset kann daher nicht in der Höhe der Kind-Track(s) eingerechnet werden"/>
|
||||
<node CREATED="1674348290385" ID="ID_676814617" MODIFIED="1674348324132" TEXT="d.h. bei mehreren Sub-Tracks rutschen wir genau um diesen Betrag nach oben"/>
|
||||
<node CREATED="1674353927071" ID="ID_1407468447" MODIFIED="1674353940500" TEXT="und zwar einmal pro rekursiv verschachtelte Ebene">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1674354159742" ID="ID_1940678452" MODIFIED="1674354167495" TEXT="Korrekturen bewerkstelligen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1674354169058" ID="ID_533240449" MODIFIED="1674354177538" TEXT="brauche Spezialbehandlung für den Root-Track">
|
||||
<node CREATED="1674354205168" ID="ID_85048363" MODIFIED="1674354255720" TEXT="Gesamtgröße muß Ruler + prelude berücksichtigen"/>
|
||||
<node CREATED="1674354306149" ID="ID_633496997" MODIFIED="1674354320837" TEXT="sub-track-offset muß Ruler + prelude berücksichtigen"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1674402568327" ID="ID_219579639" MODIFIED="1674402863060" TEXT="wo ist diese Korrektur logisch sinnvoll angesiedelt?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1674402620527" ID="ID_1633544285" MODIFIED="1674402871728" TEXT="sie bricht den strikten Bezug auf Canvas-Koordinaten und jeweils einen Track">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
das Präludium gehört nicht zum Track, und für alle sonstigen Größenangaben gilt ein unmittelbarer Bezug auf die Canvas-Koordinaten; diese gelten <i>lokal für den Canvas</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1674402875129" ID="ID_1857367288" MODIFIED="1674402942310" TEXT="allerdings: der einzelne Track sollte seine Position im Gesamtgefüge nicht kennen">
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1674403069412" ID="ID_1314616447" MODIFIED="1674403080890" TEXT="was muß den genau korrigiert werden?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1674403082049" ID="ID_1078734632" MODIFIED="1674403088307" TEXT="es ist mehrerlei...">
|
||||
<node CREATED="1674403090200" ID="ID_615803349" MODIFIED="1674403095202" TEXT="Prelude"/>
|
||||
<node CREATED="1674403096199" ID="ID_1911972979" MODIFIED="1674403209258" TEXT="Ruler">
|
||||
<arrowlink COLOR="#eb4c4e" DESTINATION="ID_515096270" ENDARROW="Default" ENDINCLINATION="-4;-9;" ID="Arrow_ID_1857436745" STARTARROW="None" STARTINCLINATION="9;-2;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1674403142108" ID="ID_515096270" MODIFIED="1674403209258" TEXT="das Auslassen der Ruler stellt einen Bruch des Contract dar">
|
||||
<linktarget COLOR="#eb4c4e" DESTINATION="ID_515096270" ENDARROW="Default" ENDINCLINATION="-4;-9;" ID="Arrow_ID_1857436745" SOURCE="ID_1911972979" STARTARROW="None" STARTINCLINATION="9;-2;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1674354327207" ID="ID_1319790306" MODIFIED="1674354353280" TEXT="sub-track-offset muß slope-down mit einschließen">
|
||||
<node CREATED="1674354364930" ID="ID_697232508" MODIFIED="1674354376797" TEXT="und zwar genau einmal, und nur wenn es nested Tracks gibt"/>
|
||||
<node CREATED="1674354383601" ID="ID_345455776" MODIFIED="1674354396562" TEXT="slope-up kann uns egal sein (ist in der Gesamtgröße mit dabei)"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue