30 lines
		
	
	
	
		
			865 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			865 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// This file is part of Desktop App Toolkit,
 | 
						|
// a set of libraries for developing nice desktop applications.
 | 
						|
//
 | 
						|
// For license and copyright information please follow this link:
 | 
						|
// https://github.com/desktop-app/legal/blob/master/LEGAL
 | 
						|
//
 | 
						|
#include "ui/effects/gradient.h"
 | 
						|
 | 
						|
namespace anim {
 | 
						|
 | 
						|
QColor gradient_color_at(const QGradientStops & stops, float64 ratio) {
 | 
						|
	for (auto i = 1; i < stops.size(); i++) {
 | 
						|
		const auto currentPoint = stops[i].first;
 | 
						|
		const auto previousPoint = stops[i - 1].first;
 | 
						|
 | 
						|
		if ((ratio <= currentPoint) && (ratio >= previousPoint)) {
 | 
						|
			return anim::color(
 | 
						|
				stops[i - 1].second,
 | 
						|
				stops[i].second,
 | 
						|
				(ratio - previousPoint) / (currentPoint - previousPoint));
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return QColor();
 | 
						|
}
 | 
						|
 | 
						|
QColor gradient_color_at(const QGradient &gradient, float64 ratio) {
 | 
						|
	return gradient_color_at(gradient.stops(), ratio);
 | 
						|
}
 | 
						|
 | 
						|
} // namespace anim
 |