20 lines
		
	
	
		
			411 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			411 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package zui; | ||
|  | 
 | ||
|  | import haxe.macro.Context; | ||
|  | import haxe.macro.Expr; | ||
|  | import haxe.macro.ExprTools; | ||
|  | 
 | ||
|  | class Id { | ||
|  | 
 | ||
|  | 	static var i = 0; | ||
|  | 
 | ||
|  | 	macro public static function pos(): Expr { | ||
|  | 		return macro $v{i++}; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	macro public static function handle(ops: Expr = null): Expr { | ||
|  | 		var code = "zui.Zui.Handle.global.nest(zui.Id.pos()," + ExprTools.toString(ops) + ")"; | ||
|  | 	    return Context.parse(code, Context.currentPos()); | ||
|  | 	} | ||
|  | } |