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