[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gpaint-develop] Gpaint development update
From: |
Michael Meffie |
Subject: |
[Gpaint-develop] Gpaint development update |
Date: |
Sat, 30 Aug 2003 11:24:26 -0400 |
Hello,
Since the beginning of this year, I have been developing gpaint
in the gnome-1-develop CVS branch on savannah. I can
dedicate only a few hours a week on this effort, it has been
a slow process. My goal has been to organize Andy's original
code, to make it more modular, and to remove any possible
unused code. This started as an idea on how to better
implement the paint tool code, to be more object oriented as
done in GIMP. The idea is to improve the modularity of the
code before we embark on adding any new major features, such
as undo/redo and zooming.
At this point, I have nearly completed this task. I am still
working on the cut/copy/paste features, and need to do much
testing. I have been calling this release "giotto", after
the famuous painter :)
What follows is a description of the modules and structures.
New modules are denoted with a (+) before the name.
New Structures
The image_buf structure has been split into several
structures.
gpaint_image wrapper for GdkPixbuf, used for x-client
side image processing
gpaint_point for processing of mouse events
gpaint_tool drawing tool interface
gpaint_selection selected points for copy/paste
gpaint_drawing drawing object, the x-server side backing
pixmap of the drawing.
gpaint_canvas top level object that contains the
drawing area, drawing, and current
tool object.
Glade Generated Files
These files are generated by glade and are overwritten
when glade rebuilds the source files.
ui.c Layout of all GUI elements.
support.c Autogenerated
Glade Generated Skeleton Files
These files are appended to by glade, so can be edited.
callbacks.c Callbacks skeletons. The calls have been
moved to the appropriate GUI modules.
main.c Application entry point. Creates the top
level window object and passes the command
line parameters.
GUI Modules
These files manage the user interface. They initialize the
GUI components and handle gtk callback events.
(+) canvas.c Canvas object contains the GtkDrawingArea
in the GtkScrollFrame. Events on the drawing
area are dispatched to the current drawing
tool object to change the drawing accordingly.
(+) file.c File save and save as dialogs.
(+) menu.c Callbacks for the main menu and toolbar
buttons.
print.c Print and print preview dialogs.
(Essentially no changes from the previous
gpaint version.)
(+) about.c Displays the application version in the
about box.
(+) color_palette.c Creates the color selection palette toolbar
and handles background and foreground color
selections.
(+) tool_palette.c Creates the drawing tool selection tool bar
and handles the changing of the drawing tool
object. Each tool object is created in this
module.
gtkscrollframe.c GtkScrollFrame to create a scrollable
drawing area. This has not been changed
from the previous version of gpaint.
pixmaps.c Include pixmaps for the tool palette
and about box. 73 kbytes of unused bitmaps
have been removed.
Image Processing
(+) drawing.c Contains the backing pixmap of the current
drawing and the selected area for cut, copy
and paste operations. The backing pixmap
is stored within the X server and is used
to repaint the image when the drawing area
is exposed.
(+) image.c Wrapper for the client side RGB pixel map.
Structure is called gpaint_image.
image_processing.c Image processing functions from XPaint.
Only minor changes were made to use the
gpaint_image instead of the old image_buf.
Drawing Tool Objects
These modules contain the code for the drawing tool objects.
The drawing functions are implemented with the GDK functions.
(+) pen.c Pen tool for drawing freeform lines.
(+) brush.c Paint brush and eraser tool.
(+) shape.c Tools for drawing ovals, rectangles, curves
straight lines, and multi-lines
(+) select.c Lasso and polygon selection tool.
(+) text.c Tool for writing text.
(+) fill.c Fill tool for filling an enclosed region.
Deprecated Modules
Most of the code in these modules has been moved into the
new modules listed above.
image_buf.c Most of the code in the module as been
moved into the GUI modules; canvas.c,
tool_palette.c, and color_palette.c. Some
of the code was moved to the drawing.c
and image.c files.
util.c Most of the code in this module was moved
to the canvas.c module, and the tool
objects.
fileio.c Moved to the image.c file for image
saving and reading.
rgb.c Not used.
clipboard.c moved to drawing.c
--- END -----
- [Gpaint-develop] Gpaint development update,
Michael Meffie <=