1 /*!
2 	@file
3 	@author		Albert Semenov
4 	@date		01/2009
5 	@module
6 */
7 #pragma once
8 
9 #include <MyGUI.h>
10 #include "Config.h"
11 #include "Marshaling.h"
12 
13 namespace MyGUI
14 {
15 	namespace Managed
16 	{
17 
18 		#ifndef MMYGUI_USING_EXTERNAL_TYPE
19 
20 		public value struct FloatRect
21 		{
22 			float left, top, right, bottom;
23 
FloatRectFloatRect24 			FloatRect( float _left, float _top, float _right, float _bottom ) : left( _left ), top( _top ), right( _right ), bottom( _bottom ) { }
25 
26 			static bool operator == ( FloatRect lvalue, FloatRect rvalue )
27 			{
28 				return ( lvalue.left == rvalue.left && lvalue.top == rvalue.top && lvalue.right == rvalue.right && lvalue.bottom == rvalue.bottom );
29 			}
EqualsFloatRect30 			virtual bool Equals(FloatRect other)
31 			{
32 				return *this == other;
33 			}
34 			static bool operator != ( FloatRect lvalue, FloatRect rvalue )
35 			{
36 				return !(lvalue == rvalue);
37 			}
38 
39 		};
40 
41 		#else
42 
43 		typedef MMYGUI_EXTERNAL_NAMESPACE FloatRect FloatRect;
44 
45 		#endif // MMYGUI_USING_EXTERNAL_TYPE
46 
47 		template <> struct Convert<const MyGUI::FloatRect&>
48 		{
49 			typedef FloatRect Type;
50 			inline static const FloatRect& To(const MyGUI::FloatRect& _value)
51 			{
52 				return reinterpret_cast<const FloatRect&>(_value);
53 			}
54 			inline static MyGUI::FloatRect& From(FloatRect& _value)
55 			{
56 				return reinterpret_cast<MyGUI::FloatRect&>(_value);
57 			}
58 		};
59 		template <> struct Convert<MyGUI::FloatRect>
60 		{
61 			typedef FloatRect Type;
62 			inline static const FloatRect& To(const MyGUI::FloatRect& _value)
63 			{
64 				return reinterpret_cast<const FloatRect&>(_value);
65 			}
66 			inline static MyGUI::FloatRect& From(FloatRect& _value)
67 			{
68 				return reinterpret_cast<MyGUI::FloatRect&>(_value);
69 			}
70 		};
71 		template <> struct Convert<MyGUI::FloatRect&>
72 		{
73 			typedef FloatRect % Type;
74 			inline static FloatRect % To(MyGUI::FloatRect& _value)
75 			{
76 				return reinterpret_cast<FloatRect&>(_value);
77 			}
78 		};
79 
80 	} // namespace Managed
81 } // namespace MyGUI
82