X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=inline;f=src%2Fwm_layer_control.hpp;h=7a283b9feae219fb831b18d88776d5f540f64e5f;hb=31482a71ab968f1214a1cba600921c9f493f183b;hp=df6c863911a40541cfc2a697a8544925dd5d599b;hpb=2f2639950dec4b97984fd6776a850e5d4703ef52;p=apps%2Fagl-service-windowmanager.git diff --git a/src/wm_layer_control.hpp b/src/wm_layer_control.hpp index df6c863..7a283b9 100644 --- a/src/wm_layer_control.hpp +++ b/src/wm_layer_control.hpp @@ -45,6 +45,7 @@ class LayerControlCallbacks { // callback functions std::function surfaceCreated; + std::function surfaceDestroyed; /* std::function surfaceDestroyed; std::function layerCreated; std::function layerDestroyed; */ @@ -64,9 +65,9 @@ class LayerControl void createNewLayer(unsigned id); unsigned getNewLayerID(const std::string& role, std::string* layer_name); std::shared_ptr getWMLayer(unsigned layer); - // std::shared_ptr getWMLayer(std::string layer_name); + std::shared_ptr getWMLayer(std::string layer_name); struct rect getAreaSize(const std::string& area); - void setupArea(double scaling); + void setupArea(const rectangle& base_rct, double scaling); Screen getScreenInfo(); double scale(); // void setRenderOrder(const std::vector layer_render_order); @@ -74,19 +75,23 @@ class LayerControl // std::vector>& getAllLayers(); // std::vector getRenderOrder(const std::string& layer_name); WMError updateLayer(LayerState& layer_state); - WMError commitChange(); + WMError renderLayers(); // WMError renderWMLayers(); void undoUpdate(); WMError layoutChange(const WMAction& action); WMError visibilityChange(const WMAction &action); + void terminateApp(const std::shared_ptr client); // Don't use this function. void dispatchCreateEvent(ilmObjectType object, unsigned id, bool created); - void dispatchPropertyChangeEvent(unsigned id, struct ilmSurfaceProperties*, t_ilm_notification_mask); - void dispatchPropertyChangeEvent(unsigned id, struct ilmLayerProperties*, t_ilm_notification_mask); + void dispatchSurfacePropChangeEvent(unsigned id, struct ilmSurfaceProperties*, t_ilm_notification_mask); + void dispatchLayerPropChangeEvent(unsigned id, struct ilmLayerProperties*, t_ilm_notification_mask); + private: WMError makeVisible(const std::shared_ptr client); WMError makeInvisible(const std::shared_ptr client); + bool moveForeGround(const std::shared_ptr client); + bool moveBackGround(const std::shared_ptr client); WMError loadLayerSetting(const std::string& path); WMError loadAreaDb(const std::string& path); @@ -96,6 +101,8 @@ class LayerControl unsigned screenID; struct ilmScreenProperties screen_prop; double scaling; + int offset_x; + int offset_y; LayerControlCallbacks cb; };