68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
// NoesisGUI - http://www.noesisengine.com
 | 
						|
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
 | 
						|
////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
 | 
						|
#ifndef __DRAWING_THICKNESS_H__
 | 
						|
#define __DRAWING_THICKNESS_H__
 | 
						|
 | 
						|
 | 
						|
#include <NsCore/Noesis.h>
 | 
						|
#include <NsCore/ReflectionImplement.h>
 | 
						|
#include <NsDrawing/TypesApi.h>
 | 
						|
#include <NsCore/StringFwd.h>
 | 
						|
 | 
						|
 | 
						|
namespace Noesis
 | 
						|
{
 | 
						|
 | 
						|
////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
/// Thickness. Describes the thickness of a frame around a rectangle.
 | 
						|
////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
struct Thickness
 | 
						|
{
 | 
						|
    float left;
 | 
						|
    float top;
 | 
						|
    float right;
 | 
						|
    float bottom;
 | 
						|
 | 
						|
    Thickness();
 | 
						|
    Thickness(float thickness);
 | 
						|
    Thickness(float lr, float tb);
 | 
						|
    Thickness(float l, float t, float r, float b);
 | 
						|
    Thickness(const Thickness& thickness) = default;
 | 
						|
 | 
						|
    /// Copy operator
 | 
						|
    Thickness& operator=(const Thickness& thickness) = default;
 | 
						|
 | 
						|
    /// Comparisson operators
 | 
						|
    bool operator==(const Thickness& thickness) const;
 | 
						|
    bool operator!=(const Thickness& thickness) const;
 | 
						|
 | 
						|
    /// Validates this instance for the given constraints
 | 
						|
    NS_DRAWING_TYPES_API bool IsValid(bool allowNegative, bool allowNegativeInf,
 | 
						|
        bool allowPositiveInf, bool allowNaN) const;
 | 
						|
 | 
						|
    /// Creates a string representation of this thickness structure
 | 
						|
    /// The string has the following form: "left,top,right,bottom" or "left,top" or "left"
 | 
						|
    NS_DRAWING_TYPES_API String ToString() const;
 | 
						|
 | 
						|
    /// Tries to parse a Thickness from a string
 | 
						|
    NS_DRAWING_TYPES_API static bool TryParse(const char* str, Thickness& result);
 | 
						|
 | 
						|
    NS_IMPLEMENT_INLINE_REFLECTION(Thickness, NoParent)
 | 
						|
    {
 | 
						|
        NsProp("Left", &Thickness::left);
 | 
						|
        NsProp("Top", &Thickness::top);
 | 
						|
        NsProp("Right", &Thickness::right);
 | 
						|
        NsProp("Bottom", &Thickness::bottom);
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
#include <NsDrawing/Thickness.inl>
 | 
						|
 | 
						|
#endif
 |