diff --git a/src/stage/timeline/body-canvas-widget.cpp b/src/stage/timeline/body-canvas-widget.cpp index 347bc820c..7a1f7632e 100644 --- a/src/stage/timeline/body-canvas-widget.cpp +++ b/src/stage/timeline/body-canvas-widget.cpp @@ -235,13 +235,6 @@ namespace timeline { - TimelineCanvas::TimelineCanvas (_Renderer groundingFac, _Renderer overlayFac) - : Gtk::Layout{} - , renderGrounding_{groundingFac} - , renderOverlay_{overlayFac} - { } - - BodyCanvasWidget::~BodyCanvasWidget() { } @@ -308,6 +301,15 @@ namespace timeline { } + + + TimelineCanvas::TimelineCanvas (_Renderer groundingFac, _Renderer overlayFac) + : Gtk::Layout{} + , renderGrounding_{groundingFac} + , renderOverlay_{overlayFac} + { } + + /** * Custom drawing of the timeline content area. * The inherited `Gtk::Layout::on_raw(Context)` handles all drawing of child widgets placed onto the virtual canvas. diff --git a/src/stage/timeline/track-body.cpp b/src/stage/timeline/track-body.cpp index eda4bce14..0034c78d8 100644 --- a/src/stage/timeline/track-body.cpp +++ b/src/stage/timeline/track-body.cpp @@ -118,9 +118,8 @@ namespace timeline { TrackBody::establishTrackSpace (TrackProfile& profile) { bool topLevel = isnil (profile); - if (topLevel) - profile.append_prelude(rulers_.size()); + profile.append_prelude (rulers_.size()); for (auto& ruler : rulers_) { @@ -130,7 +129,7 @@ namespace timeline { profile.append_gap (gapHeight); } profile.append_content (this->contentHeight_); - if (not isnil(subTracks_)) + if (not isnil (subTracks_)) { profile.addSlopeDown(); for (TrackBody* subTrack : subTracks_) @@ -139,7 +138,7 @@ namespace timeline { } if (topLevel) - profile.append_coda(TIMELINE_BOTTOM_PADDING_px); + profile.append_coda (TIMELINE_BOTTOM_PADDING_px); } diff --git a/src/stage/timeline/track-presenter.cpp b/src/stage/timeline/track-presenter.cpp index 484e79e12..47c807fa6 100644 --- a/src/stage/timeline/track-presenter.cpp +++ b/src/stage/timeline/track-presenter.cpp @@ -23,6 +23,10 @@ /** @file track-presenter.cpp ** Implementation details of track presentation management. + ** Especially here we define the model binding of all sub-elements belonging + ** to a given track. The TrackPresenter::buildMutator() implementation hooks up + ** the necessary callbacks, to allow adding and removing of sub elements and properties + ** of a track, by sending appropriate _mutation messages_ over the stage::UiBus. ** ** @todo WIP-WIP-WIP as of 12/2016 ** @todo as of 10/2018 timeline display in the UI is rebuilt to match the architecture diff --git a/src/stage/timeline/track-presenter.hpp b/src/stage/timeline/track-presenter.hpp index d3ca05c9a..fa12b241c 100644 --- a/src/stage/timeline/track-presenter.hpp +++ b/src/stage/timeline/track-presenter.hpp @@ -93,7 +93,7 @@ namespace timeline { ~DisplayFrame() { TODO ("cause the managed presentation elements to detach from their parents"); - } + } ///////////////////////////////////TICKET #1198 -- clarify to what extent esp. the header widgets need to be actively removed from the display structure. Is it sufficient just to kill the TrackHeadWidget void setTrackName (cuString& name) diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index a2e6f24f1..2972e86db 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -88,7 +88,7 @@ - + @@ -134,8 +134,7 @@ - - + @@ -160,8 +159,7 @@ Ganz anders Model::Tangible: dieses registriert sich bei der Konstruktion

- - +
@@ -177,8 +175,7 @@ aber so herum macht es mehr Sinn

- - +
@@ -231,8 +228,7 @@ BusTerm, das damit Nachrichten an den Nexus schicken kann.

- - +
@@ -272,8 +268,7 @@ Wartet nur noch auf proof-of-concept (DemoGuiRoundtrip)

- - + @@ -288,8 +283,7 @@ aber nur via einfacher "uplink"-Verbindung

- -
+
@@ -392,8 +386,7 @@ Term-Signal nicht ausgesendet würde.

- - +
@@ -485,8 +478,7 @@ Anmerkung: ein "frestehendes" BusTerm ist valide und zugelassen, es hat halt nur eine uplink-Connection.

- - +
@@ -501,8 +493,7 @@ es muß dazu auch jede Menge Methoden implementieren.

- -
+
@@ -631,8 +622,7 @@ Ein zu früher bzw. zu später Aufruf "fällt einfach hinten runter"

- - +
@@ -701,8 +691,7 @@ dann kann der Shutdown-Prozeß den Start des GUI überholen.

- - + @@ -905,7 +894,7 @@ - + @@ -3947,8 +3936,7 @@ indem wir ein GTK-Signal erzeugen, das das Hauptfenster schließt

- - + @@ -5477,8 +5465,7 @@ - - + @@ -5511,8 +5498,7 @@ - - + @@ -5537,8 +5523,7 @@ vorbereitete Grundstrukturen für immer wiederkehrende Setups

- - + @@ -5746,8 +5731,7 @@ Im Zweifelsfall den GTK+ Inspector verwenden!

- - +
@@ -5776,8 +5760,7 @@ CSS genügt

- - +
@@ -5825,8 +5808,7 @@ }

- - +
@@ -5913,8 +5895,7 @@ daß die alte, obsolete Timeline zurückgebaut ist

- - +
@@ -5933,8 +5914,7 @@ bevor die Notification-Facade geöffnet werden konnte

- - +
@@ -6017,8 +5997,7 @@ Allerdings habe ich an der Stelle immer noch GTK-Assertions

- - + @@ -6094,8 +6073,7 @@ ist, daß Gio::Application sofort auch gleich eine dBus-Verbindung hochfährt.

- - + @@ -16724,8 +16702,7 @@ und daher auf "inaktiv" geschaltet ist.

- - +
@@ -17125,8 +17102,7 @@ ...denn das ist das vereinfachte Setup für "einfache" Applikationen

- - +
@@ -17512,8 +17488,7 @@ das Diff wird auf den Platzhalter angewendet

- - +
@@ -17528,8 +17503,7 @@ dann muß dieses automatisch deregistriert werden

- -
+
@@ -17712,8 +17686,7 @@ d.h. das Widget unternimmt selber nichts, und überläßt GTK die Größenbestimmung

- -
+
@@ -17728,8 +17701,7 @@ Und sonst wird er Körper/Hintergrund ausgedehnt

- -
+
@@ -17767,8 +17739,7 @@ Sehr wichtig für die Anzeige von langen Clips und Effekten.

- -
+ @@ -18033,8 +18004,7 @@ Details im  TiddlyWiki....

- - +
@@ -18252,8 +18222,7 @@ ...für die dritte Lösung, die Repräsentation bereits in der Session

- - +
@@ -18338,7 +18307,7 @@
- + @@ -18357,8 +18326,7 @@ Implementiert würde sie vom jeweiligen Widget

- - +
@@ -18388,8 +18356,7 @@ Der Dekorator würde also auf dem TreeMutator sitzen...

- -
+
@@ -18410,8 +18377,7 @@ Daher gibt es die matchSrc-Operation. Effektiv wird die aber nur bei einem Delete aufgerufen...

- -
+
@@ -18434,8 +18400,7 @@ - - + @@ -18523,8 +18488,7 @@ d.h. eine LUID

- - +
@@ -18570,8 +18534,7 @@ Irgend eine BareEntryID genügt

- - +
@@ -18598,8 +18561,7 @@ Daher sollte eine inkompatible Strukturänderung überhaupt nicht auftreten können

- - +
@@ -18651,8 +18613,7 @@ ...abstraktes Interface

- - + @@ -18674,8 +18635,7 @@ um die Bindung herzustellen

- - +
@@ -18705,8 +18665,7 @@ und erwarten abweichend vom Standard ein vollständiges Skelett im INS-Verb

- - + @@ -19172,8 +19131,7 @@ weil ein Layout-Manager immer nur im Bereich eines TimelineWidget relevant ist

- - +
@@ -19181,6 +19139,63 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ ...und für Signale sind diese Probleme bereits gelöst +

+ + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + @@ -19229,7 +19244,8 @@ - + + @@ -19459,8 +19475,7 @@ so z.B. sein Placement, welches teilweise als Properties des Track abgebildet wird.

- - +
@@ -19592,8 +19607,7 @@ zur Anwendung kommt

- - +
@@ -19642,8 +19656,7 @@ am Anfang des Track-Profils, welche immer sichtbar bleiben soll

- - +
@@ -19680,8 +19693,7 @@ stets besser ist, als repetitives aufdoppeln und variieren

- - +
@@ -19701,8 +19713,7 @@ - - +
@@ -20393,8 +20404,7 @@ innerhalb eines PolymorphicValue.

- - +
@@ -20412,8 +20422,7 @@ stets selbst erzeugen und daher auf das korrekte Literal Verlaß ist)

- -
+
@@ -20446,8 +20455,7 @@ und soll von beiden sub-Canvas gleichermaßen jeweils passend interpretiert werden

- - +
@@ -20473,8 +20481,7 @@ ...daher die Factory

- - +
@@ -20491,8 +20498,7 @@ - - + @@ -20516,8 +20522,7 @@ Renderer ist bereits der Funktor

- - + @@ -20547,8 +20552,7 @@ - - + @@ -20595,8 +20599,7 @@ weil man damit eine generische Klammer bauen kann

- - +
@@ -20612,8 +20615,7 @@ und bleibt anderweitig ungenutzt

- - +
@@ -20645,8 +20647,7 @@ dann wäre ein dediziertes Feld für das fixierte Track-Präfix wohl besser

- - +
@@ -20680,7 +20681,22 @@ - + + + + + + + + + +

+ ...im Session-Modell für eine Timeline jeweils ein Property hierfür geben... +

+ + +
+
@@ -20688,6 +20704,52 @@
+ + + + + + + + + + + + + +

+ weil dann nämlich someone(TM) +

+

+ be Struktur-Änderungen von Außen her "aktiv werden" muß. +

+

+ +

+

+ Irgendjemand muß mal den Müll runtertragen +

+ + +
+ +
+
+ + + + + + + + + + + + + + + @@ -20696,7 +20758,8 @@ - + + @@ -20783,8 +20846,8 @@ - - + + @@ -20843,8 +20906,7 @@ ...in dem der Timeline body-canvas nämlich liegt

- - +
@@ -20925,8 +20987,7 @@ wir können nicht von 0 bis MAXINT zeichnen

- - +
@@ -20994,8 +21055,7 @@ ...zum Beispiel um einen "Wall" auch expressiv zu schattieren

- - +
@@ -21039,8 +21099,7 @@ wenn er mit der HeaderPane den benötigten Platz aushandelt

- - + @@ -21110,8 +21169,7 @@ ...sie verwenden dann ein LabelWidget zur Darstellung

- - +
@@ -21167,8 +21225,7 @@ ERR: nexus.hpp:189: worker_3: ~Nexus: Some UI components are still connected to the backbone.

- - +
@@ -21194,6 +21251,16 @@
+ + + + + + + + + + @@ -21249,8 +21316,7 @@ Verwende das als Leitgedanke, um das Layout zu entwickeln

- - + @@ -21506,7 +21572,7 @@ - + @@ -21741,7 +21807,7 @@ - + @@ -22678,8 +22744,7 @@ - - + @@ -22697,8 +22762,7 @@ - - + @@ -22737,8 +22801,7 @@ - - + @@ -22893,8 +22956,7 @@ where 1 tick unit depends on the current zoom level

- - +
@@ -22917,8 +22979,7 @@ - - +
@@ -22945,8 +23006,7 @@ Theoretisch könnte eine Skala auf einer Seite oder auf beiden Seiten limitiert sein....?

- - + @@ -23033,8 +23093,7 @@ analog zu gui::model::Tangible

- - +
@@ -23295,6 +23354,15 @@ + + + + + + + + + @@ -23310,9 +23378,10 @@ - + - + + @@ -23457,8 +23526,7 @@ erfordert bereits Kenntnis der Innereien

- - +
@@ -30544,8 +30612,7 @@ Implementierung der real-world-Variante fehlt!

- - + @@ -30565,8 +30632,7 @@ wie Session- und State-Managment, Commands etc.

- - +
@@ -30726,7 +30792,7 @@
- + @@ -35904,8 +35970,7 @@ - - + @@ -38270,8 +38335,7 @@ Visitor ist entweder void, oder bool

- -
+
@@ -38302,8 +38366,7 @@ - - + @@ -38429,8 +38492,7 @@ Denn letzteres ist bei uns eine Grundannahme. Es gibt keine ungefähren Diffs!

- - +
@@ -41453,8 +41515,7 @@ Ganz prominent fehlt hier also z.B: MIDI

- - +
@@ -41474,8 +41535,7 @@ die Aufgrund von Klassifikationen automatisch bereits existieren

- - +
@@ -42339,7 +42399,7 @@
- + @@ -42371,8 +42431,7 @@ ...also abzüglich Dekoration und Margin

- - +
@@ -42394,8 +42453,7 @@ sofern das Widget mit entsprechendem Modus eingefügt wurde

- - +
@@ -42441,8 +42499,7 @@ context->add_class("ohMy");

- - + @@ -42537,8 +42594,7 @@ oder ist es eine Vererbungs-Hierarchie, wie sie für das CSS-Styling benötigt wird?

- - +
@@ -42583,8 +42639,7 @@ - - +
@@ -43056,8 +43111,7 @@ aber macht in etwa die gleichen Operationen

- - +
@@ -43078,8 +43132,7 @@ Gtk-Main verwendet inzwischen den gleichen Mechanismus

- -
+
@@ -43344,7 +43397,9 @@ - + + + @@ -43362,6 +43417,120 @@ + + + + + + + + + + +

+ "Destroys the widget. +

+

+ The widget will be automatically removed from the parent container." +

+ + +
+
+
+ + + + + + + +

+   //This has probably been called already from Gtk::Object::destroy_(), which is called from derived destructors. +

+

+   _release_c_instance(); +

+ + +
+ + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ d.h. zerstört auch die Heap-Allokation, +

+

+ wenn das managende Widget zerstört wird +

+ + +
+
+ + + + + + +

+ ein normaler Widget/Container tut das nicht +

+ + +
+ + + + + + + @@ -43377,8 +43546,7 @@ ggfs. neu gemapped und invalidiert wird, woraufhin es neu gezeichnet wird

- - +
@@ -43393,7 +43561,7 @@ - + @@ -43423,8 +43591,7 @@ Siehe Beschreibung im Beispiel/Tutorial

- - +
@@ -43446,8 +43613,7 @@ Im Besonderen kann man sich an Signale anderer Widgets anhängen

- - + @@ -43836,8 +44002,7 @@ und auch ein Signal für Parse-Fehler anschließt

- - +
@@ -43882,8 +44047,7 @@ Beachte: der Text-Cursor (Marker "insert") hat right gravity

- - +
@@ -43980,8 +44144,7 @@ The grip is implemented as a GdlDockItemGrip

- - +
@@ -44072,8 +44235,7 @@ kann eines der Templates im Zyklus vorrübergehend als "incomplete" gelten.

- - +
@@ -44097,8 +44259,7 @@ Konsequenz: man wählt dann z.B. eine subtil falsche Spezialisierung.

- -
+
@@ -44152,8 +44313,7 @@ selber aus einem statischen Initialisierungs-Kontext heraus erfolgt.

- - +
@@ -44355,8 +44515,7 @@   }

- - +
@@ -44623,8 +44782,7 @@ Query<RES>::resolveBy

- - +
@@ -44661,8 +44819,7 @@ sonst kommt Doxygen durcheinander

- -
+
@@ -44691,8 +44848,7 @@ wird hier kein Link erzeugt

- - +
@@ -44724,8 +44880,7 @@ Die Icon-Größen ergeben sich aus den Boxes auf 'plate'

- - +
@@ -44750,8 +44905,7 @@ ...im Besonderen die guten Diagramme für Pulse, ALSA und Jack

- - +
@@ -44899,8 +45053,7 @@ "-Wl,-rpath-link=target/modules"

- - +
@@ -44913,8 +45066,7 @@ laufen wieder alle

- - + @@ -44931,8 +45083,7 @@ test.sh Zeile 138

- - +
@@ -44986,8 +45137,7 @@ und wir verbringen unsere Zeit mit contention

- - +
@@ -45002,8 +45152,7 @@ ist klar, hab ich gebrochen

- - + @@ -45032,8 +45181,7 @@ Vorher hatte ich erste Kollisionen nach 25000 Nummern

- - +
@@ -45085,8 +45233,7 @@ Aug 10 04:51:39 flaucher kernel: traps: test-suite[8249] trap int3 ip:7ffff7deb241 sp:7fffffffe5c8 error:0

- -
+ @@ -45153,8 +45300,7 @@ bison dejagnu flex gobjc libncurses5-dev libreadline-dev liblzma-dev libbabeltrace-dev libbabeltrace-ctf-dev python3-dev

- - +
@@ -45204,8 +45350,7 @@ au weia LEUTE!

- - +
@@ -45245,8 +45390,7 @@ und tatsächlich: das ist daneben, GCC hat Recht!

- - +
@@ -45259,8 +45403,7 @@ aktualisieren und neu bauen

- - +
@@ -45290,8 +45433,7 @@ wähle Kompatibiltät genau so, daß Ubuntu-Trusty noch unterstützt wird.

- - + @@ -45484,8 +45626,7 @@ Ich meine also: zu Beginn vom Build sollte das Buildsystem einmal eine Infozeile ausgeben

- - +
@@ -45497,8 +45638,7 @@ ...denn die stören jeweils beim erzeugen eines Hotfix/Patch im Paketbau per dpkg --commit

- -
+
@@ -45948,8 +46088,7 @@ bestehen, aber irgendwann müssen wir das schon glattziehen

- - +
@@ -45997,8 +46136,7 @@ seit gcc-4.8 ist kein static_assert mehr in der STDlib

- - +
@@ -46087,8 +46225,7 @@ END

- - +