AglShellGrpcClient: Add support for split windows
[src/window-management-client-grpc.git] / src / AglShellGrpcClient.cpp
index 73aad71..5f1b447 100644 (file)
@@ -75,6 +75,20 @@ GrpcClient::SetAppFloat(const std::string& app_id, int32_t x_pos, int32_t y_pos)
        return status.ok();
 }
 
+bool
+GrpcClient::SetAppNormal(const std::string& app_id)
+{
+       agl_shell_ipc::NormalRequest request;
+
+       request.set_app_id(app_id);
+
+       grpc::ClientContext context;
+       ::agl_shell_ipc::NormalResponse reply;
+
+       grpc::Status status = m_stub->SetAppNormal(&context, request, &reply);
+       return status.ok();
+}
+
 bool
 GrpcClient::SetAppFullscreen(const std::string& app_id)
 {
@@ -89,6 +103,73 @@ GrpcClient::SetAppFullscreen(const std::string& app_id)
        return status.ok();
 }
 
+bool
+GrpcClient::SetAppOnOutput(const std::string& app_id, const std::string &output)
+{
+       agl_shell_ipc::AppOnOutputRequest request;
+
+       request.set_app_id(app_id);
+       request.set_output(output);
+
+       grpc::ClientContext context;
+       ::agl_shell_ipc::AppOnOutputResponse reply;
+
+       grpc::Status status = m_stub->SetAppOnOutput(&context, request, &reply);
+       return status.ok();
+}
+
+bool
+GrpcClient::SetAppPosition(const std::string& app_id, int32_t x, int32_t y)
+{
+       agl_shell_ipc::AppPositionRequest request;
+
+       request.set_app_id(app_id);
+       request.set_x(x);
+       request.set_y(y);
+
+       grpc::ClientContext context;
+       ::agl_shell_ipc::AppPositionResponse reply;
+
+       grpc::Status status = m_stub->SetAppPosition(&context, request, &reply);
+       return status.ok();
+}
+
+bool
+GrpcClient::SetAppScale(const std::string& app_id, int32_t width, int32_t height)
+{
+       agl_shell_ipc::AppScaleRequest request;
+
+       request.set_app_id(app_id);
+       request.set_width(width);
+       request.set_height(height);
+
+       grpc::ClientContext context;
+       ::agl_shell_ipc::AppScaleResponse reply;
+
+       grpc::Status status = m_stub->SetAppScale(&context, request, &reply);
+       return status.ok();
+}
+
+
+bool
+GrpcClient::SetAppSplit(const std::string& app_id, uint32_t orientation,
+                       int32_t width, int32_t sticky, const std::string& output_name)
+{
+       agl_shell_ipc::SplitRequest request;
+
+       request.set_app_id(app_id);
+       request.set_output_name(output_name);
+       request.set_tile_orientation(orientation);
+       request.set_width(width);
+       request.set_sticky(sticky);
+
+       grpc::ClientContext context;
+       ::agl_shell_ipc::SplitResponse reply;
+
+       grpc::Status status = m_stub->SetAppSplit(&context, request, &reply);
+       return status.ok();
+}
+
 grpc::Status
 GrpcClient::Wait(void)
 {