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 FloatPoint 21 { 22 float left, top; 23 FloatPointFloatPoint24 FloatPoint( float _left, float _top ) : left( _left ), top( _top ) { } 25 26 static bool operator == ( FloatPoint lvalue, FloatPoint rvalue ) 27 { 28 return ( lvalue.left == rvalue.left && lvalue.top == rvalue.top ); 29 } EqualsFloatPoint30 virtual bool Equals(FloatPoint other) 31 { 32 return *this == other; 33 } 34 static bool operator != ( FloatPoint lvalue, FloatPoint rvalue ) 35 { 36 return !(lvalue == rvalue); 37 } 38 39 }; 40 41 #else 42 43 typedef MMYGUI_EXTERNAL_NAMESPACE FloatPoint FloatPoint; 44 45 #endif // MMYGUI_USING_EXTERNAL_TYPE 46 47 template <> struct Convert<const MyGUI::FloatPoint&> 48 { 49 typedef FloatPoint Type; 50 inline static const FloatPoint& To(const MyGUI::FloatPoint& _value) 51 { 52 return reinterpret_cast<const FloatPoint&>(_value); 53 } 54 inline static MyGUI::FloatPoint& From(FloatPoint& _value) 55 { 56 return reinterpret_cast<MyGUI::FloatPoint&>(_value); 57 } 58 }; 59 template <> struct Convert<MyGUI::FloatPoint> 60 { 61 typedef FloatPoint Type; 62 inline static const FloatPoint& To(const MyGUI::FloatPoint& _value) 63 { 64 return reinterpret_cast<const FloatPoint&>(_value); 65 } 66 inline static MyGUI::FloatPoint& From(FloatPoint& _value) 67 { 68 return reinterpret_cast<MyGUI::FloatPoint&>(_value); 69 } 70 }; 71 72 } // namespace Managed 73 } // namespace MyGUI 74