ElementBox: Analysis and design for layout strategy...
identify the various dimensions, which require flexibility to support the intended use cases; try to come up with a design draft, allowing to settle on a preliminary version soon, while not hampering further development later on. Obviously this is a very deep and challenging topic, and we're far from even remotely addressing it adequately; we just need to get to the point to use this drafted version as building block, since these usages will then push us further into the right direction...
This commit is contained in:
parent
c439ade3da
commit
acaeb330c3
4 changed files with 585 additions and 50 deletions
|
|
@ -62,34 +62,34 @@ namespace widget {
|
|||
|
||||
ElementBoxWidget::~ElementBoxWidget() { }
|
||||
|
||||
void
|
||||
ElementBoxWidget::Strategy::configure()
|
||||
ElementBoxWidget::Strategy
|
||||
ElementBoxWidget::Config::buildLayoutStrategy()
|
||||
{
|
||||
|
||||
return Strategy{"LoLoLo"};
|
||||
}
|
||||
|
||||
Literal
|
||||
ElementBoxWidget::Strategy::getIconID() const
|
||||
ElementBoxWidget::Config::getIconID() const
|
||||
{
|
||||
///////////////////////////////////////////////////////////////////////////TICKET #1185 : implement logic to pick suitable icon...
|
||||
return "track_enabled"; //////////////////////////////////////////////TICKET #1219 : maybe at leas a better generic placeholder icon...?
|
||||
}
|
||||
|
||||
Gtk::IconSize
|
||||
ElementBoxWidget::Strategy::getIconSize() const
|
||||
ElementBoxWidget::Config::getIconSize() const
|
||||
{
|
||||
///////////////////////////////////////////////////////////////////////////TICKET #1185 : is Icon-Size flexible under some circumstances?
|
||||
return Gtk::ICON_SIZE_MENU;
|
||||
}
|
||||
|
||||
|
||||
ElementBoxWidget::ElementBoxWidget (Strategy strategy)
|
||||
ElementBoxWidget::ElementBoxWidget (Config config)
|
||||
: Frame{}
|
||||
, strategy_{config.buildLayoutStrategy()}
|
||||
, label_{Gtk::ORIENTATION_HORIZONTAL}
|
||||
, icon_{Gtk::StockID{strategy.getIconID()} ///////////////////////////////TICKET #1030 : use of stockIDs is deprecated; care for a more modern icon naming scheme
|
||||
, strategy.getIconSize()}
|
||||
, icon_{Gtk::StockID{config.getIconID()} ///////////////////////////////TICKET #1030 : use of stockIDs is deprecated; care for a more modern icon naming scheme
|
||||
, config.getIconSize()}
|
||||
{
|
||||
strategy.configure();
|
||||
set_name(ID_element);
|
||||
get_style_context()->add_class(CLASS_background); // Style to ensure an opaque backdrop
|
||||
set_label_align(0.0, 0.0);
|
||||
|
|
@ -99,7 +99,7 @@ namespace widget {
|
|||
label_.add(name_);
|
||||
label_.set_name(ID_caption);
|
||||
label_.get_style_context()->add_class(CLASS_background);
|
||||
name_.set_text(strategy.getName());
|
||||
name_.set_text(config.getName());
|
||||
name_.set_hexpand(true);
|
||||
|
||||
this->show_all();
|
||||
|
|
|
|||
|
|
@ -93,17 +93,25 @@ namespace widget {
|
|||
class ElementBoxWidget
|
||||
: public Gtk::Frame
|
||||
{
|
||||
struct Strategy
|
||||
{
|
||||
string lambdaLaLa;
|
||||
};
|
||||
|
||||
/** actual layout strategy binding for this widget */
|
||||
Strategy strategy_;
|
||||
|
||||
Gtk::Box label_;
|
||||
Gtk::Image icon_;
|
||||
Gtk::Label name_;
|
||||
|
||||
public:
|
||||
class Strategy;
|
||||
class Config;
|
||||
|
||||
template<class... QS>
|
||||
ElementBoxWidget (Kind kind, Type type, QS ...qualifiers);
|
||||
|
||||
ElementBoxWidget (Strategy);
|
||||
ElementBoxWidget (Config);
|
||||
~ElementBoxWidget();
|
||||
|
||||
// default copy acceptable
|
||||
|
|
@ -112,12 +120,12 @@ namespace widget {
|
|||
|
||||
};
|
||||
|
||||
class ElementBoxWidget::Strategy
|
||||
: lib::BuilderQualifierSupport<Strategy>
|
||||
class ElementBoxWidget::Config
|
||||
: lib::BuilderQualifierSupport<Config>
|
||||
{
|
||||
Type type_;
|
||||
uString nameID_{"∅"};
|
||||
string logTODO_{nameID_};
|
||||
string logTODO_{nameID_}; //////////////////////////////////////////////////////////////////////////TICKET #1219 : Placeholder for detailed layout configuration
|
||||
|
||||
friend Qualifier kind(Kind);
|
||||
friend Qualifier name(string id);
|
||||
|
|
@ -125,14 +133,14 @@ namespace widget {
|
|||
|
||||
public:
|
||||
template<class... QS>
|
||||
Strategy(Type type, Qualifier qual, QS... qs)
|
||||
Config(Type type, Qualifier qual, QS... qs)
|
||||
: type_{type}
|
||||
{
|
||||
qualify(*this, qual, qs...);
|
||||
}
|
||||
|
||||
/** decide upon the presentation strategy */
|
||||
void configure();
|
||||
Strategy buildLayoutStrategy();
|
||||
|
||||
Literal getIconID() const;
|
||||
Gtk::IconSize getIconSize() const;
|
||||
|
|
@ -145,33 +153,33 @@ namespace widget {
|
|||
};
|
||||
|
||||
|
||||
inline ElementBoxWidget::Strategy::Qualifier
|
||||
inline ElementBoxWidget::Config::Qualifier
|
||||
kind(Kind kind)
|
||||
{
|
||||
return ElementBoxWidget::Strategy::Qualifier{
|
||||
[=](ElementBoxWidget::Strategy& strategy)
|
||||
return ElementBoxWidget::Config::Qualifier{
|
||||
[=](ElementBoxWidget::Config& config)
|
||||
{
|
||||
strategy.logTODO_ += util::_Fmt{"+kind(%s)"} % kind;
|
||||
config.logTODO_ += util::_Fmt{"+kind(%s)"} % kind;
|
||||
}};
|
||||
}
|
||||
|
||||
inline ElementBoxWidget::Strategy::Qualifier
|
||||
inline ElementBoxWidget::Config::Qualifier
|
||||
name(string id)
|
||||
{
|
||||
return ElementBoxWidget::Strategy::Qualifier{
|
||||
[=](ElementBoxWidget::Strategy& strategy)
|
||||
return ElementBoxWidget::Config::Qualifier{
|
||||
[=](ElementBoxWidget::Config& config)
|
||||
{
|
||||
strategy.nameID_ = id;
|
||||
config.nameID_ = id;
|
||||
}};
|
||||
}
|
||||
|
||||
inline ElementBoxWidget::Strategy::Qualifier
|
||||
inline ElementBoxWidget::Config::Qualifier
|
||||
expander(model::Expander& expander)
|
||||
{
|
||||
return ElementBoxWidget::Strategy::Qualifier{
|
||||
[&](ElementBoxWidget::Strategy& strategy)
|
||||
return ElementBoxWidget::Config::Qualifier{
|
||||
[&](ElementBoxWidget::Config& config)
|
||||
{
|
||||
strategy.logTODO_ += util::_Fmt{"+expander(%s)"} % &expander;
|
||||
config.logTODO_ += util::_Fmt{"+expander(%s)"} % &expander;
|
||||
}};
|
||||
}
|
||||
|
||||
|
|
@ -183,7 +191,7 @@ namespace widget {
|
|||
*/
|
||||
template<class... QS>
|
||||
inline ElementBoxWidget::ElementBoxWidget (Kind widgetKind, Type type, QS ...qualifiers)
|
||||
: ElementBoxWidget{Strategy(type, kind(widgetKind), qualifiers...)}
|
||||
: ElementBoxWidget{Config(type, kind(widgetKind), qualifiers...)}
|
||||
{ }
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3217,7 +3217,7 @@ In accordance with this structure, we introduce a central component, the {{{Pane
|
|||
|
||||
</pre>
|
||||
</div>
|
||||
<div title="GuiElementBoxWidget" creator="Ichthyostega" modifier="Ichthyostega" created="201811011919" modified="202209240032" tags="GuiPattern spec draft" changecount="10">
|
||||
<div title="GuiElementBoxWidget" creator="Ichthyostega" modifier="Ichthyostega" created="201811011919" modified="202209241501" tags="GuiPattern spec draft" changecount="13">
|
||||
<pre>//A building block used pervasively throughout the Lumiera UI to represent a named entity.//
|
||||
This widget presents a horizontally extended body, which holds a characteristic ''Head-Triplet'' of visual Elements:
|
||||
* an //Icon// to create the visual anchor point. In many cases, this will be ''the Placment Icon'' (a hallmark of Lumiera's UI)
|
||||
|
|
@ -3274,6 +3274,7 @@ The class {{{widget::ElementBoxWidget}}} uses a flexible declarative constructor
|
|||
In addition to these mandatory arguments, a sequence of //qualifiers// can be supplied to tweak the details of the presentation
|
||||
*{{{name(string)}}} : define the name or ID to be shown in the label field
|
||||
*{{{expander(ref)}}} : use a expand/collapse button, wired with the given »expander« functor (part of the standard UI-Element protocol)
|
||||
*{{{constrained(λ, [λₙ])}}} : constrain widget extension, providing getter functors to retrieve desired size in canvas pixels
|
||||
|
||||
|
||||
!!!proportional Head placement
|
||||
|
|
@ -3296,7 +3297,8 @@ Thus, if we intend to bring a custom widget into compliance with our contextual
|
|||
* the resulting desired ("natural") size allocation is then adjusted by widget decoration and finally passed to the widget for storage and use
|
||||
It turns out that the GTK layout management implementation always observes the widget's preferred extension, but possibly expands the allocation to fill additional space. And the standard implementation of {{{Gtk::Widget}}} in turn delegates those queries to the ''GTK CSS Gadget'' — which is a mapping of the hierarchical widget structure into CSS layout nodes.
|
||||
|
||||
So the seemingly ''optimal leverage point'' is to ''return our pre established size constraint as result'' from these query functions — which can be overridden in the Gtkmm C++ implementation through the {{{Gtk::Widget::get_preferred_width_vfunc()}}} and {{{Gtk::Widget::get_preferred_height_for_width_vfunc()}}}. However, since GTK assumes these values to be sane and sufficient for a proper realisation of any embedded content, at this point we get the responsibility to control and reduce the embedded child widget's extension to bring them into compliance. Failing to do so will lead to garbled drawing on screen.
|
||||
So the seemingly ''optimal leverage point'' is to ''return our pre established size constraint as result'' from these query functions — which can be overridden in the Gtkmm C++ implementation through the {{{Gtk::Widget::get_preferred_width_vfunc()}}} and {{{Gtk::Widget::get_preferred_height_for_width_vfunc()}}}. However, since GTK assumes these values to be sane and sufficient for a proper realisation of any embedded content, at this point it becomes our responsibility to control and reduce the embedded child widget's extension to bring them into compliance. Failing to do so will lead to garbled drawing on screen.
|
||||
|
||||
Our solution approach is to watch the results returned by the default implementation and possibly to hide content until the remaining content conforms to the size constraint; after that, we can return //exactly our calibrated size// and expect GTK to observe this request, passing it down to embedded widgets reduced by style decorations.
|
||||
</pre>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6312,7 +6312,7 @@
|
|||
<node CREATED="1563020456445" ID="ID_134906113" MODIFIED="1563020474783" TEXT="Stand 2019: weitgehend Funktionen von Joel Holdsworth"/>
|
||||
</node>
|
||||
<node CREATED="1563019888259" ID="ID_1755242650" MODIFIED="1563021428072" TEXT="UiManager: CSS-Pfad bereitstellen">
|
||||
<linktarget COLOR="#4b31cd" DESTINATION="ID_1755242650" ENDARROW="Default" ENDINCLINATION="-1204;55;" ID="Arrow_ID_847790641" SOURCE="ID_331912016" STARTARROW="Default" STARTINCLINATION="-1798;0;"/>
|
||||
<linktarget COLOR="#4b31cd" DESTINATION="ID_1755242650" ENDARROW="Default" ENDINCLINATION="-1204;55;" ID="Arrow_ID_847790641" SOURCE="ID_331912016" STARTARROW="Default" STARTINCLINATION="-1782;0;"/>
|
||||
<node CREATED="1563020493385" ID="ID_393380948" MODIFIED="1563020503179" TEXT="publiziert via Advice-System"/>
|
||||
<node CREATED="1563020504983" ID="ID_743553538" MODIFIED="1563020535783" TEXT="Topics">
|
||||
<node CREATED="1563020586598" ID="ID_71417902" MODIFIED="1563020586598" TEXT="style(trackBody)"/>
|
||||
|
|
@ -17932,6 +17932,28 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1661616390134" ID="ID_416292634" MODIFIED="1661616398305" TEXT="#1219 draft framework for ElementBoxWidget">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029665088" ID="ID_1662487522" MODIFIED="1664029676728" TEXT="grundsätzlich verwendbar als Custom-Widget-Basisklasse">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029678375" ID="ID_653676253" MODIFIED="1664029703892" TEXT="Erweiterungspunkt für nach Zeit geeichter Ausdehnung vorhanden">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029710578" ID="ID_305388477" MODIFIED="1664029721290" TEXT="Erweiterungspunkt für Content-Renderer-Framework angelegt">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029748803" ID="ID_1871953284" MODIFIED="1664029762517" TEXT="Label mit Name-ID und Standard-Icon">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1664029766091" ID="ID_114718570" MODIFIED="1664029869992" TEXT="nicht notwendig....">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1664029774074" ID="ID_759551039" MODIFIED="1664029785708" TEXT="Pop-Up-Menü(s)"/>
|
||||
<node CREATED="1664029786417" ID="ID_969568366" MODIFIED="1664029794056" TEXT="Integration mit Placement-Editor"/>
|
||||
<node CREATED="1664029794831" ID="ID_438082684" MODIFIED="1664029806526" TEXT="Expand/Collapse-Mechanismus"/>
|
||||
<node CREATED="1664029817508" ID="ID_1473132270" MODIFIED="1664029823930" TEXT="konkretes Typ-Management"/>
|
||||
<node CREATED="1664029807640" ID="ID_365033048" MODIFIED="1664029816608" TEXT="konkrete Content-Renderer"/>
|
||||
<node CREATED="1664029840817" ID="ID_1206826425" MODIFIED="1664029866386" TEXT="dynamic Head-Placement"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1541087843514" ID="ID_1798999985" MODIFIED="1557498707223" TEXT="weit verbreiteter Grundbaustein">
|
||||
<icon BUILTIN="idea"/>
|
||||
|
|
@ -18235,8 +18257,14 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1625075342643" ID="ID_1177317250" MODIFIED="1625075354429" TEXT="Design-Entscheidungen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1625075347837" ID="ID_1633859495" MODIFIED="1625075372486" TEXT="statisch oder dynamisch?">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1625075347837" ID="ID_1633859495" MODIFIED="1664029945723" TEXT="dynamic composition in ctor">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1664029957465" ID="ID_1547703834" MODIFIED="1664029964884" TEXT="also nicht komplett statisch/typesafe"/>
|
||||
<node CREATED="1664029965728" ID="ID_420276641" MODIFIED="1664029974907" TEXT="aber einmal per Builder verdrahtet"/>
|
||||
<node CREATED="1664029975919" ID="ID_1939158808" MODIFIED="1664030049366" TEXT="dynamic sanity checks">
|
||||
<arrowlink COLOR="#404289" DESTINATION="ID_293134573" ENDARROW="Default" ENDINCLINATION="175;-873;" ID="Arrow_ID_1989504612" STARTARROW="None" STARTINCLINATION="768;94;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -18509,6 +18537,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1661721393893" ID="ID_293134573" MODIFIED="1661721423931" TEXT="Validierungs-Funktion">
|
||||
<linktarget COLOR="#c63166" DESTINATION="ID_293134573" ENDARROW="Default" ENDINCLINATION="64;-83;" ID="Arrow_ID_543159170" SOURCE="ID_1192772963" STARTARROW="None" STARTINCLINATION="-313;15;"/>
|
||||
<linktarget COLOR="#404289" DESTINATION="ID_293134573" ENDARROW="Default" ENDINCLINATION="175;-873;" ID="Arrow_ID_1989504612" SOURCE="ID_1939158808" STARTARROW="None" STARTINCLINATION="768;94;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1662051084085" ID="ID_906734828" MODIFIED="1662051103543" TEXT="Strategy::configure()"/>
|
||||
</node>
|
||||
|
|
@ -18554,7 +18583,7 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1662241779699" ID="ID_178231784" MODIFIED="1662241797228" TEXT="Placement-Icon">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1662241779699" ID="ID_178231784" MODIFIED="1664036010955" TEXT="#1236 Placement-Icon">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1662241785372" ID="ID_1501125340" MODIFIED="1662241797229" TEXT="Expander-Icon">
|
||||
|
|
@ -18597,6 +18626,436 @@
|
|||
<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 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>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664027101386" ID="ID_325165287" MODIFIED="1664027119181" TEXT="erforderliche Ausdehnung feststellen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664027121220" ID="ID_1123910943" MODIFIED="1664027234710" TEXT="für das ElementBoxWidget stets in Pixel">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
das ist eine Design/Architektur-Entscheidung; ein generisches Widget soll noch nicht mit dem speziellen Belang einer Eichung in Zeiteinheiten belastet werden; dies hat dann jeweils ins abgeleiteten Klassen zu erfolgen, so z.B im Clip-Widget
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664027274328" ID="ID_1533967380" MODIFIED="1664027327221" TEXT="Interaktionsmuster der Schnittstelle">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#435e98" CREATED="1664027342687" ID="ID_987588934" MODIFIED="1664028893912" TEXT="Analyse">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1664027374909" ID="ID_1916479707" MODIFIED="1664027563708" TEXT="Information wird von den GTK-Callbacks benötigt">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664027389923" ID="ID_1208852991" MODIFIED="1664027552105" TEXT="sie ist also berets zur Initialisierung (oder kurz danach) erforderlich">
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664027420141" ID="ID_217473035" MODIFIED="1664032905958" TEXT="wann und wie werden die Callbacks aufgerufen?">
|
||||
<linktarget COLOR="#bf4283" DESTINATION="ID_217473035" ENDARROW="Default" ENDINCLINATION="-989;57;" ID="Arrow_ID_1041626932" SOURCE="ID_945958753" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node CREATED="1664027451687" ID="ID_26942945" MODIFIED="1664027457671" TEXT="Vermutung...">
|
||||
<node CREATED="1664027458520" ID="ID_53350409" MODIFIED="1664027468099" TEXT="aus dem Event-Handling"/>
|
||||
<node CREATED="1664027505881" ID="ID_102723884" MODIFIED="1664027518260" TEXT="als Folge einer "invalidation""/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664027526879" ID="ID_849843415" MODIFIED="1664027540069" TEXT="an der konkreten Implementierung beobachten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664027626370" ID="ID_244953029" MODIFIED="1664027646110" TEXT="eine falsche Angabe führt zu (vorübergehend) falschem Layout"/>
|
||||
<node CREATED="1664027651294" ID="ID_1669994961" MODIFIED="1664028901505" TEXT="»push« bedeutet...">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1664027665253" ID="ID_940658024" MODIFIED="1664027681994" TEXT="das API ist einfach und die Verwendung natürlich"/>
|
||||
<node CREATED="1664027684394" ID="ID_220726069" MODIFIED="1664027717150" TEXT="der Nutzer muß sich an ein Protokoll halten"/>
|
||||
<node CREATED="1664027718941" ID="ID_319058319" MODIFIED="1664027737327" TEXT="falls die Info schon im ctor notwendig ist..."/>
|
||||
<node CREATED="1664027738275" ID="ID_1665189390" MODIFIED="1664027747373" TEXT="...dann braucht man zwei verschiedene APIs">
|
||||
<node CREATED="1664027751780" ID="ID_57107088" MODIFIED="1664027759172" TEXT="Initiale Spec"/>
|
||||
<node CREATED="1664027760042" ID="ID_296144190" MODIFIED="1664027767514" TEXT="Setter für spätere Änderung"/>
|
||||
</node>
|
||||
<node CREATED="1664027848116" ID="ID_1337478070" MODIFIED="1664027863406" TEXT="invalidation / redraw ergeben sich nebenbei (im Setter)"/>
|
||||
</node>
|
||||
<node CREATED="1664027866247" ID="ID_981182676" MODIFIED="1664028904533" TEXT="»pull« bedeutet...">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1664027887399" ID="ID_1658293889" MODIFIED="1664027910527" TEXT="der Nutzer muß zwei Getter-λ bereitstellen"/>
|
||||
<node CREATED="1664027980946" ID="ID_1814840612" MODIFIED="1664028017505" TEXT="diese sind aber nur notwendig, falls constrained extension gewünscht"/>
|
||||
<node CREATED="1664028024900" ID="ID_1409117153" MODIFIED="1664028235700" TEXT="dieses komplexe API könnte durch die ctor-DSL verständlich gemacht werden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...insofern dann die Beschränkung der Ausdehnung einzig dadurch aktiviert werden kann, daß man ein geeignetes Verb angibt, welches diese beiden Lambda als Argument nimmt
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664028265740" ID="ID_414167652" MODIFIED="1664028312456" TEXT="der Zugriff erfolgt natürlich, transparent und on-demand">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...und ich muß die Frage, wann genau diese Info bezogen wird, überhaupt nicht klären
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664028318861" ID="ID_1910143460" MODIFIED="1664028491553" TEXT="jede Metrik-Änderung muß dem Widget über ein separates API eigens gePUSHt werden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
wobei letztlich nur ein queue_resize erfolgen muß; es könnte also sein, daß dafür der Aufruf einer bestehenden GTK-Funktion genügt
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664028417616" ID="ID_743592439" MODIFIED="1664028542302" TEXT="idealerweise läßt sich das jedoch über den Parent-Container automatisieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...unter der Annahme, daß letzlich eine "invalidation" des Widgets genügt, ließe sich das elegant lösen, indem der Canvas-Container insgesamt "invalidated" wird.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1664028546726" ID="ID_1159408504" MODIFIED="1664028775997" TEXT="Enscheidung: »pull«-API">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
In Summe viel eleganter.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
das Dokumentations-Problem wird durch die DSL gelöst
|
||||
</li>
|
||||
<li>
|
||||
die "Invalidation" sollte sich aus dem Parent-Container ergeben
|
||||
</li>
|
||||
<li>
|
||||
damit bleiben hier praktisch keine Probleme mehr übrig
|
||||
</li>
|
||||
<li>
|
||||
Redundanz im DSL-API ist nicht wirklich ein Problem; Kind=CONTENT impliziert nicht notwendig auch ein geeichtes Display
|
||||
</li>
|
||||
<li>
|
||||
ansonsten sollte dieser Ansatz komplett transparent funktionieren, und dürfte weniger fragil sein
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664028782841" ID="ID_1596292708" MODIFIED="1664028795533" TEXT="Implementierung der Schnittstelle">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664028797404" ID="ID_1421736344" MODIFIED="1664028806653" TEXT="die λ speichern">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664028811314" ID="ID_1790496772" MODIFIED="1664028821834" TEXT="die Höhen-Angabe optional machen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664028833680" ID="ID_822885755" MODIFIED="1664029036890" TEXT="Prädikat: Erkennung size-constrained">
|
||||
<linktarget COLOR="#fff78b" DESTINATION="ID_822885755" ENDARROW="Default" ENDINCLINATION="-71;5;" ID="Arrow_ID_502040558" SOURCE="ID_10961106" STARTARROW="None" STARTINCLINATION="67;7;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664028974965" ID="ID_1683239335" MODIFIED="1664028982693" TEXT="Weiche in den Layout-Callbacks">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664028987763" ID="ID_10961106" MODIFIED="1664029045885" TEXT="beruht auf dem Prädikat">
|
||||
<arrowlink COLOR="#fff78b" DESTINATION="ID_822885755" ENDARROW="Default" ENDINCLINATION="-71;5;" ID="Arrow_ID_502040558" STARTARROW="None" STARTINCLINATION="67;7;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029083790" ID="ID_1708491997" MODIFIED="1664029103893" TEXT="Antwort der Callbacks implementieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029105419" ID="ID_1976797471" MODIFIED="1664029125271" TEXT="entweder per λ">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029112435" ID="ID_82095109" MODIFIED="1664030643111" TEXT="oder die Basis-Impl verwenden">
|
||||
<arrowlink COLOR="#6873c6" DESTINATION="ID_986565985" ENDARROW="Default" ENDINCLINATION="31;1;" ID="Arrow_ID_1518071893" STARTARROW="None" STARTINCLINATION="-102;26;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029128360" ID="ID_986565985" MODIFIED="1664030643111" TEXT="Aufruf der Basis-Impl vorsehen">
|
||||
<linktarget COLOR="#6873c6" DESTINATION="ID_986565985" ENDARROW="Default" ENDINCLINATION="31;1;" ID="Arrow_ID_1518071893" SOURCE="ID_82095109" STARTARROW="None" STARTINCLINATION="-102;26;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029223580" ID="ID_825294836" MODIFIED="1664029246522" TEXT="Framework zur Steuerung der Ausdehnung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664029250424" ID="ID_1097443082" MODIFIED="1664029265588" 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="#eee5c3" COLOR="#990000" CREATED="1664029340460" ID="ID_1398837731" MODIFIED="1664029426849" TEXT="Ausdehnung des Labels steuern">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664031831907" ID="ID_701574899" MODIFIED="1664031980972" TEXT="Problem: reaktiv getriggert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Bedingt durch das Aufrufschema können wir nicht zu Beginn steuernd eingreifen, sondern wir können nur erkennen, wenn das Sub-Widget (aus welchen Gründen auch immer) den extension-constraint verletzt. Und wir bekommen keine direkten Wirkfaktoren in die Hand (weil sich die Ausdehnung aus einem komplexen Zusammenspiel von Font, Pixelgröße und Styles ergibt)
|
||||
</p>
|
||||
</body>
|
||||
</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>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664032709767" ID="ID_89148369" MODIFIED="1664032719812" TEXT="einfache Lösung: per Seiteneffekt verbergen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664032721142" ID="ID_999001948" MODIFIED="1664033062210" TEXT="geht das?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...das heißt...
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
der GTK-Lyout-Callback wird aufgerufen
|
||||
</li>
|
||||
<li>
|
||||
er ruft die btr. Callbacks der Kinder auf, um deren <i>natürliche Größe</i> zu ermitteln
|
||||
</li>
|
||||
<li>
|
||||
wenn die Kinder nicht in den vorhandenen Platz passen, werden sie manipuliert oder verborgen
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664027420141" ID="ID_969143327" MODIFIED="1664032937882" TEXT="führt das zu einem re-Draw?">
|
||||
<linktarget COLOR="#bf4283" DESTINATION="ID_969143327" ENDARROW="Default" ENDINCLINATION="-1003;96;" ID="Arrow_ID_190980327" SOURCE="ID_945958753" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
</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 CREATED="1664033207476" ID="ID_1973707010" MODIFIED="1664033231388" TEXT="Idee: Label dynamisch kürzen">
|
||||
<icon BUILTIN="idea"/>
|
||||
</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;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664033233729" ID="ID_73562728" MODIFIED="1664033252543" TEXT="ggfs Übersetzungs-Faktor im Advice-System ablegen">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664033337194" ID="ID_142928718" MODIFIED="1664033344674" TEXT="Label-Komponente anlegen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664033348579" ID="ID_575467306" MODIFIED="1664033378313" TEXT="erst mal nur als eine Gruppierung mit HIlfsfunktionen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1664033361175" ID="ID_314954032" MODIFIED="1664033374574" TEXT="könnte später mal selber ein Custom-Widget werden">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664029346619" ID="ID_1680520179" MODIFIED="1664031788262" TEXT="Ausdehnung an den Content-Render weitergeben">
|
||||
<arrowlink COLOR="#5d8bc2" DESTINATION="ID_1572928176" ENDARROW="Default" ENDINCLINATION="74;-5;" ID="Arrow_ID_1521837627" STARTARROW="None" STARTINCLINATION="15;42;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664054650065" ID="ID_402860624" MODIFIED="1664054657328" TEXT="Konfiguration der Layout-Steuerung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664054365436" ID="ID_74006008" MODIFIED="1664054707374" TEXT="Shared Strategy">
|
||||
<linktarget COLOR="#fde2be" DESTINATION="ID_74006008" ENDARROW="Default" ENDINCLINATION="6;128;" ID="Arrow_ID_1045794051" SOURCE="ID_1399625126" STARTARROW="None" STARTINCLINATION="-266;36;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664055105139" ID="ID_594735349" MODIFIED="1664055121994" TEXT="sind mehrfache Indirektionen ein Problem?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1664055185035" ID="ID_1386788488" MODIFIED="1664055198439" TEXT="wir hätten konkrete Clip-delegates">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1664055199606" ID="ID_1356714491" MODIFIED="1664055210233" TEXT="also doch policy based design?">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<node CREATED="1664055305064" ID="ID_794765074" MODIFIED="1664055318882" TEXT="dann müßte ElementBoxWidget von der Strategy erben"/>
|
||||
<node CREATED="1664055333428" ID="ID_383670287" MODIFIED="1664055344687" TEXT="denn GTK verwendet bereits die VTable zur Differenzierung"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1664055432842" ID="ID_217414794" MODIFIED="1664055487432" TEXT="Keine Panik!">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1664055442553" ID="ID_94790418" MODIFIED="1664055480281">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Unterscheidung <i>resize</i> ⟺ <i>rerender</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1664055520691" ID="ID_1052240865" MODIFIED="1664055540263" TEXT="Resize ⟹ muß Anzahl der (realisierten) Widgets limitieren"/>
|
||||
<node CREATED="1664055541961" ID="ID_1385566332" MODIFIED="1664055595693" TEXT="reRender ⟹ bereits festgelegte Konfiguration + berechnetes Content-Pixmap"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664060239692" ID="ID_1617851912" MODIFIED="1664060250875" TEXT="also doch erst mal "bodenständig" beginnen">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664054377646" ID="ID_309729651" MODIFIED="1664054397978" TEXT="nur eine Instanz pro Render-Methode">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664054422047" ID="ID_1277984931" MODIFIED="1664054478616" TEXT="für konkrete Darstellung wird ein Ausführungskontext erstellt">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664054437613" ID="ID_409457601" MODIFIED="1664054479672" TEXT="Aufgabe: Ownership/Allokation für diesen Kontext">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664055065995" ID="ID_1022541607" MODIFIED="1664055102548" TEXT="nur eine Instanz pro konkrete Layout-Konfiguration(insgesamt)">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664055731547" ID="ID_1438169680" MODIFIED="1664055749953" TEXT="Daten der individuellen Instanz">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1664055752785" ID="ID_1076715259" MODIFIED="1664055785130">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Analyse: welche <i>beweglichen Teile </i>gibt es überhaupt?
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node CREATED="1664055792657" ID="ID_444290772" MODIFIED="1664055812602" TEXT="nameID">
|
||||
<node CREATED="1664055813925" ID="ID_911900339" MODIFIED="1664055832455" TEXT="steckt dann im konkreten Clip-Widget"/>
|
||||
<node CREATED="1664055833899" ID="ID_802603191" MODIFIED="1664055854529" TEXT="aufgedoppelt im Label-Widget-Content">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1664056044104" ID="ID_637592114" MODIFIED="1664056050520" TEXT="nicht zwangsläufig">
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
<node CREATED="1664056051832" ID="ID_528560555" MODIFIED="1664056323292" TEXT="möglicherweise die human-readable-Form">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...die name-ID muß eindeutig sein (modulo Objekt-Typ), weil allein daraus eine EntryID zu konstruieren ist, vermöge deren die Kommunikation über den Bus gesteuert wird. Daher ist es denkbar, daß die User [optional] eine mnemonische Form definieren wollen, und diese steht dann im Label-Widget. Und noch etwas: der Label-Text wird ggfs. zur Anzeige gekürzt, also muß irgendwo der Basis-Text stehen (es sei denn, man holt sich den via Request über den Bus)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664055888396" ID="ID_926506496" MODIFIED="1664055891599" TEXT="expander">
|
||||
<node CREATED="1664055910665" ID="ID_209252458" MODIFIED="1664055945904" TEXT="λ-Binding auf eine konkrete Controller-Instanz"/>
|
||||
</node>
|
||||
<node CREATED="1664055998046" ID="ID_298956950" MODIFIED="1664056000233" TEXT="placement">
|
||||
<node CREATED="1664056001597" ID="ID_1442530188" MODIFIED="1664056035412" TEXT="nur ein ID-Binding (⟹ ergibt sich aus Name-ID)"/>
|
||||
<node CREATED="1664056374416" ID="ID_316046833" MODIFIED="1664057693354" TEXT="(auch) hier ergibt sich die Notwendigkeit eines re-Populations-Diff">
|
||||
<arrowlink COLOR="#fec2a0" DESTINATION="ID_501539344" ENDARROW="Default" ENDINCLINATION="-1291;-991;" ID="Arrow_ID_189200159" STARTARROW="None" STARTINCLINATION="-1328;59;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664059454965" ID="ID_223766358" MODIFIED="1664059458062" TEXT="extension">
|
||||
<node CREATED="1664059464264" ID="ID_1408566346" MODIFIED="1664059479665" TEXT="[optional] constraint auf die Ausdehnung des Widget"/>
|
||||
<node CREATED="1664059513545" ID="ID_540642643" MODIFIED="1664059533917" TEXT="zum Einen das Lösungs-Schema (λ)"/>
|
||||
<node CREATED="1664059545013" ID="ID_12537442" MODIFIED="1664059564982" TEXT="außerdem konkret...">
|
||||
<node CREATED="1664059565714" ID="ID_49571341" MODIFIED="1664059570221" TEXT="das Canvas-Attachment"/>
|
||||
<node CREATED="1664059571305" ID="ID_1576639126" MODIFIED="1664059589554" TEXT="die zeitliche Ausdehnung des Clip"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664059631345" ID="ID_710374893" MODIFIED="1664059636180" TEXT="content-Renderer">
|
||||
<node CREATED="1664059679707" ID="ID_1826707626" MODIFIED="1664059710722" TEXT="Name-ID genügt ⟹ Zugang zum konkreten Medium via Steam"/>
|
||||
<node CREATED="1664059758792" ID="ID_665980098" MODIFIED="1664059964811" TEXT="[nur temporär] laufende Renderer-Instanz">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
analog wie ein Player; während das Content-Rendering läuft muß der Clip eine Registrierung in einem zuständigen OutputManager aufrechterhalten, um die berechneten Pixmaps dann entgegenzunehmen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664059979870" ID="ID_1021249462" MODIFIED="1664060176885" TEXT="Information zu den vorhandenen Pixmaps, sowie deren Bedeutung">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...wir speichern ganz sicher nicht ein Mini-Bild für jeden Frame eines Video, sondern brauchen hier wohl eine Art lokales Caching; das heißt, die Pixmaps für einen aktiven Bereich plus eine gewisse Umgebung sind direkt greifbar im GUI. Dieses Caching ist aber nur ein 1st-Level, denn wir wollen den (als sehr elaboriert konzipierten) globalen Frame-Cache auch für diesen Zweck mitbenutzen; schließlich dürften diese Vorschaubilder die häufigsten laufenden Rendervorgänge sein...
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664060277055" ID="ID_319446276" MODIFIED="1664060297750" TEXT="Strategy als lokales Front-End anlegen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664060308706" ID="ID_346748114" MODIFIED="1664060333637" TEXT="gruppiert die wählbaren Detail-Strategien und Binding-λ"/>
|
||||
<node CREATED="1664060335335" ID="ID_210836901" MODIFIED="1664060373437" TEXT="hält die Informationen für den Zugang zu den individuellen Instanz-Werten"/>
|
||||
<node CREATED="1664060379716" ID="ID_853921300" MODIFIED="1664060395210" TEXT="und zwar insofern diese zur Verwendung der generischen Strategy notwendig sind"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664030148144" ID="ID_1938112956" MODIFIED="1664030157478" TEXT="Framework für Content-Renderer">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664036078380" ID="ID_750958309" MODIFIED="1664036087161" TEXT="#1237 Design for Content Renderer framework">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664030163430" ID="ID_1789916626" MODIFIED="1664030172407" TEXT="Design: Interface-Komponente">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664030181011" ID="ID_741977554" MODIFIED="1664030201167" TEXT="Steuerung via ctor-DSL prüfen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664030206720" ID="ID_1572928176" MODIFIED="1664031781637" TEXT="Analyse zum Thema: Zeit/Ausdehnung">
|
||||
<linktarget COLOR="#5d8bc2" DESTINATION="ID_1572928176" ENDARROW="Default" ENDINCLINATION="74;-5;" ID="Arrow_ID_1521837627" SOURCE="ID_1680520179" STARTARROW="None" STARTINCLINATION="15;42;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1664050286058" ID="ID_1762124621" MODIFIED="1664050305208" TEXT="Vorsicht: Overhead">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1664050307047" ID="ID_1064025353" MODIFIED="1664050317347" TEXT="Flyweight-Pattern?">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664054365436" ID="ID_1399625126" MODIFIED="1664054741234" TEXT="Shared Strategy">
|
||||
<arrowlink COLOR="#fde2be" DESTINATION="ID_74006008" ENDARROW="Default" ENDINCLINATION="6;128;" ID="Arrow_ID_1045794051" STARTARROW="None" STARTINCLINATION="-266;36;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664030240987" ID="ID_1818560319" MODIFIED="1664030267363" TEXT="Verwendung ohne Content-Renderer">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1664030268583" ID="ID_161979546" MODIFIED="1664030302799" TEXT="das ist der Regelfall">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1664030284814" ID="ID_1970065313" MODIFIED="1664030295541" TEXT="hierfür geeigneten CSS-Selector vorsehen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1661703437825" ID="ID_1401386216" MODIFIED="1661703453368" TEXT="proportional Head placement">
|
||||
|
|
@ -18741,6 +19200,15 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664032772511" ID="ID_1018439357" MODIFIED="1664032782461" TEXT="Untersuchungen">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664032818869" ID="ID_945958753" MODIFIED="1664033227851" TEXT="GTK-Interna">
|
||||
<arrowlink COLOR="#bf4283" DESTINATION="ID_217473035" ENDARROW="Default" ENDINCLINATION="-989;57;" ID="Arrow_ID_1041626932" STARTARROW="None" STARTINCLINATION="260;-42;"/>
|
||||
<arrowlink COLOR="#bf4283" 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;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1654445541606" ID="ID_520455096" MODIFIED="1654445545420" TEXT="Integrieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1654445546655" ID="ID_1539832096" MODIFIED="1654445562461" TEXT="einfaches ElementBoxWidget...">
|
||||
|
|
@ -26803,7 +27271,7 @@
|
|||
</node>
|
||||
</node>
|
||||
<node CREATED="1541861495569" ID="ID_1828075998" MODIFIED="1557498707230" TEXT="Thema: ZoomWindow">
|
||||
<arrowlink COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-599;-1344;" ID="Arrow_ID_842684168" STARTARROW="None" STARTINCLINATION="417;51;"/>
|
||||
<arrowlink COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-599;-1344;" ID="Arrow_ID_842684168" STARTARROW="None" STARTINCLINATION="426;56;"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1612027709754" ID="ID_694928494" MODIFIED="1612027847880" TEXT="Kann u.U. Clips aus der Anzeige ausblenden">
|
||||
<arrowlink COLOR="#654e8d" DESTINATION="ID_1027750978" ENDARROW="Default" ENDINCLINATION="-33;-18;" ID="Arrow_ID_1904178479" STARTARROW="None" STARTINCLINATION="-254;16;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -27959,7 +28427,7 @@
|
|||
</node>
|
||||
<node CREATED="1563019837771" ID="ID_331912016" MODIFIED="1563021396900" TEXT="generiere und publiziere einen CSS-Pfad">
|
||||
<arrowlink COLOR="#4b31cd" DESTINATION="ID_678877446" ENDARROW="Default" ENDINCLINATION="-711;38;" ID="Arrow_ID_643305825" STARTARROW="Default" STARTINCLINATION="-237;18;"/>
|
||||
<arrowlink COLOR="#4b31cd" DESTINATION="ID_1755242650" ENDARROW="Default" ENDINCLINATION="-1204;55;" ID="Arrow_ID_847790641" STARTARROW="Default" STARTINCLINATION="-1798;0;"/>
|
||||
<arrowlink COLOR="#4b31cd" DESTINATION="ID_1755242650" ENDARROW="Default" ENDINCLINATION="-1204;55;" ID="Arrow_ID_847790641" STARTARROW="Default" STARTINCLINATION="-1782;0;"/>
|
||||
<node CREATED="1563019856854" ID="ID_1799510436" MODIFIED="1563019861202" TEXT="Gtk::WidgetPath"/>
|
||||
<node CREATED="1563019863670" ID="ID_1584577599" MODIFIED="1563019868785" TEXT="Gtk::StyleContext">
|
||||
<node CREATED="1563110305840" ID="ID_1669038361" MODIFIED="1563110358754" TEXT="kann Backround füllen">
|
||||
|
|
@ -31563,14 +32031,14 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1532788529509" ID="ID_390131579" MODIFIED="1533388695623" TEXT="Trigger-Punkt">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1532788547560" ID="ID_1581791639" MODIFIED="1532788625456" TEXT="muß in der GTK-Event-Loop liegen">
|
||||
<node COLOR="#435e98" CREATED="1532788547560" ID="ID_1581791639" MODIFIED="1664059203522" TEXT="muß in der GTK-Event-Loop liegen">
|
||||
<linktarget COLOR="#9d1a41" DESTINATION="ID_1581791639" ENDARROW="Default" ENDINCLINATION="-211;-16;" ID="Arrow_ID_1635616322" SOURCE="ID_387089286" STARTARROW="None" STARTINCLINATION="-419;0;"/>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1532788645307" ID="ID_254810710" MODIFIED="1561827465292" TEXT="Trigger-Technik klären">
|
||||
<node COLOR="#338800" CREATED="1532788645307" FOLDED="true" ID="ID_254810710" MODIFIED="1561827465292" TEXT="Trigger-Technik klären">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1532788681197" HGAP="336" ID="ID_32192034" MODIFIED="1576282358033" TEXT="bei GTK selber abschauen" VSHIFT="-52">
|
||||
<node COLOR="#435e98" CREATED="1532788681197" HGAP="336" ID="ID_32192034" MODIFIED="1576282358033" TEXT="bei GTK selber abschauen" VSHIFT="-52">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
|
|
@ -31787,7 +32255,7 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1532788727680" HGAP="69" ID="ID_889790361" MODIFIED="1561827465306" TEXT="Gtk::Main auf aktuellem Stand" VSHIFT="12">
|
||||
<node COLOR="#338800" CREATED="1532788727680" FOLDED="true" HGAP="69" ID="ID_889790361" MODIFIED="1561827465306" TEXT="Gtk::Main auf aktuellem Stand" VSHIFT="12">
|
||||
<linktarget COLOR="#70dcb9" DESTINATION="ID_889790361" ENDARROW="Default" ENDINCLINATION="1185;0;" ID="Arrow_ID_1988524020" SOURCE="ID_1815764983" STARTARROW="Default" STARTINCLINATION="-2084;0;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1532788737366" ID="ID_1527913663" MODIFIED="1532788745870" TEXT="aktuellen Code bereitlegen in Eclipse">
|
||||
|
|
@ -32001,7 +32469,7 @@
|
|||
<icon BUILTIN="full-3"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1533221103349" ID="ID_1053145038" MODIFIED="1533388653067" TEXT="Anker">
|
||||
<node COLOR="#338800" CREATED="1533221103349" FOLDED="true" ID="ID_1053145038" MODIFIED="1533388653067" TEXT="Anker">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533221107205" ID="ID_1202141905" MODIFIED="1533221141349" TEXT="es muß der InteractionDirector sein">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
|
|
@ -32009,7 +32477,7 @@
|
|||
<node CREATED="1533221115139" ID="ID_1655397510" MODIFIED="1533221117607" TEXT="wer sonst?"/>
|
||||
<node CREATED="1533221118267" ID="ID_517862983" MODIFIED="1533221132317" TEXT="er verkörpert "das Globale""/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533221145295" ID="ID_45639892" MODIFIED="1561827465314" TEXT="Problem: Zugang zum NotificationService">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1533221145295" ID="ID_45639892" MODIFIED="1664059212889" TEXT="Problem: Zugang zum NotificationService">
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
<node CREATED="1533221554888" ID="ID_1545304194" MODIFIED="1533221603239" TEXT="wird explizit erst von UiManager::performMainLoop() installiert">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
|
|
@ -32227,6 +32695,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_501539344" MODIFIED="1557498707233" TEXT="re-populate Content">
|
||||
<linktarget COLOR="#fec680" DESTINATION="ID_501539344" ENDARROW="Default" ENDINCLINATION="-1280;-81;" ID="Arrow_ID_938812574" SOURCE="ID_977311190" STARTARROW="None" STARTINCLINATION="335;22;"/>
|
||||
<linktarget COLOR="#fec2a0" DESTINATION="ID_501539344" ENDARROW="Default" ENDINCLINATION="-1291;-991;" ID="Arrow_ID_189200159" SOURCE="ID_316046833" STARTARROW="None" STARTINCLINATION="-1328;59;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1538942086509" ID="ID_1492693885" MODIFIED="1557498707233" TEXT="wenn ein UI-Element für eine bestehende Entität wiederaufgebaut wird">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -33868,6 +34337,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1664031608178" ID="ID_1388493107" MODIFIED="1664031621917" TEXT="aber Widgets arbeiten typischerweise mit Integer"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1619697245422" ID="ID_1061197338" MODIFIED="1619804310109" TEXT="Forwarding über mehrere Schritte">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -34917,10 +35387,11 @@
|
|||
</node>
|
||||
</node>
|
||||
<node CREATED="1488423514355" ID="ID_917891687" MODIFIED="1557498707233" TEXT="Steuerelemente">
|
||||
<node CREATED="1541858529489" ID="ID_838803024" MODIFIED="1557498707233" TEXT="ZoomWindow">
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1541858529489" ID="ID_838803024" MODIFIED="1664058686704" TEXT="ZoomWindow">
|
||||
<linktarget COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-519;-1168;" ID="Arrow_ID_1674512697" SOURCE="ID_1949450244" STARTARROW="None" STARTINCLINATION="446;0;"/>
|
||||
<linktarget COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-599;-1344;" ID="Arrow_ID_842684168" SOURCE="ID_1828075998" STARTARROW="None" STARTINCLINATION="417;51;"/>
|
||||
<linktarget COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-599;-1344;" ID="Arrow_ID_842684168" SOURCE="ID_1828075998" STARTARROW="None" STARTINCLINATION="426;56;"/>
|
||||
<linktarget COLOR="#8e7ba1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="171;760;" ID="Arrow_ID_1707924491" SOURCE="ID_1065721692" STARTARROW="None" STARTINCLINATION="-1855;126;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541858541550" ID="ID_1912142591" MODIFIED="1557498707233" TEXT="generische Abstraktionskomponente">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -52002,8 +52473,8 @@
|
|||
<node CREATED="1482524516371" ID="ID_396707258" MODIFIED="1557498707236" TEXT="Event-Sourcing">
|
||||
<node CREATED="1539135156755" ID="ID_1302245670" MODIFIED="1557498707236" TEXT="vermittelnder Träger">
|
||||
<node CREATED="1539134733747" ID="ID_1189184036" MODIFIED="1557498707236" TEXT="DiffConstituent">
|
||||
<linktarget COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-767;-123;" ID="Arrow_ID_156898929" SOURCE="ID_353086867" STARTARROW="None" STARTINCLINATION="-1608;-84;"/>
|
||||
<linktarget COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-432;-65;" ID="Arrow_ID_1794591374" SOURCE="ID_1179407482" STARTARROW="None" STARTINCLINATION="-1379;-131;"/>
|
||||
<linktarget COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-767;-123;" ID="Arrow_ID_156898929" SOURCE="ID_353086867" STARTARROW="None" STARTINCLINATION="-1608;-84;"/>
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<node CREATED="1539134841549" ID="ID_818387120" MODIFIED="1557498707236" TEXT="neues Konzept">
|
||||
<icon BUILTIN="idea"/>
|
||||
|
|
@ -57559,8 +58030,8 @@
|
|||
<node CREATED="1663946250024" ID="ID_1142643633" MODIFIED="1663946255308" TEXT="Layout management">
|
||||
<node CREATED="1663946256977" ID="ID_1464608958" MODIFIED="1663946261875" TEXT="Thema: Size-Handling">
|
||||
<node COLOR="#435e98" CREATED="1612527499386" HGAP="34" ID="ID_615948747" MODIFIED="1663946547267" TEXT="Untersuchung: size_request — 2/21 für Clip-Display" VSHIFT="-49">
|
||||
<linktarget COLOR="#4b67b0" DESTINATION="ID_615948747" ENDARROW="Default" ENDINCLINATION="-1100;0;" ID="Arrow_ID_1297405131" SOURCE="ID_1143769023" STARTARROW="None" STARTINCLINATION="-2000;141;"/>
|
||||
<linktarget COLOR="#364ec7" DESTINATION="ID_615948747" ENDARROW="Default" ENDINCLINATION="-1440;0;" ID="Arrow_ID_866144981" SOURCE="ID_643882250" STARTARROW="None" STARTINCLINATION="-1942;189;"/>
|
||||
<linktarget COLOR="#4b67b0" DESTINATION="ID_615948747" ENDARROW="Default" ENDINCLINATION="-1100;0;" ID="Arrow_ID_1297405131" SOURCE="ID_1143769023" STARTARROW="None" STARTINCLINATION="-2000;141;"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1612530135923" ID="ID_597723725" MODIFIED="1612530155607" TEXT="gtkwidget.c Zeile 5960ff">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -57737,9 +58208,9 @@
|
|||
</node>
|
||||
<node CREATED="1612527537150" ID="ID_619170334" MODIFIED="1663967533656" TEXT="gtk_widget_size_allocate">
|
||||
<arrowlink COLOR="#5c5a78" DESTINATION="ID_1103556230" ENDARROW="Default" ENDINCLINATION="-618;-30;" ID="Arrow_ID_1785324866" STARTARROW="Default" STARTINCLINATION="-4;247;"/>
|
||||
<linktarget COLOR="#4c96df" DESTINATION="ID_619170334" ENDARROW="Default" ENDINCLINATION="22;-288;" ID="Arrow_ID_1708313707" SOURCE="ID_1762849787" STARTARROW="None" STARTINCLINATION="-77;137;"/>
|
||||
<linktarget COLOR="#4c96df" DESTINATION="ID_619170334" ENDARROW="Default" ENDINCLINATION="22;-288;" ID="Arrow_ID_89255297" SOURCE="ID_462243081" STARTARROW="None" STARTINCLINATION="-30;150;"/>
|
||||
<linktarget COLOR="#4c96df" DESTINATION="ID_619170334" ENDARROW="Default" ENDINCLINATION="22;-288;" ID="Arrow_ID_1241133759" SOURCE="ID_563938836" STARTARROW="None" STARTINCLINATION="-30;150;"/>
|
||||
<linktarget COLOR="#4c96df" DESTINATION="ID_619170334" ENDARROW="Default" ENDINCLINATION="22;-288;" ID="Arrow_ID_89255297" SOURCE="ID_462243081" STARTARROW="None" STARTINCLINATION="-30;150;"/>
|
||||
<linktarget COLOR="#4c96df" DESTINATION="ID_619170334" ENDARROW="Default" ENDINCLINATION="22;-288;" ID="Arrow_ID_1708313707" SOURCE="ID_1762849787" STARTARROW="None" STARTINCLINATION="-77;137;"/>
|
||||
<node CREATED="1612528130053" ID="ID_1806340634" MODIFIED="1612528177893" TEXT="macht nur etwas für "toplevel"-Widgets">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
|
@ -60386,6 +60857,60 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664058018889" HGAP="70" ID="ID_1933523990" MODIFIED="1664058038958" TEXT="Leit-Aufgaben" VSHIFT="13">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
<node CREATED="1664058052677" ID="ID_671587918" MODIFIED="1664058055024" TEXT="aktiv">
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1664059317203" ID="ID_995858352" MODIFIED="1664059342161" TEXT="#1221 Playback Vertical Slice">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#174f60" CREATED="1664058057316" FOLDED="true" ID="ID_1582660555" MODIFIED="1664059276465" TEXT="vergessen">
|
||||
<icon BUILTIN="licq"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664058236108" ID="ID_616634560" LINK="#ID_633007604" MODIFIED="1664058551602" TEXT="Design um den Display-Frame im Timeline-Layout">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Das Thema »Layout-Steuerung in der Timeline« lief aus dem Ruder (wie erwartet — warum soll's mir besser gehen, als Joel Holdsworth?). Ich habe dahinter aber ein Architektur-Problem identifiziert, nämlich daß hier eine selbs-ähnliche rekursive Struktur notwendig ist, welche aber mehrere separate Kontexte überspannt. Dafür habe ich die Entität <font face="Monospaced" size="3">DisplayFrame</font>  erfunden, und die Idee war, diesen als Kristallisationskern zu verwenden, um die gesamte Struktur um das Timeline-Layout zu reinigen. Leider konnte ich das aber (Stand 9/2022) nicht weiterführen, weil ich nun das GUI wieder verlassen muß, um an der RenderEngine weiterzuarbeiten...
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664058723731" ID="ID_14178897" LINK="#ID_838803024" MODIFIED="1664058890277" TEXT="generisches Konzept zur Zoom/View-Steuerung">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
....dieses Thema sollte generisch gelöst werden, und dann weiter entwickelt in Richtung »Interaction Design« — also mit einem aktuellen Fokus verbunden, und mit jeweils eigener Historie pro Fokus, so daß man in die verschiedenen Fokus-Zonen über gut etablierte "Leitern" wieder einsteigen könnte. Leider muß ich (Stand 9/2022) das GUI nun wieder verlassen, und es ist ganz und gar ungeklärt, unter welchen Umständen dieses zentrale Thema wieder aufgenommen werden kann...
|
||||
</p>
|
||||
<p>
|
||||
<a href="#ID_633007604" target="_blank">~ <font color="#5c4d6e"><img src="images/icons/hourglass.png" alt="Waiting" />Design um den Display-Frame im Timeline-Layout</font> </a>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664059040648" ID="ID_335528916" LINK="#ID_1734927969" MODIFIED="1664059164915" TEXT="GTK+GIO : Interna dokumentieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...beim Herauslösen aus dem Gnome-Application / GIO-Framework habe ich detailiert die Strukturen um die Main-Loop untersucht und verstanden. Leider stehen diese Infos bisher (Stand 9/2022) nur in meiner Mindmap; ich sollte eine eigene Kategorie in der Webseite/Dokumentation schaffen, in der solche Einsichten aufgezeichnet werden können...
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1664058062651" ID="ID_1510416990" MODIFIED="1664058067537" TEXT="abgschlossen"/>
|
||||
</node>
|
||||
<node CREATED="1522933444542" ID="ID_1027224176" MODIFIED="1557498707241" TEXT="Themen">
|
||||
<node CREATED="1522933640027" ID="ID_191198072" MODIFIED="1557498707241" TEXT="UI-Connection">
|
||||
<icon BUILTIN="full-1"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue