Change API in wm_layer
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Tue, 11 Sep 2018 03:15:28 +0000 (12:15 +0900)
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Tue, 11 Sep 2018 03:15:48 +0000 (12:15 +0900)
* commitChange -> update
* add undo

Change-Id: I81a10fe5fcaa802f224af75457869dadc7a83f25
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
src/wm_layer.cpp
src/wm_layer.hpp
src/wm_layer_control.cpp

index 28e1cd9..b3e3d2c 100644 (file)
@@ -241,10 +241,14 @@ bool WMLayer::hasRole(const string& role)
     return false;
 }
 
-WMError WMLayer::commitChange()
+void WMLayer::update()
 {
     this->state = this->tmp_state;
-    return WMError::SUCCESS;
+}
+
+void WMLayer::undo()
+{
+    this->tmp_state = this->state;
 }
 
 void WMLayer::dump()
index c291151..a6a359e 100644 (file)
@@ -80,7 +80,8 @@ class WMLayer
     void removeLayerFromState(unsigned layer);
     void setAreaToState(const std::string& app, const std::string& area);
     void terminateApp(unsigned layer);
-    WMError commitChange();
+    void update();
+    void undo();
 
     // Debug
     void dump();
index acf41f6..9756d5e 100644 (file)
@@ -213,6 +213,8 @@ WMError LayerControl::renderLayers()
 {
     HMI_INFO("Commit change");
     WMError rc = WMError::SUCCESS;
+
+    // Check the number of layers
     vector<unsigned> ivi_l_ids;
     for(auto& l : this->wm_layers)
     {
@@ -224,6 +226,8 @@ WMError LayerControl::renderLayers()
             ivi_l_ids.push_back(id);
         }
     }
+
+    // Create render order
     t_ilm_layer* id_array = new t_ilm_layer[ivi_l_ids.size()];
     if(id_array == nullptr)
     {
@@ -238,6 +242,7 @@ WMError LayerControl::renderLayers()
         ++count;
     }
 
+    // Display
     ilmErrorTypes ret = ilm_displaySetRenderOrder(this->screenID, id_array, ivi_l_ids.size());
     if(ret != ILM_SUCCESS)
     {
@@ -248,7 +253,7 @@ WMError LayerControl::renderLayers()
     {
         for(auto& l : this->wm_layers)
         {
-            l->commitChange();
+            l->update();
         }
     }
     ilm_commitChanges();
@@ -256,7 +261,13 @@ WMError LayerControl::renderLayers()
     return rc;
 }
 
-void LayerControl::undoUpdate() {}
+void LayerControl::undoUpdate()
+{
+    for(auto& l : this->wm_layers)
+    {
+        l->undo();
+    }
+}
 
 WMError LayerControl::loadLayerSetting(const string &path)
 {