mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 03:42:44 +00:00 
			
		
		
		
	 1682f0b760
			
		
	
	
		1682f0b760
		
	
	
	
	
		
			
			SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include <AK/String.h>
 | |
| #include <LibGfx/Point.h>
 | |
| #include <LibGfx/Rect.h>
 | |
| #include <LibIPC/Decoder.h>
 | |
| #include <LibIPC/Encoder.h>
 | |
| 
 | |
| namespace Gfx {
 | |
| 
 | |
| template<typename T>
 | |
| void Point<T>::constrain(const Rect<T>& rect)
 | |
| {
 | |
|     if (x() < rect.left()) {
 | |
|         set_x(rect.left());
 | |
|     } else if (x() > rect.right()) {
 | |
|         set_x(rect.right());
 | |
|     }
 | |
| 
 | |
|     if (y() < rect.top()) {
 | |
|         set_y(rect.top());
 | |
|     } else if (y() > rect.bottom()) {
 | |
|         set_y(rect.bottom());
 | |
|     }
 | |
| }
 | |
| 
 | |
| template<>
 | |
| String IntPoint::to_string() const
 | |
| {
 | |
|     return String::formatted("[{},{}]", x(), y());
 | |
| }
 | |
| 
 | |
| template<>
 | |
| String FloatPoint::to_string() const
 | |
| {
 | |
|     return String::formatted("[{},{}]", x(), y());
 | |
| }
 | |
| 
 | |
| }
 | |
| 
 | |
| namespace IPC {
 | |
| 
 | |
| bool encode(Encoder& encoder, const Gfx::IntPoint& point)
 | |
| {
 | |
|     encoder << point.x() << point.y();
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| bool decode(Decoder& decoder, Gfx::IntPoint& point)
 | |
| {
 | |
|     int x = 0;
 | |
|     int y = 0;
 | |
|     if (!decoder.decode(x))
 | |
|         return false;
 | |
|     if (!decoder.decode(y))
 | |
|         return false;
 | |
|     point = { x, y };
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| }
 | |
| 
 | |
| template class Gfx::Point<int>;
 | |
| template class Gfx::Point<float>;
 |