Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Paint-like application written in C using GTK+

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
X-Painter
=============

X-Painter is Windows Paint-like application written in C using GTK+ and Cairo for my Computer Graphics course.

How to compile and run (dependency: gtk)
=============
gcc -Wall -D_GNU_SOURCE main.c widgets_drawer.c global.c mouse_handler.c tools.c -o main.o `pkg-config --cflags libgnomecanvas-2.0 --libs gtk+-2.0` && ./main.o

Extra
=============
 * Dibujar líneas en __tiempo real_
 * Ancho de pixel para cualquier figura
 * 2 colores diferentes para pintar en caso de figura filled.
 * Transparencia en el canvas (para los 2 colores)
 * Memoria para 100 canvases (Undo y Redo)
 * Seleccionar y mover, además mover aún despues de haber terminado de mover
 * Key bindings para 
     ** Archivo: New, Open, Save y Salir
     ** Editar: Cortar, Copiar, Pegar, Undo y Redo
 * Abrir archivos BMP, PNG, GIF, PDF y JPG
 * Guardar archivos BMP, PNG
 * Guardar como
 * Ventanas de error
 * Guardar seleccion a archivo
 * 10 posibles patrones de llenado
 * Agregar propios patrones dinámicamente:
    * Importar patron desde imagen

Ideas Extra
------------
 * Agregar propios patrones dinámicamente.

Specs 
-----------
- Cut, Copy Paste
- Undo - DONE
- Save -- DONE
- Load -- DONE
- Circulo,Elipses, rectangulos, poligono (fill)
- Línea – 3 grosores -- DONE
- Flood fill - Paterns -- DONE
- Texto
- Get color -- DONE
- Dibujar encima el círculo, cuadrado, etc
- Spray -- DONE
- Borrador - DONE
- Bmp
- New 
- 2 patrones de llenado
- Mouseb
- ASM = Put Char - Put Pixel - Get Color - Set/unset Video

TODO 
------
 * [#A] Texto
 * [#A] Lapicero
 * [#C] Pintar focus en el current tool
 * [#C] Alpha en pixbuf en flood fill
 * [#B] Fix spray
 * [#B] Cambiar mouse icons dependiendo del tool
 * [#B] ZOOM
 * [#B] Arreglar bug cuando selection se sale del drawing area
 * [#C] Arreglar bug cuando line_width > 1 y filled=on
 * [#A] Arreglar bug cuando filled rectangle es dibujado desde abajo
 * [#A] Arreglar paste!

[#A] = must
[#B] = falla
[#C] = no esencial, pero nice.

Something went wrong with that request. Please try again.