/* Navigator - controller for global navigation through interface space Copyright (C) Lumiera.org 2017, 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 navigator.cpp ** Implementation of global interface navigation mechanisms. ** Especially we implement the LocationQuery interface, which exposes the structures ** of the UI as an abstracted, tree-shaped topology. This task adds up to levelling all the ** specifics of accessing individual components and to assemble them into a virtual component tree. ** The actual details of component access are thereby delegated to the ViewLocator, which is a sibling ** service maintained by the InteractionDirector. ** ** @todo WIP 2/2017 early draft / foundations of "interaction control" ** @todo WIP 1/2018 integrating the concept of UI-Coordinate navigation and resolution. Still WIP-WIP-WIP... */ #include "gui/interact/navigator.hpp" #include "gui/interact/spot-locator.hpp" //#include "gui/ctrl/global-ctx.hpp" //#include "lib/util.hpp" //using util::cStr; //using util::isnil; namespace gui { namespace interact { // dtors via smart-ptr invoked from here... Navigator::~Navigator() { } Navigator::Navigator (SpotLocator& spotLoc, ViewLocator& viewLoc) : spotLocator_{spotLoc} , viewLocator_{viewLoc} { } /* ==== implementing the LocationQuery API ==== */ Literal Navigator::determineAnchor (UICoord const& path) { UNIMPLEMENTED ("LocationQuery in real UI: resolve anchor point of given UI-Coordinates"); } size_t Navigator::determineCoverage (UICoord const& path) { UNIMPLEMENTED ("LocationQuery in real UI: determine explicit coverage of given UI-Coordinates"); } LocationQuery::ChildIter Navigator::getChildren (UICoord const& path, size_t pos) { UNIMPLEMENTED ("LocationQuery in real UI: build child iterator rooted at given point in the UI tree"); } /** */ }}// namespace gui::interact