Beispiel #1
0
int		main(int ac, char **av)
{
	int			fd;
	t_list		**lst;

	if (ac == 2)
	{
		if (!(lst = (t_list**)malloc(sizeof(t_list*))))
			return (-1);
		*lst = NULL;
		if (((fd = open(av[1], O_RDONLY)) == -1))
		{
			ft_putendl("error");
			return (-1);
		}
		if (!(check_file(lst, fd)))
		{
			error(lst);
			return (close(fd) == -1 ? -1 : 0);
		}
		backtracking(lst, square_size(ft_alphabet('a') - 64));
		if (close(fd) == -1)
			return (-1);
	}
	else
		ft_putendl("error");
	return (0);
}
void Color_Wheel::render_rectangle()
{
    int sz = square_size();
    sat_val_square = QImage(sz,sz, QImage::Format_RGB32);

    for(int i = 0; i < sz; ++i)
    {
        for(int j = 0;j < sz; ++j)
        {
            sat_val_square.setPixel( i,j,
                    QColor::fromHsvF(huem,double(i)/sz,double(j)/sz).rgb());
        }
    }
}
void Color_Wheel::mouseMoveEvent(QMouseEvent *ev)
{
    if ( mouse_status == Drag_Circle )
    {
        huem = line_to_point(ev->pos()).angle()/360.0;
        render_rectangle();

        emit colorSelected(color());
        emit colorChanged(color());
        update();
    }
    else if ( mouse_status == Drag_Square )
    {
        QLineF glob_mouse_ln = line_to_point(ev->pos());
        QLineF center_mouse_ln ( QPointF(0,0),
                                 glob_mouse_ln.p2() - glob_mouse_ln.p1() );
        center_mouse_ln.setAngle(center_mouse_ln.angle()-huem*360-45);

        sat = center_mouse_ln.x2()/square_size()+0.5;

        val = center_mouse_ln.y2()/square_size()+0.5;

        if ( sat > 1 )
            sat = 1;
        else if ( sat < 0 )
            sat = 0;

        if ( val > 1 )
            val = 1;
        else if ( val < 0 )
            val = 0;

        emit colorSelected(color());
        emit colorChanged(color());
        update();
    }
}
void Color_Wheel::paintEvent(QPaintEvent * )
{
    double selector_w = 6;

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.translate(geometry().width()/2,geometry().height()/2);

    // hue wheel
    if ( hue_ring.isNull() )
        render_ring();

    painter.drawPixmap(-outer_radius(),-outer_radius(),hue_ring);



    // hue selector
    painter.setPen(QPen(Qt::black,3));
    painter.setBrush(Qt::NoBrush);
    QLineF ray(0,0,outer_radius(),0);
    ray.setAngle(huem*360);
    QPointF h1 = ray.p2();
    ray.setLength(inner_radius());
    QPointF h2 = ray.p2();
    painter.drawLine(h1,h2);

    // lum-sat square
    if ( sat_val_square.isNull() )
        render_rectangle();

    painter.rotate(-huem*360-45);
    ray.setLength(inner_radius());
    ray.setAngle(135);
    painter.drawImage(ray.p2(),sat_val_square);

    // lum-sat selector
    //painter.rotate(135);
    painter.setPen(QPen( val > 0.5 ? Qt::black : Qt::white ,3));
    painter.setBrush(Qt::NoBrush);
    double max_dist = square_size();
    painter.drawEllipse(QPointF(sat*max_dist-max_dist/2,
                                val*max_dist-max_dist/2
                               ),
                        selector_w,selector_w);

}