Lumiera  0.pre.03
»edit your freedom«
state-manager.hpp
Go to the documentation of this file.
1 /*
2  STATE-MANAGER.hpp - maintaining persistent interface state
3 
4  Copyright (C)
5  2016, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
43 #ifndef STAGE_CTRL_STATE_MANAGER_H
44 #define STAGE_CTRL_STATE_MANAGER_H
45 
46 
47 #include "lib/idi/entry-id.hpp"
48 #include "lib/diff/gen-node.hpp"
49 #include "lib/nocopy.hpp"
50 
51 #include <string>
52 
53 
54 namespace stage {
55 namespace ctrl {
56 
57  using std::string;
58 
59 
72  {
73  protected:
74  virtual ~StateManager();
75 
76  using ID = lib::idi::BareEntryID const&;
77  using StateMark = lib::diff::GenNode const&;
78  public:
79 
80  virtual StateMark
81  currentState (ID uiElm, string propertyKey) const =0;
82 
83  virtual void
84  replayState (ID uiElm, string propertyKey) =0;
85 
86  virtual void
87  replayAllState() =0;
88 
89  virtual void
90  replayAllState (string propertyKey) =0;
91 
92  virtual void
93  replayAllProperties (ID uiElm) =0;
94 
95  virtual void
96  clearState() =0;
97 
98  private:
99  };
100 
101 
102 
103 }} // namespace stage::ctrl
104 #endif /*STAGE_CTRL_STATE_MANAGER_H*/
type erased baseclass for building a combined hash and symbolic ID.
Definition: entry-id.hpp:133
Any copy and copy construction prohibited.
Definition: nocopy.hpp:37
virtual ~StateManager()
this is an interface
Definition: ui-state.cpp:38
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:37
Generic building block for tree shaped (meta)data structures.
Interface: handling of persistent interface state.
Bare symbolic and hash ID used for accounting of asset like entries.
generic data element node within a tree
Definition: gen-node.hpp:222