ElementBox: further testing and investigation
- Test the new layout code with debugger + dump messages - Experiment: live changes to the name-ID content (send msg. "manip" -> Text changed and Layout properly revalidated)
This commit is contained in:
parent
3bf3391a63
commit
0a2f3ba395
5 changed files with 189 additions and 55 deletions
|
|
@ -110,6 +110,10 @@ namespace timeline {
|
|||
{
|
||||
this->fork_->attachElementBox();
|
||||
}
|
||||
if (mark.idi.getSym() == "manip" && this->fork_)
|
||||
{
|
||||
this->fork_->manipulateBox();
|
||||
}
|
||||
else // forward to default handler
|
||||
model::Controller::doMark (mark);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@
|
|||
#include "lib/util-coll.hpp"
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
#include "lib/format-cout.hpp"
|
||||
#include "lib/test/test-helper.hpp"
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
|
||||
#include "lib/nocopy.hpp"
|
||||
|
|
@ -217,9 +218,11 @@ namespace timeline {
|
|||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
void injectDebugTrackLabels();
|
||||
void attachElementBox();
|
||||
void manipulateBox();
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
uString TODO_trackName_;
|
||||
widget::ElementBoxWidget* theBox_{nullptr};
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
|
||||
protected: /* ==== Interface: LayoutElement ===== */
|
||||
|
|
@ -263,7 +266,7 @@ namespace timeline {
|
|||
{
|
||||
uint x = rand() % 200;
|
||||
uint y = 0;
|
||||
widget::ElementBoxWidget* box = Gtk::manage (
|
||||
theBox_ = Gtk::manage (
|
||||
new model::CanvasHooked<widget::ElementBoxWidget, Gtk::Widget>{display_.hookedAt(x,y)
|
||||
, widget::Kind::MARK
|
||||
, widget::Type::LABEL
|
||||
|
|
@ -276,6 +279,14 @@ namespace timeline {
|
|||
})
|
||||
});
|
||||
}
|
||||
inline void
|
||||
TrackPresenter::manipulateBox()
|
||||
{
|
||||
if (not theBox_) return;
|
||||
string rands = lib::test::randStr(rand() % 40);
|
||||
cout << _Fmt{"maniRandS(%d):%s"} % rands.length() % rands <<endl;
|
||||
theBox_->setName (rands);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1201 : test/code... remove this
|
||||
/**
|
||||
* @note we distinguish between the contents of our four nested child collections
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ namespace widget {
|
|||
IDLabel::setCaption(cuString& idCaption)
|
||||
{
|
||||
name_.set_text(idCaption);
|
||||
show_all();
|
||||
// cache required full display size (for size constrained layout)
|
||||
queryNaturalSize (*this, labelFullSize_);
|
||||
}
|
||||
|
|
@ -225,6 +226,12 @@ namespace widget {
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
ElementBoxWidget::setName (cuString& nameID)
|
||||
{
|
||||
label_.setCaption (nameID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Layout trend for ElementBoxWidget is nailed down (`final`) to "height-for-width".
|
||||
* The reason is, some of the use cases entail placing the element box onto a canvas
|
||||
|
|
@ -382,12 +389,13 @@ namespace widget {
|
|||
* @param w additional width available
|
||||
* @param h vertical headroom available
|
||||
* @param reCheck function to update and verify success
|
||||
* @return if additional content could successfully be expanded
|
||||
* @return if hidden content could successfully be expanded
|
||||
*/
|
||||
template<class FUN>
|
||||
inline bool
|
||||
maybeShow(Gtk::Button& icon, int w, int h, FUN& reCheck)
|
||||
{
|
||||
if (icon.is_visible()) return true; // nothing can be done here
|
||||
bool success{false};
|
||||
if (w >= ICON_SIZ.width * HYSTERESIS and h >= ICON_SIZ.height)
|
||||
{
|
||||
|
|
@ -452,9 +460,9 @@ namespace widget {
|
|||
{//reduce to comply
|
||||
int goal = currW - widthC;
|
||||
ASSERT (goal > 0);
|
||||
if (goal -= reduce(name_, goal) <= 0) return;
|
||||
if (goal -= reduce(menu_) <= 0) return;
|
||||
if (goal -= reduce(icon_) <= 0) return;
|
||||
if ((goal -= reduce(name_, goal)) <= 0) return;
|
||||
if ((goal -= reduce(menu_) ) <= 0) return;
|
||||
if ((goal -= reduce(icon_) ) <= 0) return;
|
||||
currW = queryNaturalWidth(*this);
|
||||
goal = currW - widthC;
|
||||
ENSURE (goal <= 0, "IDLabel layout management floundered. "
|
||||
|
|
|
|||
|
|
@ -168,6 +168,8 @@ namespace widget {
|
|||
|
||||
// default copy acceptable
|
||||
|
||||
void setName(cuString&);
|
||||
|
||||
private:/* ===== Internals ===== */
|
||||
|
||||
Gtk::SizeRequestMode get_request_mode_vfunc() const final;
|
||||
|
|
|
|||
|
|
@ -18073,12 +18073,13 @@
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1625072684078" ID="ID_1863177537" MODIFIED="1625072724798" TEXT="als CustomWidget realisieren">
|
||||
<linktarget COLOR="#f6e1c2" DESTINATION="ID_1863177537" ENDARROW="Default" ENDINCLINATION="-366;30;" ID="Arrow_ID_1412423566" SOURCE="ID_1875608147" STARTARROW="None" STARTINCLINATION="-2400;-277;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1624118406176" ID="ID_589554755" MODIFIED="1624118411682" TEXT="Festlegungen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1624118413444" ID="ID_525135958" MODIFIED="1625072535770" TEXT="Basis-Widget">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1624118406176" ID="ID_589554755" MODIFIED="1664836982291" TEXT="Festlegungen">
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1624118413444" FOLDED="true" ID="ID_525135958" MODIFIED="1625072535770" TEXT="Basis-Widget">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1624118429389" ID="ID_875793943" MODIFIED="1624118433820" TEXT="Ansatzpunkte">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1624118429389" ID="ID_875793943" MODIFIED="1664836954095" TEXT="Ansatzpunkte">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1624118435548" ID="ID_683607951" MODIFIED="1624118442679" TEXT="es ist ein Container"/>
|
||||
<node CREATED="1624118448617" ID="ID_855361232" MODIFIED="1624118458532" TEXT="es funktioniert analog wie ein Gtk::Frame"/>
|
||||
<node CREATED="1624118530287" ID="ID_1198328917" MODIFIED="1624118546896" TEXT="aber es hat auch Verhalten wie eine Gtk::Box"/>
|
||||
|
|
@ -18360,8 +18361,9 @@
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1625075098065" HGAP="75" ID="ID_740164704" MODIFIED="1663977387429" TEXT="Frage: wo muß man anpassen...." VSHIFT="-5">
|
||||
<node COLOR="#435e98" CREATED="1625075098065" FOLDED="true" HGAP="75" ID="ID_740164704" MODIFIED="1663977387429" TEXT="Frage: wo muß man anpassen...." VSHIFT="-5">
|
||||
<edge COLOR="#a56a6a"/>
|
||||
<arrowlink COLOR="#796ba9" DESTINATION="ID_1143769023" ENDARROW="Default" ENDINCLINATION="-733;-40;" ID="Arrow_ID_1215170372" STARTARROW="None" STARTINCLINATION="-1892;158;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
|
|
@ -18375,7 +18377,7 @@
|
|||
<node CREATED="1663976936598" ID="ID_538084170" MODIFIED="1663976947659" TEXT="Standard-Impl delegiert und aggregiert hier nur"/>
|
||||
<node CREATED="1663976948910" ID="ID_665707543" MODIFIED="1663976964397" TEXT="die Basiswerte stammen aus der CSS-Auswertung"/>
|
||||
<node CREATED="1663976973787" ID="ID_1501027418" MODIFIED="1663977503034" TEXT="also drei Schritte">
|
||||
<arrowlink COLOR="#825098" DESTINATION="ID_763928282" ENDARROW="Default" ENDINCLINATION="-708;-358;" ID="Arrow_ID_1762163985" STARTARROW="None" STARTINCLINATION="-29;281;"/>
|
||||
<arrowlink COLOR="#505398" DESTINATION="ID_763928282" ENDARROW="Default" ENDINCLINATION="-708;-358;" ID="Arrow_ID_1762163985" STARTARROW="None" STARTINCLINATION="-29;281;"/>
|
||||
<node CREATED="1663976978882" ID="ID_1756884177" MODIFIED="1663977086920" TEXT="Basis-Impl aufrufen ⟹ holt Standard-Layout von CSS">
|
||||
<icon BUILTIN="full-1"/>
|
||||
</node>
|
||||
|
|
@ -18409,8 +18411,8 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1625075206250" ID="ID_721261085" MODIFIED="1625075212634" TEXT="Strukturen aufbauen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1625075275103" ID="ID_1622786444" MODIFIED="1625075281429" TEXT="Konstruktor">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1625075275103" ID="ID_1622786444" MODIFIED="1664836999132" TEXT="Konstruktor">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1625075282830" ID="ID_1730704998" MODIFIED="1664494473359" TEXT="mini-DSL für die Konfigurations-Varianten schaffen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1654445954424" ID="ID_1720484280" MODIFIED="1661558650010" TEXT="1.Ansatz: explizit">
|
||||
|
|
@ -18605,18 +18607,18 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1625075301830" ID="ID_792792003" MODIFIED="1625075315505" TEXT="Möglichkeiten vordefinierter Ausstattung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1661721385054" ID="ID_229098374" MODIFIED="1661721388942" TEXT="Framework anlegen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1661721385054" ID="ID_229098374" MODIFIED="1664837009375" TEXT="Framework anlegen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1661721522872" ID="ID_1721632208" MODIFIED="1662051074564" TEXT="ENUMs">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1661721389797" ID="ID_96735997" MODIFIED="1662051077177" TEXT="Qualifier">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1661721393893" ID="ID_293134573" MODIFIED="1661721423931" TEXT="Validierungs-Funktion">
|
||||
<node COLOR="#338800" CREATED="1661721393893" ID="ID_293134573" MODIFIED="1664837010799" TEXT="Validierungs-Funktion">
|
||||
<linktarget COLOR="#404289" DESTINATION="ID_293134573" ENDARROW="Default" ENDINCLINATION="175;-873;" ID="Arrow_ID_1989504612" SOURCE="ID_1939158808" STARTARROW="None" STARTINCLINATION="768;94;"/>
|
||||
<linktarget COLOR="#c63166" DESTINATION="ID_293134573" ENDARROW="Default" ENDINCLINATION="64;-83;" ID="Arrow_ID_543159170" SOURCE="ID_1192772963" STARTARROW="None" STARTINCLINATION="-313;15;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1662051084085" ID="ID_906734828" MODIFIED="1664668205361">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
|
@ -18629,6 +18631,9 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664837017382" ID="ID_1774424476" MODIFIED="1664837035511" TEXT="hier Entscheidung über den Layout-Typ">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1661896735138" ID="ID_1956334148" MODIFIED="1662037245996" TEXT="Darstellungs-Varianten">
|
||||
|
|
@ -18749,9 +18754,9 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1663977435805" ID="ID_763928282" MODIFIED="1663977503035" TEXT="Lösungs-Mechanismus GTK+CSS">
|
||||
<linktarget COLOR="#825098" DESTINATION="ID_763928282" ENDARROW="Default" ENDINCLINATION="-708;-358;" ID="Arrow_ID_1762163985" SOURCE="ID_1501027418" STARTARROW="None" STARTINCLINATION="-29;281;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1663977435805" ID="ID_763928282" MODIFIED="1664836878051" TEXT="Lösungs-Mechanismus GTK+CSS">
|
||||
<linktarget COLOR="#505398" DESTINATION="ID_763928282" ENDARROW="Default" ENDINCLINATION="-708;-358;" ID="Arrow_ID_1762163985" SOURCE="ID_1501027418" STARTARROW="None" STARTINCLINATION="-29;281;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664036044208" ID="ID_1165985409" MODIFIED="1664036049568" TEXT="#1235 draft solution for size-constrained widgets">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
|
|
@ -19001,13 +19006,13 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1664029223580" ID="ID_825294836" MODIFIED="1664136733333" TEXT="Framework zur Steuerung der Ausdehnung">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1664029250424" ID="ID_1097443082" MODIFIED="1664029265588" TEXT="hier erst mal nur das Fundament legen">
|
||||
<node COLOR="#435e98" CREATED="1664029250424" ID="ID_1097443082" MODIFIED="1664836823192" TEXT="hier erst mal nur das Fundament legen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1664029267136" ID="ID_1383671067" MODIFIED="1664029355911" TEXT="zwei Themen">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1664029340460" ID="ID_1398837731" MODIFIED="1664152792801" TEXT="Ausdehnung des Labels steuern">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1664029340460" ID="ID_1398837731" MODIFIED="1664836798961" TEXT="Ausdehnung des Labels steuern">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1664031831907" ID="ID_701574899" MODIFIED="1664031980972" TEXT="Problem: reaktiv getriggert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
|
@ -19021,10 +19026,10 @@
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664035985288" ID="ID_1514029086" MODIFIED="1664035990688" TEXT="#1238 hide ElementBoxWidget label to meet size constraint">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1664035985288" ID="ID_1514029086" MODIFIED="1664836806242" TEXT="#1238 hide ElementBoxWidget label to meet size constraint">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1664032709767" FOLDED="true" ID="ID_89148369" MODIFIED="1664494944351" TEXT="einfache Lösung: per Seiteneffekt verbergen">
|
||||
<node COLOR="#338800" CREATED="1664032709767" FOLDED="true" ID="ID_89148369" MODIFIED="1664834444524" TEXT="einfache Lösung: per Seiteneffekt verbergen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1664032721142" ID="ID_999001948" MODIFIED="1664313668307" TEXT="geht das?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -19276,14 +19281,14 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664033098675" ID="ID_617752641" MODIFIED="1664033125288" TEXT="differenziertere Lösung evaluieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664721239543" ID="ID_958938237" MODIFIED="1664721462737" TEXT="Ansatz: Komponenten schritweise verbergen">
|
||||
<node COLOR="#338800" CREATED="1664033098675" ID="ID_617752641" MODIFIED="1664836791921" TEXT="differenziertere Lösung evaluieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1664721239543" ID="ID_958938237" MODIFIED="1664834954143" TEXT="Ansatz: Komponenten schritweise verbergen">
|
||||
<arrowlink COLOR="#f8fecd" DESTINATION="ID_611179505" ENDARROW="None" ENDINCLINATION="-198;-9;" ID="Arrow_ID_990474269" STARTARROW="Default" STARTINCLINATION="202;13;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664721613355" HGAP="38" ID="ID_100250479" MODIFIED="1664723295433" TEXT="Lösungs-Mechanik?" VSHIFT="-26">
|
||||
<node COLOR="#435e98" CREATED="1664721613355" HGAP="38" ID="ID_100250479" MODIFIED="1664834929101" TEXT="Lösungs-Mechanik?" VSHIFT="-26">
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#0d5b57" COLOR="#63cb95" CREATED="1664723304392" ID="ID_351577212" MODIFIED="1664723403946" STYLE="bubble" TEXT="Logik">
|
||||
<node BACKGROUND_COLOR="#0d5b57" COLOR="#63cb95" CREATED="1664723304392" FOLDED="true" ID="ID_351577212" MODIFIED="1664723403946" STYLE="bubble" TEXT="Logik">
|
||||
<edge COLOR="#52c44c" STYLE="linear"/>
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="15"/>
|
||||
<node COLOR="#33565a" CREATED="1664723420339" HGAP="38" ID="ID_1605718107" MODIFIED="1664727861369" TEXT="Handlungsbedarf?" VSHIFT="39">
|
||||
|
|
@ -19459,8 +19464,8 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664727903654" HGAP="47" ID="ID_479783297" MODIFIED="1664727915770" TEXT="Implementierung" VSHIFT="-4">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1664727903654" FOLDED="true" HGAP="47" ID="ID_479783297" MODIFIED="1664836779699" TEXT="Implementierung" VSHIFT="-4">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1664766812799" ID="ID_806792302" MODIFIED="1664767612419" TEXT="weitgehend in lokalen Funktionen implementierbar">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
|
|
@ -19540,14 +19545,83 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1664767619949" ID="ID_1351254549" MODIFIED="1664767684028" TEXT="Test">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1664767619949" ID="ID_1351254549" MODIFIED="1664834924277" TEXT="Test">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1664767649344" ID="ID_408352584" MODIFIED="1664767655318" TEXT="kein Crash">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node CREATED="1664767638298" ID="ID_212652160" MODIFIED="1664767648612" TEXT="Ausblenden des Label funktioniert"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1664767657871" ID="ID_599051282" MODIFIED="1664768828505" TEXT="Ausblenden der Icons funktioniert nicht">
|
||||
<node COLOR="#435e98" CREATED="1664767657871" ID="ID_599051282" MODIFIED="1664834531310" TEXT="Ausblenden der Icons funktioniert nicht">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node COLOR="#435e98" CREATED="1664834459501" ID="ID_1315620982" MODIFIED="1664834529415" TEXT="war nur ein Klammerungs-Fehler">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Assignment-Operatoren binden weniger stark als Wertevergleiche, daher ist er immer nach dem ersten Reduktionsschritt ausgestiegen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1664834532931" ID="ID_60942393" MODIFIED="1664834557153" TEXT="Zusätzlicher Check ob Icon schon wieder eingeblendet ist">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1664834558009" ID="ID_1531756128" MODIFIED="1664834595460" TEXT="redundante Prüfung beim Name-Label unvermeidbar">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1664834635582" ID="ID_611375985" MODIFIED="1664834740525">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...weil der Constraint ja <i>gelockert </i>sein könnte
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
das heißt, wenn das Label schon eingeblendet ist, aber nun zusätzlicher Platz verfügbar wird; deshalb dürfen wir hier bei einem bereits eingeblendeten Label nicht pauschal aussteigen, sondern müssen jedesmal die ganze Prüfung machen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664834597364" ID="ID_988500213" MODIFIED="1664834784457" TEXT="ist aber nur schlimm solange wir das Label nicht kürzen können">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
weil in dem Fall jedesmal das Label wieder ausgeblendet wird, und dazu insgesamt drei mal die requested_width ermittelt werden muß
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664834616551" ID="ID_1590264446" MODIFIED="1664834836962" TEXT="in der Endversion wird uns die Hysterese schützen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...unter der Annahme, daß das Kürzen ggfs.auch verlängern kann, und damit schon relativ nahe am verfügbaren Platz ist. Dann verhindert die Hysterese, daß nochmal geprüft wird
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664834846850" ID="ID_1842010427" MODIFIED="1664834875522" TEXT="das Caching bekannter Constraints könnte sehr relevant sein. Unbedingt prüfen!"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1664834911721" ID="ID_433069881" MODIFIED="1664836773505" TEXT="ansonsten verhält sich der Code jetzt wie intendiert">
|
||||
<linktarget COLOR="#2db81a" DESTINATION="ID_433069881" ENDARROW="Default" ENDINCLINATION="366;20;" ID="Arrow_ID_1166896363" SOURCE="ID_1294234975" STARTARROW="None" STARTINCLINATION="301;14;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -19559,17 +19633,17 @@
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664027420141" ID="ID_891209068" MODIFIED="1664033227851" TEXT="kann man den Label-Text ändern und sieht sofort eine Änderung auf dem Layout-Callback?">
|
||||
<linktarget COLOR="#bf4283" DESTINATION="ID_891209068" ENDARROW="Default" ENDINCLINATION="-836;28;" ID="Arrow_ID_120092077" SOURCE="ID_945958753" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<node COLOR="#435e98" CREATED="1664027420141" FOLDED="true" ID="ID_891209068" MODIFIED="1664836788731" TEXT="kann man den Label-Text ändern und sieht sofort eine Änderung auf dem Layout-Callback?">
|
||||
<linktarget COLOR="#4265bf" DESTINATION="ID_891209068" ENDARROW="Default" ENDINCLINATION="-836;28;" ID="Arrow_ID_120092077" SOURCE="ID_945958753" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1664313375789" ID="ID_611179505" MODIFIED="1664313504665" TEXT="zumindest nach hide() ist sofort die prefered_size angepaßt">
|
||||
<linktarget COLOR="#fcf2bc" DESTINATION="ID_611179505" ENDARROW="Default" ENDINCLINATION="-47;-40;" ID="Arrow_ID_96952850" SOURCE="ID_1660318028" STARTARROW="None" STARTINCLINATION="36;39;"/>
|
||||
<linktarget COLOR="#f8fecd" DESTINATION="ID_611179505" ENDARROW="None" ENDINCLINATION="-198;-9;" ID="Arrow_ID_990474269" SOURCE="ID_958938237" STARTARROW="Default" STARTINCLINATION="202;13;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664543738587" ID="ID_418832883" MODIFIED="1664543749125" TEXT="Experiment durchführen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664543750721" ID="ID_1515243070" MODIFIED="1664543842744">
|
||||
<node COLOR="#338800" CREATED="1664543738587" ID="ID_418832883" MODIFIED="1664836412493" TEXT="Experiment durchführen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1664543750721" ID="ID_1515243070" MODIFIED="1664836391654">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
|
|
@ -19580,22 +19654,57 @@
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664543863364" ID="ID_1704098172" MODIFIED="1664543873447" TEXT="Test-Manipulationsfunktion">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664543973587" ID="ID_1411171343" MODIFIED="1664544008919" TEXT="Verb "manip"">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1664543863364" ID="ID_1704098172" MODIFIED="1664836402142" TEXT="Test-Manipulationsfunktion">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1664543973587" ID="ID_1411171343" MODIFIED="1664836399572" TEXT="Verb "manip""/>
|
||||
<node COLOR="#435e98" CREATED="1664543988561" ID="ID_622195313" MODIFIED="1664836399571" TEXT="manipuliert die zuletzt erzeugte Box"/>
|
||||
<node COLOR="#435e98" CREATED="1664543997192" ID="ID_332394972" MODIFIED="1664836399570" TEXT="setzt einen neuen Random-String"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664543988561" ID="ID_622195313" MODIFIED="1664544008920" TEXT="manipuliert die zuletzt erzeugte Box">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664543997192" ID="ID_332394972" MODIFIED="1664544008921" TEXT="setzt einen neuen Random-String">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1664544020621" ID="ID_1995553965" MODIFIED="1664836410800" TEXT="Verhalten per Dump-msg beobachten">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664544020621" ID="ID_1995553965" MODIFIED="1664544039227" TEXT="Verhalten per Dump-msg beobachten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1664836698977" ID="ID_1294234975" MODIFIED="1664836773505" TEXT="ist nebenbei ein weiterer erfolgreicher Test für die Layout-Logik">
|
||||
<arrowlink COLOR="#2db81a" DESTINATION="ID_433069881" ENDARROW="Default" ENDINCLINATION="366;20;" ID="Arrow_ID_1166896363" STARTARROW="None" STARTINCLINATION="301;14;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1664836417335" ID="ID_683250227" MODIFIED="1664836426079" TEXT="Fazit">
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1664836427405" ID="ID_1030484461" MODIFIED="1664836664800" TEXT="Änderungen wirken sich sofort auf die get_preferred_*() -Funktionen aus">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1664836480317" ID="ID_1978427776" MODIFIED="1664836667109" TEXT="aber nur wenn das Widget visible ist">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1664836489848" ID="ID_625722238" MODIFIED="1664836671391" TEXT="man muß also ggfs. show_all() aufrufen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1664836501374" ID="ID_915287836" MODIFIED="1664836659380" TEXT="Kein Problem: Layout-Handling-Code läuft vor dem nächsten DRAW">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
Alle solchen UI-Aktionen kommen aus dem Event-Thread.
|
||||
</li>
|
||||
<li>
|
||||
Jede Änderung der Visibility zieht eine resize-Kalkulation nach sich
|
||||
</li>
|
||||
<li>
|
||||
dabei werden unsere Hooks aufgerufen, stellen die Änderung fest, und setzten ggfs. visible = false
|
||||
</li>
|
||||
<li>
|
||||
Ergebnis: keinerlei sichtbarer Effekt (es sei denn, der Text wird tatsächlich angezeigt)
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -19994,7 +20103,7 @@
|
|||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664032818869" ID="ID_945958753" MODIFIED="1664494574785" TEXT="GTK-Interna">
|
||||
<arrowlink COLOR="#4285bf" DESTINATION="ID_217473035" ENDARROW="Default" ENDINCLINATION="-989;57;" ID="Arrow_ID_1041626932" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<arrowlink COLOR="#4272bf" DESTINATION="ID_969143327" ENDARROW="Default" ENDINCLINATION="-1003;96;" ID="Arrow_ID_190980327" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<arrowlink COLOR="#bf4283" DESTINATION="ID_891209068" ENDARROW="Default" ENDINCLINATION="-836;28;" ID="Arrow_ID_120092077" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<arrowlink COLOR="#4265bf" DESTINATION="ID_891209068" ENDARROW="Default" ENDINCLINATION="-836;28;" ID="Arrow_ID_120092077" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#793f70" CREATED="1664728013606" ID="ID_1113493685" MODIFIED="1664730778937" TEXT="Performance-on-scale">
|
||||
|
|
|
|||
Loading…
Reference in a new issue