function Panel_Gradient() : PanelContent() constructor {
	title = __txt("Gradients");
	padding		 = 8;
	
	w = ui(320);
	h = ui(480);
	
	function onResize() { sp_gradient.resize(w - ui(padding + padding), h - ui(padding + padding)); }
	
	sp_gradient = new scrollPane(w - ui(padding + padding), h - ui(padding + padding), function(_y, _m) {
		draw_clear_alpha(COLORS.panel_bg_clear, 0);
		var ww  = sp_gradient.surface_w;
		var hh  = 0;
		
		var amo = array_length(GRADIENTS);
		var col = max(1, floor(ww / ui(160)));
		var row = ceil(amo / col);
		
		var pd  = ui(6);
		var gw  = (ww + ui(8)) / col;
		var hg  = ui(40);
		var yy  = _y;
		
		for(var i = 0; i < row; i++) {
			for(var j = 0; j < col; j++) {
				var ind = i * col + j;
				if(ind >= amo) break;
				
				var xx  = j * gw;
				var gww = gw - ui(8);
				var _py = yy + ui(18);
				var _ph = hg - ui(18 + 4);
				var preset	= GRADIENTS[ind];
				var isHover = pHOVER && point_in_rectangle(_m[0], _m[1], xx, max(0, yy), xx + gww, min(sp_gradient.h, yy + hg));
				
				draw_sprite_stretched(THEME.ui_panel_bg, 3, xx, yy, gww, hg);
				
				preset.gradient.draw(xx + ui(4), _py, gww - ui(8), _ph);
				draw_set_text(f_p3, fa_left, fa_top, COLORS._main_text_sub);
				draw_text_add(xx + pd, yy + ui(2), preset.name);
				
				draw_sprite_stretched_add(THEME.ui_panel, 1, xx + ui(4), _py, gww - ui(8), _ph, c_white, 0.3);
				if(isHover) {
					sp_gradient.hover_content = true;
					draw_sprite_stretched_ext(THEME.ui_panel, 1, xx, yy, gww, hg, COLORS._main_accent, 1);
				}
				
				if(isHover && mouse_press(mb_left, pFOCUS)) {
					DRAGGING = { type: "Gradient", data: preset.gradient }
					MESSAGE  = DRAGGING;
				} 
			}
			
			yy += hg + ui(6);
			hh += hg + ui(6);
		}
		
		return hh;
	});
	
	function drawContent(panel) {
		draw_clear_alpha(COLORS.panel_bg_clear, 0);
		
		var px = ui(padding);
		var py = ui(padding);
		var pw = w - ui(padding + padding);
		var ph = h - ui(padding + padding);
	
		draw_sprite_stretched(THEME.ui_panel_bg, 1, px - ui(8), py - ui(8), pw + ui(16), ph + ui(16));
		
		sp_gradient.setFocusHover(pFOCUS, pHOVER);
		sp_gradient.draw(px, py, mx - px, my - py);
		
		// var bx = w - ui(32 + 16);
		// var by = padding / 2 - ui(16 + !in_dialog * 2);
		
		// if(buttonInstant(THEME.button_hide_fill, bx, by, ui(32), ui(32), [mx, my], pHOVER, pFOCUS, __txt("Refresh"), THEME.refresh_icon, 1, COLORS._main_icon) == 2) 
		// 	__initGradient();
	}
}