aboutsummaryrefslogtreecommitdiffstats
path: root/src/wm_layer_control.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wm_layer_control.hpp')
-rw-r--r--src/wm_layer_control.hpp38
1 files changed, 30 insertions, 8 deletions
diff --git a/src/wm_layer_control.hpp b/src/wm_layer_control.hpp
index 68acd66..6eb7a76 100644
--- a/src/wm_layer_control.hpp
+++ b/src/wm_layer_control.hpp
@@ -27,14 +27,24 @@ namespace wm {
class Screen {
public:
- Screen(unsigned w, unsigned h) : _width(w), _height(h){}
- unsigned width() { return _width; }
- unsigned height() { return _height; }
+ Screen(unsigned id, unsigned w, unsigned h) : _screen_id(id), _width(w), _height(h){}
+ unsigned width() const { return _width; }
+ unsigned height() const { return _height; }
+ unsigned id() const { return _screen_id; }
+ unsigned scale() const { return _scale; }
+ int offsetX() const { return _offset_x; }
+ int offsetY() const { return _offset_y; }
+ void setScale(double scl) { this->_scale = scl; }
+ void setOffset(int x, int y) { this->_offset_x = x; this->_offset_y = y; }
private:
+ unsigned _screen_id;
unsigned _width;
unsigned _height;
unsigned _pysical_width = 0;
unsigned _pysical_height = 0;
+ int _offset_x = 0;
+ int _offset_y = 0;
+ double _scale = 1.0;
};
class LayerControlCallbacks {
@@ -60,18 +70,21 @@ class WMClient;
class LayerControl
{
public:
- explicit LayerControl(const std::string& root);
+ explicit LayerControl(const std::string& root, const std::string& ecu_name);
~LayerControl() = default;
WMError init(const LayerControlCallbacks& cb);
void createNewLayer(unsigned id);
- unsigned getNewLayerID(const std::string& role);
+ void createNewRemoteLayer(unsigned id);
+ unsigned getNewLayerID(const std::string& role, std::string* layer_name);
std::shared_ptr<WMLayer> getWMLayer(unsigned layer);
std::shared_ptr<WMLayer> getWMLayer(std::string layer_name);
struct rect getAreaSize(const std::string& area);
void setupArea(const rectangle& base_rct, double scaling);
Screen getScreenInfo();
double scale();
+ WMError updateLayer(LayerState& layer_state);
WMError renderLayers();
+ // WMError renderLayersRemote();
WMError setXDGSurfaceOriginSize(unsigned surface);
void undoUpdate();
WMError layoutChange(const WMAction& action);
@@ -87,23 +100,32 @@ class LayerControl
void dispatchSurfacePropChangeEvent(unsigned id, struct ilmSurfaceProperties*, t_ilm_notification_mask);
void dispatchLayerPropChangeEvent(unsigned id, struct ilmLayerProperties*, t_ilm_notification_mask);
+ bool hasRemoteLayer(unsigned layer);
+
private:
WMError makeVisible(const std::shared_ptr<WMClient> client);
WMError makeInvisible(const std::shared_ptr<WMClient> client);
bool moveForeGround(const std::shared_ptr<WMClient> client);
bool moveBackGround(const std::shared_ptr<WMClient> client);
+ bool moveRemote(unsigned layer, const std::string& area);
+ bool moveLocal(unsigned layer);
+ int loadWestonSetting(const std::string &path);
WMError loadLayerSetting(const std::string& path);
- WMError loadAreaDb(const std::string& path);
+ WMError loadAreasConfigFile(const std::string& path, const std::string& ecu_name);
std::vector<std::shared_ptr<WMLayer>> wm_layers;
+ std::vector<Screen> wm_screens;
std::unordered_map<unsigned, unsigned> lid2wmlid;
std::unordered_map<std::string, struct rect> area2size;
unsigned screenID;
- struct ilmScreenProperties screen_prop;
+
double scaling;
int offset_x;
int offset_y;
LayerControlCallbacks cb;
+
+ long times;
+ long sleep;
};
-} // namespace wm \ No newline at end of file
+} // namespace wm