summaryrefslogtreecommitdiff
path: root/LayerManagerCommands
diff options
context:
space:
mode:
authorMichael Schuldt <michael.schuldt@bmw.de>2012-07-06 13:11:09 +0200
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>2012-08-09 00:06:53 -0700
commit255da2a53559d9bff33308304082f2b8ab51eca1 (patch)
tree9875591950da699b11ff96d42e40b5b7097d88e4 /LayerManagerCommands
parent8799cdbfab118fa9c25c6963fb59b3d0cfd8a776 (diff)
downloadlayer_management-255da2a53559d9bff33308304082f2b8ab51eca1.tar.gz
LayerManagerCommands: Adding code to calculate surface target values
- If Source and Destination Region of a Layer / Surface has changed, the surface targetposition has to be calculated.
Diffstat (limited to 'LayerManagerCommands')
-rw-r--r--LayerManagerCommands/src/LayerAddSurfaceCommand.cpp1
-rw-r--r--LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp1
-rw-r--r--LayerManagerCommands/src/LayerSetDimensionCommand.cpp1
-rw-r--r--LayerManagerCommands/src/LayerSetPositionCommand.cpp1
-rw-r--r--LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp1
-rw-r--r--LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp8
-rw-r--r--LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp8
-rw-r--r--LayerManagerCommands/src/SurfaceSetPositionCommand.cpp7
-rw-r--r--LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp6
9 files changed, 28 insertions, 6 deletions
diff --git a/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp b/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp
index e720d58..79496c0 100644
--- a/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp
+++ b/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp
@@ -50,6 +50,7 @@ ExecutionResult LayerAddSurfaceCommand::execute(ICommandExecutor* executor)
LOG_WARNING("LayerAddSurfaceCommand","surface : id [ " << m_surfaceid << " ] already belongs to layer : id [ " << layer_id << " ]");
result = (m_layerid == layer_id) ? ExecutionSuccess : ExecutionFailed;
}
+ surface->calculateTargetDestination(layer->getSourceRegion(),layer->getDestinationRegion());
}
return result;
diff --git a/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp b/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp
index 5f46176..d051278 100644
--- a/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp
+++ b/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp
@@ -43,6 +43,7 @@ ExecutionResult LayerSetDestinationRectangleCommand::execute(ICommandExecutor* e
{
const Rectangle rectangle(m_x, m_y, m_width, m_height);
result = layer->setDestinationRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ layer->applySurfaceTransform();
}
return result;
diff --git a/LayerManagerCommands/src/LayerSetDimensionCommand.cpp b/LayerManagerCommands/src/LayerSetDimensionCommand.cpp
index 707a4bb..1ef8d49 100644
--- a/LayerManagerCommands/src/LayerSetDimensionCommand.cpp
+++ b/LayerManagerCommands/src/LayerSetDimensionCommand.cpp
@@ -39,6 +39,7 @@ ExecutionResult LayerSetDimensionCommand::execute(ICommandExecutor* executor)
if (layer)
{
result = layer->setDimension(m_width, m_height) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ layer->applySurfaceTransform();
}
return result;
diff --git a/LayerManagerCommands/src/LayerSetPositionCommand.cpp b/LayerManagerCommands/src/LayerSetPositionCommand.cpp
index 48c218f..cece2f3 100644
--- a/LayerManagerCommands/src/LayerSetPositionCommand.cpp
+++ b/LayerManagerCommands/src/LayerSetPositionCommand.cpp
@@ -39,6 +39,7 @@ ExecutionResult LayerSetPositionCommand::execute(ICommandExecutor* executor)
if (layer)
{
result = layer->setPosition(m_x, m_y) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ layer->applySurfaceTransform();
}
return result;
}
diff --git a/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp b/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp
index 5045d48..a81dfe2 100644
--- a/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp
+++ b/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp
@@ -42,6 +42,7 @@ ExecutionResult LayerSetSourceRectangleCommand::execute(ICommandExecutor* execut
{
const Rectangle rectangle(m_x, m_y, m_width, m_height);
result = layer->setSourceRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ layer->applySurfaceTransform();
}
return result;
diff --git a/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp b/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp
index dc0191a..bf9c1e9 100644
--- a/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp
+++ b/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp
@@ -38,11 +38,15 @@ ExecutionResult SurfaceSetDestinationRectangleCommand::execute(ICommandExecutor*
ExecutionResult result = ExecutionFailed;
Surface* surface = scene.getSurface(m_id);
-
- if (surface)
+ if (surface)
{
+ unsigned int layerid = surface->getContainingLayerId();
const Rectangle rectangle(m_x, m_y, m_width, m_height);
result = surface->setDestinationRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ if ( layerid != Surface::INVALID_ID )
+ {
+ surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion());
+ }
}
return result;
diff --git a/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp b/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp
index 850ef00..024bf8b 100644
--- a/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp
+++ b/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp
@@ -34,11 +34,15 @@ ExecutionResult SurfaceSetDimensionCommand::execute(ICommandExecutor* executor)
ExecutionResult result = ExecutionFailed;
- GraphicalSurface* surface = scene.getSurface(m_id);
-
+ Surface* surface = scene.getSurface(m_id);
if (surface)
{
+ unsigned int layerid = surface->getContainingLayerId();
result = surface->setDimension(m_width, m_height) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ if ( layerid != Surface::INVALID_ID )
+ {
+ surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion());
+ }
}
return result;
diff --git a/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp b/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp
index 579889e..86b8cee 100644
--- a/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp
+++ b/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp
@@ -35,10 +35,15 @@ ExecutionResult SurfaceSetPositionCommand::execute(ICommandExecutor* executor)
ExecutionResult result = ExecutionFailed;
Surface* surface = scene.getSurface(m_id);
-
+
if (surface)
{
+ unsigned int layerid = surface->getContainingLayerId();
result = surface->setPosition(m_x, m_y) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ if ( layerid != Surface::INVALID_ID )
+ {
+ surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion());
+ }
}
return result;
}
diff --git a/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp b/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp
index 1472992..11533ee 100644
--- a/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp
+++ b/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp
@@ -37,11 +37,15 @@ ExecutionResult SurfaceSetSourceRectangleCommand::execute(ICommandExecutor* exec
ExecutionResult result = ExecutionFailed;
Surface* surface = scene.getSurface(m_id);
-
if (surface)
{
+ unsigned int layerid = surface->getContainingLayerId();
const Rectangle rectangle(m_x, m_y, m_width, m_height);
result = surface->setSourceRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess;
+ if ( layerid != Surface::INVALID_ID )
+ {
+ surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion());
+ }
}
return result;