UI-top-level: wiring in accordance to the new global context
this pretty much resolves most of the uncertainities: we now get a set of mutually dependent services, each of which is aware of each other member's capabilities, but accesses those only through this partner's API
This commit is contained in:
parent
f8eb640dd7
commit
e94b294121
9 changed files with 79 additions and 78 deletions
|
|
@ -37,8 +37,8 @@
|
|||
|
||||
#include "gui/gtk-lumiera.hpp"
|
||||
#include "gui/config-keys.hpp"
|
||||
#include "gui/workspace/global-ctx.hpp"
|
||||
#include "gui/workspace/workspace-window.hpp"
|
||||
#include "gui/workspace/ui-manager.hpp"
|
||||
#include "gui/dialog/render.hpp"
|
||||
#include "gui/dialog/preferences-dialog.hpp"
|
||||
#include "gui/dialog/name-chooser.hpp"
|
||||
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
#include <boost/algorithm/string/classification.hpp>
|
||||
#include <boost/algorithm/string/split.hpp>
|
||||
#include <boost/noncopyable.hpp>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
|
||||
|
|
@ -78,15 +79,13 @@ namespace workspace {
|
|||
* user action events.
|
||||
*/
|
||||
class Actions
|
||||
: boost::noncopyable
|
||||
{
|
||||
/**reference to the MainWindow which owns this helper */
|
||||
using GetWindow = function<WorkspaceWindow&()>;
|
||||
|
||||
GetWindow getWorkspaceWindow;
|
||||
GlobalCtx& globalCtx_;
|
||||
|
||||
public:
|
||||
Actions (GetWindow how_to_access_current_window)
|
||||
: getWorkspaceWindow(how_to_access_current_window)
|
||||
Actions (GlobalCtx& globals)
|
||||
: globalCtx_{globals}
|
||||
, is_updating_action_state(false)
|
||||
{ }
|
||||
|
||||
|
|
@ -233,6 +232,12 @@ namespace workspace {
|
|||
|
||||
|
||||
private: /* ===== Internals ===== */
|
||||
WorkspaceWindow&
|
||||
getWorkspaceWindow()
|
||||
{
|
||||
return globalCtx_.windowList_.findActiveWindow();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Populates a uiManager with actions for the Show Panel menu.
|
||||
|
|
|
|||
|
|
@ -54,10 +54,9 @@
|
|||
#ifndef GUI_WORKSPACE_GLOBAL_CTX_H
|
||||
#define GUI_WORKSPACE_GLOBAL_CTX_H
|
||||
|
||||
#include "gui/gtk-lumiera.hpp"
|
||||
#include "gui/gtk-base.hpp"
|
||||
#include "gui/ui-bus.hpp"
|
||||
#include "gui/workspace/ui-manager.hpp"
|
||||
#include "gui/workspace/actions.hpp"
|
||||
#include "gui/workspace/window-list.hpp"
|
||||
#include "gui/workspace/interaction-director.hpp"
|
||||
|
||||
|
|
@ -89,7 +88,6 @@ namespace workspace {
|
|||
|
||||
InteractionDirector director_;
|
||||
WindowList windowList_;
|
||||
Actions actions_;
|
||||
|
||||
|
||||
public:
|
||||
|
|
@ -101,7 +99,6 @@ namespace workspace {
|
|||
, uiManager_{manager}
|
||||
, director_{*this}
|
||||
, windowList_{*this}
|
||||
, actions_{*this}
|
||||
{ }
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
|
||||
#include "gui/gtk-base.hpp"
|
||||
#include "gui/workspace/global-ctx.hpp"
|
||||
#include "gui/workspace/interaction-director.hpp"
|
||||
#include "gui/ui-bus.hpp"
|
||||
#include "gui/ctrl/bus-term.hpp"
|
||||
|
|
@ -53,8 +54,9 @@ namespace workspace {
|
|||
{ }
|
||||
|
||||
|
||||
InteractionDirector::InteractionDirector (UiBus& bus)
|
||||
: model::Controller(proc::mobject::session::Root::getID(), bus.getAccessPoint())
|
||||
InteractionDirector::InteractionDirector (GlobalCtx& globals)
|
||||
: model::Controller(proc::mobject::session::Root::getID(), globals.uiBus_.getAccessPoint())
|
||||
, globalCtx_(globals)
|
||||
{ }
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ namespace workspace {
|
|||
|
||||
//class Actions;
|
||||
//class WindowList;
|
||||
class GlobalCtx;
|
||||
|
||||
|
||||
|
||||
|
|
@ -83,6 +84,8 @@ namespace workspace {
|
|||
: public model::Controller
|
||||
{
|
||||
|
||||
GlobalCtx& globalCtx_;
|
||||
|
||||
////TODO: what is the model equivalent represented here???
|
||||
|
||||
/** set up a binding to allow some top-level UI state
|
||||
|
|
@ -92,7 +95,7 @@ namespace workspace {
|
|||
void buildMutator (lib::diff::TreeMutator::Handle) override;
|
||||
|
||||
public:
|
||||
InteractionDirector (UiBus& bus);
|
||||
InteractionDirector (GlobalCtx&);
|
||||
~InteractionDirector ();
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "gui/config-keys.hpp"
|
||||
#include "gui/workspace/ui-manager.hpp"
|
||||
#include "gui/workspace/global-ctx.hpp"
|
||||
#include "gui/workspace/actions.hpp"
|
||||
#include "gui/workspace/workspace-window.hpp"
|
||||
#include "lib/searchpath.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
|
@ -70,6 +71,7 @@ namespace workspace {
|
|||
UiManager::UiManager (UiBus& bus)
|
||||
: Gtk::UIManager()
|
||||
, globals_{new GlobalCtx{bus, *this}}
|
||||
, actions_{new Actions{*globals_}}
|
||||
, iconSearchPath_{Config::get (KEY_ICON_PATH)}
|
||||
, resourceSerachPath_{Config::get (KEY_UIRES_PATH)}
|
||||
{
|
||||
|
|
@ -104,8 +106,8 @@ namespace workspace {
|
|||
void
|
||||
UiManager::createApplicationWindow()
|
||||
{
|
||||
if (windowList_->empty())
|
||||
windowList_->newWindow();
|
||||
if (globals_->windowList_.empty())
|
||||
globals_->windowList_.newWindow();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ namespace workspace {
|
|||
using std::string;
|
||||
|
||||
class GlobalCtx;
|
||||
class Actions;
|
||||
|
||||
|
||||
|
||||
|
|
@ -78,6 +79,7 @@ namespace workspace {
|
|||
{
|
||||
|
||||
unique_ptr<GlobalCtx> globals_;
|
||||
unique_ptr<Actions> actions_;
|
||||
|
||||
string iconSearchPath_;
|
||||
string resourceSerachPath_;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
|
||||
|
||||
#include "gui/workspace/ui-manager.hpp"
|
||||
#include "gui/workspace/global-ctx.hpp"
|
||||
#include "gui/workspace/window-list.hpp"
|
||||
#include "gui/workspace/workspace-window.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
|
@ -45,8 +45,8 @@ namespace workspace {
|
|||
|
||||
|
||||
|
||||
WindowList::WindowList (UiManager& uiManager)
|
||||
: uiManager_{uiManager}
|
||||
WindowList::WindowList (GlobalCtx& globals)
|
||||
: globalCtx_{globals}
|
||||
, windowList_{}
|
||||
{ }
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ namespace workspace {
|
|||
void
|
||||
WindowList::newWindow ()
|
||||
{
|
||||
PWindow window (new WorkspaceWindow{uiManager_});
|
||||
PWindow window (new WorkspaceWindow{globalCtx_.uiManager_});
|
||||
REQUIRE(window);
|
||||
|
||||
window->signal_delete_event().connect(sigc::mem_fun(
|
||||
|
|
@ -149,7 +149,7 @@ namespace workspace {
|
|||
void
|
||||
WindowList::updateCloseWindowInMenus()
|
||||
{
|
||||
uiManager_.allowCloseWindow ( 1 < windowList_.size());
|
||||
globalCtx_.uiManager_.allowCloseWindow ( 1 < windowList_.size());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ namespace gui {
|
|||
|
||||
namespace workspace {
|
||||
|
||||
class UiManager;
|
||||
class GlobalCtx;
|
||||
class WorkspaceWindow;
|
||||
|
||||
using std::list;
|
||||
|
|
@ -64,12 +64,12 @@ namespace workspace {
|
|||
{
|
||||
using PWindow = std::shared_ptr<WorkspaceWindow>;
|
||||
|
||||
UiManager& uiManager_;
|
||||
GlobalCtx& globalCtx_;
|
||||
list<PWindow> windowList_;
|
||||
|
||||
|
||||
public:
|
||||
WindowList (UiManager&);
|
||||
WindowList (GlobalCtx&);
|
||||
|
||||
bool empty() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -1670,10 +1670,6 @@
|
|||
<node CREATED="1485562029644" ID="ID_1022779645" MODIFIED="1485562063560" TEXT="wieder das Problem mit dem BInden der Actions">
|
||||
<arrowlink DESTINATION="ID_530209145" ENDARROW="Default" ENDINCLINATION="-17;-195;" ID="Arrow_ID_626063593" STARTARROW="None" STARTINCLINATION="9;270;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1485917478469" ID="ID_1209137422" MODIFIED="1486768047985" TEXT="WIP">
|
||||
<arrowlink COLOR="#e22029" DESTINATION="ID_596101447" ENDARROW="Default" ENDINCLINATION="42;-201;" ID="Arrow_ID_45514601" STARTARROW="Default" STARTINCLINATION="8;84;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1485550992299" ID="ID_1685125156" MODIFIED="1485917505214" TEXT="es blocken">
|
||||
|
|
@ -1835,8 +1831,9 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1485903041262" ID="ID_997327941" MODIFIED="1485903044082" TEXT="Fokus"/>
|
||||
<node CREATED="1485903046613" ID="ID_1041890737" MODIFIED="1485917548794" TEXT="aktuelles Fenster">
|
||||
<node COLOR="#338800" CREATED="1485903046613" ID="ID_1041890737" MODIFIED="1487039206991" TEXT="aktuelles Fenster">
|
||||
<linktarget COLOR="#375a84" DESTINATION="ID_1041890737" ENDARROW="Default" ENDINCLINATION="177;-181;" ID="Arrow_ID_373431525" SOURCE="ID_1089795419" STARTARROW="None" STARTINCLINATION="245;-68;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1485903652236" ID="ID_1692258488" MODIFIED="1485903657033" TEXT="WindowList">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
|
|
@ -1848,18 +1845,17 @@
|
|||
<node CREATED="1485904072812" ID="ID_829657223" MODIFIED="1485904083263" TEXT="property_is_active">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1485917438428" HGAP="23" ID="ID_596101447" MODIFIED="1486768047985" TEXT="Lösung ausarbeiten" VSHIFT="26">
|
||||
<linktarget COLOR="#e22029" DESTINATION="ID_596101447" ENDARROW="Default" ENDINCLINATION="42;-201;" ID="Arrow_ID_45514601" SOURCE="ID_1209137422" STARTARROW="Default" STARTINCLINATION="8;84;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node CREATED="1486767955575" ID="ID_217312514" MODIFIED="1486767963725" TEXT="InteractionDirector verwenden">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1487039156100" ID="ID_1966427611" MODIFIED="1487039199394" TEXT="implementiert durch die WindowList">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node CREATED="1487039170930" ID="ID_1408455006" MODIFIED="1487039195521" TEXT="Actions weiß, daß es dort implemieriert ist">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1485917582383" HGAP="163" ID="ID_394170572" MODIFIED="1486063798743" TEXT="TODO: Struktur" VSHIFT="-30">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1485917582383" HGAP="163" ID="ID_394170572" MODIFIED="1487038954920" TEXT="Struktur" VSHIFT="-30">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485917587927" ID="ID_891876702" MODIFIED="1485917622265" TEXT="wohin kommen jetzt die Funktionen, die gebunden werden">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
|
|
@ -1947,14 +1943,40 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1486067362505" HGAP="26" ID="ID_264522454" MODIFIED="1486067383244" TEXT="globaler Ui-Kontext (Verdrahtung)" VSHIFT="24">
|
||||
<node CREATED="1487039062273" ID="ID_956599122" MODIFIED="1487039111466" TEXT="Zuständigkeit">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1487039071039" ID="ID_1884426258" MODIFIED="1487039079075" TEXT="Herstellen des Hauptmenüs"/>
|
||||
<node CREATED="1487039079759" ID="ID_471335369" MODIFIED="1487039083905" TEXT="Binden der Aktionen"/>
|
||||
<node CREATED="1487039084285" ID="ID_555104373" MODIFIED="1487039096040" TEXT="Closure für die Aktionen"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487039098836" ID="ID_199078620" MODIFIED="1487039106012" TEXT="ggfs: Exceptions fangen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1486767972445" ID="ID_1855585608" MODIFIED="1486767979672" TEXT="kann UiManager verwenden"/>
|
||||
<node CREATED="1486767980548" ID="ID_921703593" MODIFIED="1486767985503" TEXT="kann InteractionDirector verwenden"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1487039113306" ID="ID_1405514231" MODIFIED="1487039135190" TEXT="Einbindung">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1487039118001" ID="ID_244074852" MODIFIED="1487039125444" TEXT="globaler Kontext"/>
|
||||
<node CREATED="1487039125984" ID="ID_622974182" MODIFIED="1487039133027" TEXT="weiß, welche Aktion wohin zu delegieren ist"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485898796393" ID="ID_1217726538" MODIFIED="1485898814419" TEXT="#1069 how to refer to the current window">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485555902731" ID="ID_55451880" MODIFIED="1485555951678" TEXT="#1070 how to bind session commands into UI actions">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485549081728" ID="ID_1122969153" MODIFIED="1485549214471" TEXT="globale Aktionen">
|
||||
<arrowlink COLOR="#824f68" DESTINATION="ID_826011549" ENDARROW="Default" ENDINCLINATION="-678;-1180;" ID="Arrow_ID_1373278707" STARTARROW="Default" STARTINCLINATION="670;252;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1485909456513" ID="ID_576215675" MODIFIED="1485909490512" TEXT="top-level-Verdrahtung">
|
||||
<node CREATED="1485909560027" ID="ID_1949656657" MODIFIED="1487039010986" TEXT="baut den UI-Rahen auf"/>
|
||||
<node CREATED="1485909491412" ID="ID_1205077540" MODIFIED="1487039041806" TEXT="macht die Applikation betriebsbereit">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1486942467620" HGAP="151" ID="ID_1761000392" MODIFIED="1486945029916" TEXT="Alternativen" VSHIFT="14">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1486942493208" ID="ID_805305597" MODIFIED="1487034053842" TEXT="alles via InteractionDirector">
|
||||
<node CREATED="1486942493208" FOLDED="true" ID="ID_805305597" MODIFIED="1487038959265" TEXT="alles via InteractionDirector">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1486944032334" ID="ID_1959218653" MODIFIED="1486944046824" TEXT="er macht ohnehin fast alles">
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
|
|
@ -1980,8 +2002,7 @@
|
|||
das <i>verschiebt</i> das Problem nur
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1487034078974" ID="ID_796487731" MODIFIED="1487034094280" TEXT="verletzt das single responsibility pattern"/>
|
||||
</node>
|
||||
|
|
@ -2023,50 +2044,19 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1486942533939" ID="ID_1309437882" MODIFIED="1486942567350" TEXT="einzelne Closures explizit">
|
||||
<node CREATED="1486942533939" FOLDED="true" ID="ID_1309437882" MODIFIED="1487038961538" TEXT="einzelne Closures explizit">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1486942574333" ID="ID_189848820" MODIFIED="1486942580399" TEXT="das läuft auf ein Delegate hinaus"/>
|
||||
<node CREATED="1486942583053" ID="ID_1367249768" MODIFIED="1486942592343" TEXT="...und das wäre der InteractionDirector"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1486945035981" ID="ID_1398884933" MODIFIED="1486945137155" TEXT="entscheidende Frage...">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1486945046380" ID="ID_367702215" MODIFIED="1486945075196" TEXT="wie mächtig ist der InteractionDirector?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node CREATED="1486945056714" ID="ID_1262672065" MODIFIED="1486945077375" TEXT="was ist die Kernaufgabe des InteractionDirectors?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node CREATED="1486945084902" HGAP="26" ID="ID_406331121" MODIFIED="1486945097777" TEXT="daran entscheidet sich" VSHIFT="24">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1486945099213" ID="ID_1118933657" MODIFIED="1486945109359" TEXT="ob alles an ihn delegiert wird"/>
|
||||
<node CREATED="1486945110091" ID="ID_1820336322" MODIFIED="1486945124685" TEXT="oder ob es einen globalen Kontext gibt">
|
||||
<node CREATED="1486945126721" ID="ID_804526091" MODIFIED="1487033614682" TEXT="und das könnte dann der UiManager sein"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1487034156380" ID="ID_1632778987" MODIFIED="1487034161495" TEXT="globaler Kontext">
|
||||
<node CREATED="1487034156380" HGAP="27" ID="ID_1632778987" MODIFIED="1487038973690" TEXT="globaler Kontext" VSHIFT="30">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1487034162275" ID="ID_28375182" MODIFIED="1487034171926" TEXT="wenige, eng zusammenarbeitende Objekte"/>
|
||||
<node CREATED="1487034172393" ID="ID_1167812745" MODIFIED="1487034180237" TEXT="...von denen doch jedes seine Aufgabe hat"/>
|
||||
<node CREATED="1487034180712" ID="ID_1371598611" MODIFIED="1487034193170" TEXT="und jedes genau weiß, was die andern können"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485898796393" ID="ID_1217726538" MODIFIED="1485898814419" TEXT="#1069 how to refer to the current window">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485555902731" ID="ID_55451880" MODIFIED="1485555951678" TEXT="#1070 how to bind session commands into UI actions">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485549081728" ID="ID_1122969153" MODIFIED="1485549214471" TEXT="globale Aktionen">
|
||||
<arrowlink COLOR="#824f68" DESTINATION="ID_826011549" ENDARROW="Default" ENDINCLINATION="-678;-1180;" ID="Arrow_ID_1373278707" STARTARROW="Default" STARTINCLINATION="670;252;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1485909456513" ID="ID_576215675" MODIFIED="1485909490512" TEXT="top-level-Verdrahtung">
|
||||
<node CREATED="1485909491412" ID="ID_1205077540" MODIFIED="1485909496247" TEXT="hält WindowList"/>
|
||||
<node CREATED="1485909496860" ID="ID_1365340983" MODIFIED="1485909504422" TEXT="hält Actions"/>
|
||||
<node CREATED="1485909560027" ID="ID_1949656657" MODIFIED="1485909569270" TEXT="baut den UI-Rahen auf"/>
|
||||
</node>
|
||||
<node CREATED="1485454243767" ID="ID_3699127" MODIFIED="1485454247467" TEXT="konsistentes UI">
|
||||
<node CREATED="1485454248335" ID="ID_623536019" MODIFIED="1485454252273" TEXT="globales Menü"/>
|
||||
<node CREATED="1485454259637" ID="ID_432211008" MODIFIED="1485454262840" TEXT="globale Toolbar"/>
|
||||
|
|
@ -2095,7 +2085,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1486768073223" HGAP="38" ID="ID_1457876217" MODIFIED="1486768136745" TEXT="konkret" VSHIFT="16">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node CREATED="1486768080502" ID="ID_1759740464" MODIFIED="1486768086425" TEXT="Binden für globale Aktionen"/>
|
||||
<node CREATED="1486768080502" ID="ID_1759740464" MODIFIED="1487039233982" TEXT="Binde-Kontext für globale Aktionen"/>
|
||||
<node CREATED="1486768086869" ID="ID_173538981" MODIFIED="1486768096616" TEXT="Idee/Konzept für kontextabhängige Aktionen"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue