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 ); | ||
|  |    } | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | 
 |