forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
package tests;
 | 
						|
 | 
						|
// Uses native enum, which does not play nice with Dynamic - must use @:unreflective
 | 
						|
@:unreflective
 | 
						|
@:enum extern abstract SystemMetric(SystemMetricImpl) {
 | 
						|
    @:native("wxSYS_MOUSE_BUTTONS")      var MOUSE_BUTTONS;
 | 
						|
    @:native("wxSYS_OS")      var OS;
 | 
						|
}
 | 
						|
@:unreflective
 | 
						|
@:native("wxSystemMetric")
 | 
						|
extern class SystemMetricImpl { }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
// Wraps enum in struct, which does play nice...
 | 
						|
@:enum extern abstract SystemMetricStruct(SystemMetricStructImpl) {
 | 
						|
    @:native("wxSYS_MOUSE_BUTTONS")      var MOUSE_BUTTONS;
 | 
						|
    @:native("wxSYS_OS")      var OS;
 | 
						|
}
 | 
						|
@:native("cpp::Struct<wxSystemMetric, cpp::EnumHandler>")
 | 
						|
extern class SystemMetricStructImpl { }
 | 
						|
 | 
						|
@:headerCode('
 | 
						|
enum wxSystemMetric
 | 
						|
{
 | 
						|
   wxSYS_OS = 3,
 | 
						|
   wxSYS_MOUSE_BUTTONS = 27,
 | 
						|
};
 | 
						|
')
 | 
						|
class TestNativeEnum extends haxe.unit.TestCase
 | 
						|
{
 | 
						|
   var x:SystemMetric = SystemMetric.MOUSE_BUTTONS;
 | 
						|
   var xStruct:SystemMetricStruct = SystemMetricStruct.MOUSE_BUTTONS;
 | 
						|
 | 
						|
   function isX(val:SystemMetric)
 | 
						|
   {
 | 
						|
      return (val==x);
 | 
						|
   }
 | 
						|
 | 
						|
   function isXStruct(val:SystemMetricStruct)
 | 
						|
   {
 | 
						|
      return (val==xStruct);
 | 
						|
   }
 | 
						|
 | 
						|
 | 
						|
   public function test()
 | 
						|
   {
 | 
						|
      assertTrue( isX(SystemMetric.MOUSE_BUTTONS)==true );
 | 
						|
      assertTrue( isX(SystemMetric.OS)==false );
 | 
						|
      assertTrue( isXStruct(SystemMetricStruct.MOUSE_BUTTONS)==true );
 | 
						|
      assertTrue( isXStruct(SystemMetricStruct.OS)==false );
 | 
						|
      var d:Dynamic = this;
 | 
						|
      assertTrue( d.x==null );
 | 
						|
      assertTrue( d.xStruct!=null );
 | 
						|
      assertTrue( d.isX==null );
 | 
						|
      assertTrue( d.isXStruct!=null );
 | 
						|
      var func = d.isXStruct;
 | 
						|
      assertTrue(func!=null);
 | 
						|
      assertTrue(func(SystemMetricStruct.MOUSE_BUTTONS)==true );
 | 
						|
      assertTrue(func(SystemMetricStruct.OS)==false );
 | 
						|
   }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |