diff --git a/src/gui/interact/interaction-director.cpp b/src/gui/interact/interaction-director.cpp index 9707c1775..ae8952582 100644 --- a/src/gui/interact/interaction-director.cpp +++ b/src/gui/interact/interaction-director.cpp @@ -109,7 +109,7 @@ namespace interact { void InteractionDirector::populateContent_afterStart() { - UNIMPLEMENTED ("issue content population request as command into the session"); + invoke (cmd::meta_activateContentDiff); } diff --git a/src/include/gui-notification-facade.h b/src/include/gui-notification-facade.h index 4e06607e7..f85f00fc1 100644 --- a/src/include/gui-notification-facade.h +++ b/src/include/gui-notification-facade.h @@ -70,7 +70,7 @@ namespace gui { * asynchronously and triggered by events within the lower layers. * * This is a layer separation facade interface. Clients should use - * the embedded #facade factory, which yields a proxy routing any + * the embedded #facade factory, which yields a proxy routing any * calls through the lumieraorg_GuiNotification interface * @throws lumiera::error::State when interface is not opened */ @@ -113,14 +113,14 @@ namespace gui { virtual void triggerGuiShutdown (string const& cause) =0; }; - + } // namespace gui extern "C" { -#endif /* =========================== CL Interface ===================== */ +#endif /* =========================== CL Interface ===================== */ #include "common/interface.h" diff --git a/src/proc/cmd.hpp b/src/proc/cmd.hpp index 00716f0b9..1cd79359f 100644 --- a/src/proc/cmd.hpp +++ b/src/proc/cmd.hpp @@ -71,5 +71,12 @@ namespace cmd { + /* ========= meta actions ======= */ + + extern CommandSetup meta_activateContentDiff; + extern CommandSetup meta_deactivateContentDiff; + + + }} // namespace proc::cmd #endif /*PROC_CMD_H*/ diff --git a/src/proc/cmd/meta-cmd.cpp b/src/proc/cmd/meta-cmd.cpp new file mode 100644 index 000000000..cfcf7b4e0 --- /dev/null +++ b/src/proc/cmd/meta-cmd.cpp @@ -0,0 +1,101 @@ +/* + MetaCmd - actual proc command scripts for internal meta and control activities + + Copyright (C) Lumiera.org + 2018, Hermann Vosseler + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +/** @file meta-cmd.cpp + ** Actual definition of Proc-Layer command scripts for meta/ctrl actions. + ** Any actions issued by the UI-Layer to control internal application state + ** @todo WIP 8/2018 early draft + ** + ** @see cmd.hpp + ** @see command.hpp + ** @see command-def.hpp + ** @see cmd-context.hpp + ** @see SessionCommandFunction_test + ** + */ + + +#include "proc/cmd.hpp" +#include "proc/control/command-def.hpp" +//#include "proc/mobject/session.hpp" +//#include "lib/symbol.hpp" +#include "lib/idi/entry-id.hpp" +//#include "lib/format-string.hpp" + +//#include + +using lib::hash::LuidH; +//using std::string; +//using util::cStr; +//using util::_Fmt; + + +namespace proc { +namespace cmd { + namespace error = lumiera::error; + + //using mobject::Session; + + namespace { // implementation helper... + }//(End) implementation helper + + + + + /** instruct the session to start keeping the UI up-to-date through diff messages. + * @remarks we assume the UI is _empty_ when issuing this command. Thus the session + * will commence by sending a _population diff_, to reflect all the UI relevant + * structures currently present within the session data. Moreover, from that point + * on, any changes within the session structure and contents will be reflected by + * pushing appropriate diff messages upwards through the GuiNotification façade. + * @note to UNDO this action means to waive the live-update state. In addition, + * the session will push up a status change to mark the session-root as defunct. + */ +COMMAND_DEFINITION (meta_activateContentDiff) + { + def.operation ([]() + { + TODO ("send a population diff starting from scratch"); + TODO ("activate life-update service within the session"); + }) + .captureUndo ([]() -> bool + { + return false; + }) + .undoOperation ([](bool wasActive) + { + if (not wasActive) + { + UNIMPLEMENTED ("send a status update diff into the root node, to mark it as defunct"); + } + }); + }; + + + + + /** more to come here...*/ + + + +}} // namespace proc::cmd diff --git a/src/proc/cmd/scope-cmd.cpp b/src/proc/cmd/scope-cmd.cpp index f99d422a2..138362e94 100644 --- a/src/proc/cmd/scope-cmd.cpp +++ b/src/proc/cmd/scope-cmd.cpp @@ -65,7 +65,7 @@ namespace cmd { - /** @todo placeholder 4/2017 + /** @todo placeholder 4/2017 -- need to build a timeline display first... */ //COMMAND_DEFINITION (session_newSequence) // { diff --git a/src/proc/cmd/sequence-cmd.cpp b/src/proc/cmd/sequence-cmd.cpp index b164452b8..38e97f095 100644 --- a/src/proc/cmd/sequence-cmd.cpp +++ b/src/proc/cmd/sequence-cmd.cpp @@ -76,7 +76,7 @@ namespace cmd { { return addedTrack; }) - .undoOperation ([](LuidH context, LuidH addedTrack, LuidH newID) + .undoOperation ([](LuidH context, LuidH newID, LuidH addedTrack) { REQUIRE (addedTrack == newID); UNIMPLEMENTED ("how to remove a sub-track from the given context"); diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 64d37c531..510748fc6 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -15876,10 +15876,20 @@ - + + + + + + - - + + + + + + + @@ -16318,7 +16328,7 @@ - + @@ -16339,7 +16349,7 @@ - + @@ -32353,7 +32363,7 @@ - +