From 10c2e4b9a9e972692bf890d34d42cfdc06b5f081 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Mon, 17 Apr 2017 20:00:07 +0200 Subject: [PATCH] CmdAccess: rename the front-end to CmdContext to clarify the purpose --- doc/devel/uml/Command-ui-access.png | Bin 23081 -> 24406 bytes .../{cmd-access.cpp => cmd-context.cpp} | 10 +- .../{cmd-access.hpp => cmd-context.hpp} | 36 +- src/proc/cmd.hpp | 1 - src/proc/cmd/session-cmd.cpp | 4 +- src/proc/control/command-instance-manager.hpp | 2 +- src/proc/control/command-setup.hpp | 3 +- ...d-access-test.cpp => cmd-context-test.cpp} | 17 +- uml/Lumiera.xmi | 8650 ++--------------- wiki/renderengine.html | 10 +- 10 files changed, 631 insertions(+), 8102 deletions(-) rename src/gui/interact/{cmd-access.cpp => cmd-context.cpp} (81%) rename src/gui/interact/{cmd-access.hpp => cmd-context.hpp} (62%) rename tests/gui/interact/{cmd-access-test.cpp => cmd-context-test.cpp} (80%) diff --git a/doc/devel/uml/Command-ui-access.png b/doc/devel/uml/Command-ui-access.png index a3f2d8cce71de953d7f74925675ef54f222ba265..f645a00241d269cfa87046215bf546c909750fc4 100644 GIT binary patch literal 24406 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 diff --git a/src/gui/interact/cmd-access.cpp b/src/gui/interact/cmd-context.cpp similarity index 81% rename from src/gui/interact/cmd-access.cpp rename to src/gui/interact/cmd-context.cpp index e20a86751..547b517e0 100644 --- a/src/gui/interact/cmd-access.cpp +++ b/src/gui/interact/cmd-context.cpp @@ -1,5 +1,5 @@ /* - CmdAccessor - interface to access command invocation services within the UI + CmdContext - interface to access command context binding services within the UI Copyright (C) Lumiera.org 2017, Hermann Vosseler @@ -21,8 +21,8 @@ * *****************************************************/ -/** @file cmd-access.cpp - ** Implementation details of command invocation services for the UI. +/** @file cmd-context.cpp + ** Implementation details of support for context-bound commands. ** ** @see TODO___cmd-access-test.cpp ** @@ -32,7 +32,7 @@ //#include "lib/util.hpp" //#include "lib/symbol.hpp" //#include "include/logging.h" -#include "gui/interact/cmd-access.hpp" +#include "gui/interact/cmd-context.hpp" //#include //#include @@ -53,7 +53,7 @@ namespace interact { - CmdAccess::~CmdAccess() { } // Emit dtors of embedded objects here... + CmdContext::~CmdContext() { } // Emit dtors of embedded objects here... diff --git a/src/gui/interact/cmd-access.hpp b/src/gui/interact/cmd-context.hpp similarity index 62% rename from src/gui/interact/cmd-access.hpp rename to src/gui/interact/cmd-context.hpp index 1ae590841..881fd16a7 100644 --- a/src/gui/interact/cmd-access.hpp +++ b/src/gui/interact/cmd-context.hpp @@ -1,5 +1,5 @@ /* - CMD-ACCESSOR.hpp - interface to access command invocation services within the UI + CMD-CONTEXT.hpp - interface to access command context binding services within the UI Copyright (C) Lumiera.org 2017, Hermann Vosseler @@ -21,13 +21,19 @@ */ -/** @file cmd-access.hpp - ** Abstraction: access to command invocation for UI-Elements. - ** The interact::CmdAccess front-end is used by any UI element about to invoke and dispatch - ** commands into the session via ProcDispatcher. To invoke a command, typically it is necessary - ** to prepare a _command instance_ and to pick up and bind _command arguments._ This can be achieved +/** @file cmd-context.hpp + ** Abstraction: support for binding command invocation into an UI context. + ** The interact::CmdContext front-end is used when commands need to be bound to a whole context + ** of UI elements rather than to a specific widget -- especially for picking up command arguments + ** from interaction state found within that context. To invoke a command, typically it is necessary + ** to prepare a _command instance_ and to pick up and bind _command arguments._ In most cases, this + ** can be done directly, using a fixed command-ID and locally known argument values. But in the + ** aforementioned special situation, we have to deal with ongoing user interactions, which might + ** span several widgets, where some interaction events just happen to make invocation of a specific + ** command viable. The prototypical example is when some element is dragged around, and, depending + ** on the vicinity, might cause quite different actions when dropped. Such behaviour can be achieved ** with the help of an intermediary, known as ["interaction state manager"](\ref InteractionState). - ** Thus, the command accessor allows to discover a specific InteractionState instance, which + ** The command context accessor allows to discover a specific InteractionState instance, which ** - is responsible for the specific command to be invoked ** - can handle context information related to a specific _control system_ (e.g mouse, keyboard, ** hardware controller, pen) @@ -37,14 +43,14 @@ ** ** @todo as of 3/2017 this is a early design draft and WIP-WIP-WIP ** - ** @see TODO___cmd-access-test.cpp + ** @see CmdContext_test ** @see ////TODO_test usage example ** */ -#ifndef GUI_INTERACT_CMD_ACCESS_H -#define GUI_INTERACT_CMD_ACCESS_H +#ifndef GUI_INTERACT_CMD_CONTEXT_H +#define GUI_INTERACT_CMD_CONTEXT_H #include "lib/error.hpp" @@ -70,18 +76,18 @@ namespace interact { * Abstract foundation of UI state tracking components. * @todo write type comment... */ - class CmdAccess + class CmdContext : boost::noncopyable { public: - ~CmdAccess(); ///< @todo do we need a VTable / virtual dtor? + ~CmdContext(); ///< @todo do we need a VTable / virtual dtor? /* === access front-end === */ static Symbol to (Symbol cmdID, string ctxID); - friend CmdAccess& - cmdAccess (Symbol instanceID) + friend CmdContext& + cmdContext (Symbol instanceID) { UNIMPLEMENTED ("cmd access front-end"); } @@ -92,4 +98,4 @@ namespace interact { }} // namespace gui::interact -#endif /*GUI_INTERACT_CMD_ACCESS_H*/ +#endif /*GUI_INTERACT_CMD_CONTEXT_H*/ diff --git a/src/proc/cmd.hpp b/src/proc/cmd.hpp index cd057be40..752a0f0e5 100644 --- a/src/proc/cmd.hpp +++ b/src/proc/cmd.hpp @@ -29,7 +29,6 @@ ** ** @see command.hpp ** @see command-def.hpp - ** @see cmd-access.hpp ** @see TODO_CommandGuiUsage_test ** */ diff --git a/src/proc/cmd/session-cmd.cpp b/src/proc/cmd/session-cmd.cpp index e368fc108..47b144a90 100644 --- a/src/proc/cmd/session-cmd.cpp +++ b/src/proc/cmd/session-cmd.cpp @@ -28,8 +28,8 @@ ** @see cmd.hpp ** @see command.hpp ** @see command-def.hpp - ** @see cmd-access.hpp - ** @see TODO_CommandGuiUsage_test + ** @see cmd-context.hpp + ** @see SessionCommandFunction_test ** */ diff --git a/src/proc/control/command-instance-manager.hpp b/src/proc/control/command-instance-manager.hpp index 9372dc266..d44523ceb 100644 --- a/src/proc/control/command-instance-manager.hpp +++ b/src/proc/control/command-instance-manager.hpp @@ -47,7 +47,7 @@ ** @see command.hpp ** @see command-def.hpp ** @see command-setup.hpp - ** @see cmd-access.hpp + ** @see session-command-service.hpp ** @see CommandInstanceManager_test ** */ diff --git a/src/proc/control/command-setup.hpp b/src/proc/control/command-setup.hpp index b1176912b..c77f5c8c8 100644 --- a/src/proc/control/command-setup.hpp +++ b/src/proc/control/command-setup.hpp @@ -41,8 +41,9 @@ ** ** @see command-def.hpp ** @see command.hpp - ** @see cmd-access.hpp ** @see CommandSetup_test + ** @see cmd.hpp + ** @see cmd-context.hpp ** */ diff --git a/tests/gui/interact/cmd-access-test.cpp b/tests/gui/interact/cmd-context-test.cpp similarity index 80% rename from tests/gui/interact/cmd-access-test.cpp rename to tests/gui/interact/cmd-context-test.cpp index 6694ffc5a..2271e1ba9 100644 --- a/tests/gui/interact/cmd-access-test.cpp +++ b/tests/gui/interact/cmd-context-test.cpp @@ -1,5 +1,5 @@ /* - CmdAccess(Test) - verify access to command invocation state + CmdContext(Test) - verify access to command invocation state Copyright (C) Lumiera.org 2017, Hermann Vosseler @@ -20,14 +20,14 @@ * *****************************************************/ -/** @file cmd-access-test.cpp - ** unit test \ref CmdAccess_test +/** @file cmd-context-test.cpp + ** unit test \ref CmdContext_test */ #include "lib/test/run.hpp" //#include "lib/test/test-helper.hpp" -#include "gui/interact/cmd-access.hpp" +#include "gui/interact/cmd-context.hpp" //#include "lib/idi/entry-id.hpp" //#include "lib/diff/gen-node.hpp" //#include "lib/util.hpp" @@ -49,26 +49,27 @@ namespace test { // using lumiera::error::LUMIERA_ERROR_WRONG_TYPE; - /**************************************************************************//** - * @test verify the front-end to access commands, command argument binding + /******************************************************************************//** + * @test verify the front-end for context bound commands, command argument binding * and invocation state from within the UI structures. * * @see CmdAccess * @see CommandSetup_test * @see SessionCommandFunction_test */ - class CmdAccess_test : public Test + class CmdContext_test : public Test { virtual void run (Arg) { + UNIMPLEMENTED ("context bound commands"); } }; /** Register this test class... */ - LAUNCHER (CmdAccess_test, "unit gui"); + LAUNCHER (CmdContext_test, "unit gui"); }}} // namespace gui::interact::test diff --git a/uml/Lumiera.xmi b/uml/Lumiera.xmi index 3cfefa233..cd0c2cbeb 100644 --- a/uml/Lumiera.xmi +++ b/uml/Lumiera.xmi @@ -1,5 +1,5 @@ - + umbrello uml modeller http://umbrello.kde.org @@ -54,9 +54,10 @@ - - + + + @@ -219,16 +220,16 @@ - + - - - - + + + + @@ -288,13 +289,13 @@ - + - + @@ -302,7 +303,7 @@ - + @@ -318,7 +319,7 @@ - + @@ -496,6 +497,7 @@ + @@ -507,7 +509,7 @@ - + @@ -588,96 +590,89 @@ - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - - + + + - + - - + + - + - + - + - + - - + + - + - - + + + - + - - - - - - - - - - + + @@ -808,7 +803,7 @@ - + @@ -842,6 +837,7 @@ + @@ -874,7 +870,7 @@ - + @@ -976,43 +972,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+ @@ -1062,72 +1022,138 @@
+ +
+ + + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ + + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ + + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+ +
- +
- +
- +
- +
- +
- +
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- +
@@ -1135,9 +1161,121 @@
- + - + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ + + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+ + +
@@ -1210,11 +1348,11 @@ - +
- +
@@ -1280,7 +1418,7 @@ - +
@@ -1297,11 +1435,11 @@ - +
- +
@@ -1321,7 +1459,7 @@
- +
@@ -1384,11 +1522,11 @@ - +
- +
@@ -1454,7 +1592,7 @@
- +
@@ -1471,11 +1609,11 @@ - +
- +
@@ -1495,7 +1633,7 @@
- +
@@ -1914,41 +2052,6 @@
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
@@ -1999,78 +2102,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -2220,43 +2252,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -2281,78 +2277,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -2377,584 +2302,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
- -
- -
- -
- -
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
- -
- -
- -
- -
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -2979,43 +2327,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -3044,172 +2356,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -3250,172 +2396,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -3427,43 +2407,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -3492,172 +2436,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -3678,7 +2456,7 @@ - +
@@ -3698,172 +2476,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -3875,78 +2487,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -3975,172 +2516,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -4154,6 +2529,266 @@
+ + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ + +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+ + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ + +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+ + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+ +
+ + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ + +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+ + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+ +
@@ -4181,204 +2816,6 @@ - -
- -
- - -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -4391,11 +2828,11 @@ - +
- +
@@ -4455,204 +2892,6 @@
- -
- -
- - -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -4665,11 +2904,11 @@ - +
- +
@@ -4689,7 +2928,7 @@ - +
@@ -4729,204 +2968,6 @@
- -
- -
- - -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -4939,11 +2980,11 @@ - +
- +
@@ -5003,204 +3044,6 @@
- -
- -
- - -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -5213,11 +3056,11 @@ - +
- +
@@ -5237,7 +3080,7 @@ - +
@@ -5277,172 +3120,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -5477,180 +3154,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- - -
- -
-
-
-
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -5690,195 +3194,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- - -
- -
-
-
-
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -5934,180 +3249,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- - -
- -
-
-
-
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -6147,172 +3289,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -6353,172 +3329,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -6553,174 +3363,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -6754,200 +3397,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -6987,188 +3437,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -7209,172 +3477,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -7415,200 +3517,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- - -
- -
-
- -
- -
-
-
-
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -7641,41 +3549,6 @@ - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
@@ -7699,174 +3572,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -7906,172 +3612,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -8083,78 +3623,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -8183,172 +3652,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -8389,172 +3692,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -8595,172 +3732,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -8801,172 +3772,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -9001,174 +3806,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -9202,174 +3840,7 @@
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
+
@@ -9380,43 +3851,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+ @@ -9445,172 +3880,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -9622,78 +3891,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+ @@ -9722,172 +3920,6 @@
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -9899,1315 +3931,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
- - -
- -
-
- -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
-
- -
- -
-
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
-
- -
- -
-
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
- - -
- -
-
- -
- -
- - -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
-
- -
- -
-
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
- - - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
- - -
- -
-
- -
- -
- - -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
-
-
- -
- -
-
-
-
- -
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
@@ -11236,172 +3960,6 @@ - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- - -
- -
- - -
- -
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
-
-
-
-
-
-
@@ -11413,43 +3971,7 @@
- - -
- -
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
-
+
diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 474dedfb5..6ba856cdb 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -2569,7 +2569,7 @@ In a typical editing application, the user can expect to get some visual clue re To start with, mostly this means to avoid a naive approach, like having code in the UI to pull in some graphics from media files. We certainly won't just render every media channel blindly. Rather, we acknowledge that we'll have a //strategy,// depending on the media content and some further parameters of the clip. This might well just be a single ''pivot image'' chosen explicitly by the editor to represent a given take. And the actual implementation of content preview rendering will largely be postponed until we get our rendering engine into a roughly working state. -
+
//how to access proc layer commands from the UI and to talk to the command framework//
 
 !Command access DSL
@@ -2619,7 +2619,7 @@ The above design for command access looked as a good idea -- at first sight. Yet
 
 Another point of contention is the duality between a command access framework and the UI-Bus. It turns out this is rooted in a fundamental conflict. The command system and by extension also a command access framework represents the classic »command and control« style API (to use a term coined by Martin Fowler). This kind of interface shines when used on top of a shared data or object model. Which is exactly the kind of architecture we shun, on a global level. It is fine when //confined within some subsystem,// yet creates a corroding tendency towards high coupling, when used on a global scale. For this reason, we introduced a message driven connection, and for the same reason, we should refrain from using the command and control structure as a second channel, bypassing the bus. //This is entirely an architectural decision// -- on the level of tracing actual calls, any message based connection looks overengineered, when compared to "just invoke the f**cking function"
 
-The ''conclusions'' drawn from this critique is to forego using the InvocationTrail, in favour of a plain command ID, and to simplify and mostly automate the command instance management (&rarr; CommandCycle)
+The ''conclusions'' drawn from this critique is to forego using the InvocationTrail, in favour of a plain command ID, and to simplify and automate the command instance management (&rarr; GuiCommandCycle)
 
@@ -2674,7 +2674,7 @@ This contrastive approach attempts to keep knowledge and definition clustered in &rarr; CommandSetup
-
+
//the process of issuing a session command from the UI//
 Within the Lumiera UI, we distinguish between core concerns and the //local mechanics of the UI.// The latter is addressed in the usual way, based on a variation of the [[MVC-Pattern|http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller]]. The UI toolkit set, here the GTK, affords ample ways to express actions and reactions within this framework, where widgets in the presentation view are wired with the corresponding controllers vice versa (GTK terms these connections as //"signals"//, we rely on {{{libSigC++}}} for implementation).
 A naive approach would extend these mature mechanisms to also cover the actual functionality of the application. This compelling solution allows quickly to get "something tangible" up and running, yet -- on the long run -- inevitably leads to core concerns being tangled into the presentation layer, which in turn becomes hard to maintain and loaded with "code behind". Since we are here "for the long run", we immediately draw the distinction between UI mechanics and core concerns. The latter are, by decree and axiom, required to perform without even an UI layer running. This decision gives rise to the challenge how to form and integrate the invocation of ''core commands'' into the presentation layer.
@@ -2714,11 +2714,11 @@ from these use cases, we can derive the //crucial activities for command handlin
 *;context bound
 *:invocation of a command is formed within a context, typically through a //interaction gesture.//
 *:most, if not all arguments of the command are picked up from the context, based on the current [[Spot]]
-*:* on setup of such an invocation context, the responsible part in the UI queries the {{{CmdAccess}}} for an InteractionState
+*:* on setup of such an invocation context, the responsible part in the UI queries the {{{CmdContext}}} for an InteractionState
 *:* the latter in turn retrieves a new command instance ID from the {{{CmdInstanceManager}}} in Proc
 *:* and the latter keeps a smart-ptr corresponding to this instance in its internal registration table
 *:* within the UI, the InteractionState instance responsible for this context tracks state changes and keeps track of all command instances bound to this context
-*:* ~UI-Elements use the services of {{{CmdAccess}}} to act as observer of state changes &rarr; GuiCommandAccess
+*:* ~UI-Elements use the services of {{{CmdContext}}} to act as observer of state changes &rarr; GuiCommandAccess
 *:* when a command is completely parametrised, it can be invoked. The managing {{{InteractionState}}} knows about this
 *:* on invocation, the ID of the instance and the fully resolved arguments are sent via UI-Bus to the {{{CmdInstanceManager}}}
 *:* which in turn removes the instance handle from its registration table and hands it over into the ProcDispatcher