2003-09-15 Sven Neumann <sven@gimp.org>
* app/config/Makefile.am
* app/config/config-types.h
* app/config/gimpxmlparser.[ch]: new files that hold a simple XML
parser based on GMarkupParser. It's not a full-featured XML parser;
it only adds transparent handling of encodings to GMarkupParser
and provides a convenient API to deal with files or IO channels.
* app/vectors/gimpvectors-import.c: use the new GimpXmlParser.
* app/vectors/gimpvectors-export.c: write encoding attribute.
* app/tips-dialog.c
* app/tips-parser.c: use the new GimpXmlParser.
* app/vectors/Makefile.am: had to add one of those truly ugly
hacks here in order to get the application linked.
2003-09-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_constructor):
order the "visible" and "linked" columns by inserting them with
the right index, not by reordering code.
(gimp_item_tree_view_set_container): set the handler_ids to 0
after disconnecting them.
2003-09-15 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-import.c: name the vectors after the
path id as found in the SVG.
* app/vectors/gimpvectors-export.c: further improved formatting.
2003-09-15 Simon Budig <simon@gimp.org>
* app/vectors/gimpvectors-export.c: Save an id-attribute
using the vector objects name. Slightly adjusted formatting.
* app/composite/gimp-composite-sse2.c (gimp_composite_swap_rgba8_rgba8_rgba8_sse2):
Removed clobbered register declaration in an attempt to get this
to compile with gcc 3.2.3
2003-09-13 Sven Neumann <sven@gimp.org>
* app/gui/vectors-commands.c (vectors_export_ok_callback): no need
to flush the image after exporting vectors.
* app/vectors/gimpvectors-import.c: improved error handling.
* gimp-composite-sse2-installer.c, gimp-composite-sse2-test.c:
regenerated with new functions.
* gimp-composite-sse.c, gimp-composite-sse2.c:
Distinguish between 64bit and 128bit constants with a little
faux hungarian notation.
* gimp-composite-sse2.[ch]: Added implementations of
addition_rgba8_rgba8_rgba8, subtract_rgba8_rgba8_rgba8, and
swap_rgba8_rgba8_rgba8
* gimp-composite-generic.c:
Some formating beautification
2003-09-13 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]
* app/vectors/gimpvectors-import.c: add vectors in an undo-group.
* app/gui/vectors-commands.c: added simple file selection dialogs
for vectors import and export.
2003-09-13 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-import.c: simplified the parser and
make it optionally create multiple vectors again.
2003-09-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpitemtreeview.c: moved the visibility toggle
before the linked toggle again.
* app/core/gimpdrawable.c (gimp_drawable_configure)
* app/core/gimpitem.c (gimp_item_init): quick fix for bug #122153:
don't make the item visible in gimp_drawable_configure() since that
breaks duplicate(); instead create all items as visible.
2003-09-13 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-import.c: rewrote large parts of the SVG
parser. It now handles nested groups and transformations. Still not
perfect but close.
* app/composite/gimp-composite-generic.[ch]: Added a proper
implementation of the BEHIND drawing mode. This should fix bug
#121889
* app/composite/gimp-composite-generic-installer.c: regenerated
2003-09-12 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-import.c (parse_svg_viewbox): return a
transformation matrix in preparation for nested transforms.
2003-09-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimpdrawtool.[ch]: added new functions
gimp_draw_tool_on_vectors_handle() and _on_vectors_curve()
so they can be used by all GimpDrawTool subclasses.
* app/tools/gimpvectortool.[ch]: removed the _on_handle() and
_on_curve() functions here. Connect to "active_vectors_changed" of
the active_vector's image, so once it has been avtivated, the tool
follows the path which is selected in the paths dialog.
2003-09-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask-select.c (gimp_image_mask_select_vectors)
* app/paint/gimppaintcore-stroke.c (gimp_paint_core_stroke_vectors)
* app/display/gimpdisplayshell.c (gimp_display_shell_draw_vector)
* app/tools/gimpdrawtool.c (gimp_draw_tool_real_draw)
* app/tools/gimptransformtool.c (gimp_transform_tool_draw)
* app/tools/gimpvectortool.c (gimp_vector_tool_vectors_visible)
(gimp_vector_tool_draw): all callers of gimp_stroke_interpolate():
don't leak the returned GimpCoords array and don't crash if it's
NULL.
* app/tools/gimpvectortool.[ch]: added VECTORS_SELECT_VECTOR state
which enables activating any visible GimpVectors on any display.
(gimp_vector_tool_on_handle)
(gimp_vector_tool_on_curve): added a GimpVectors parameter so we
can check for vectors which are not vector_tool->vectors.
(gimp_vector_tool_oper_update): iterate gdisp->gimage->vectors
to figure if we are hovering any visible vectors and set
VECTORS_SELECT_VECTOR.
(gimp_vector_tool_button_press): catch VECTORS_SELECT_VECTOR and
start editing the selected vectors. Also make it the image's
active_vectors.
(gimp_vector_tool_button_release): removed unneeded call to
gimp_viewable_invalidate_preview(vectors).
Random cleanup all over the place.
2003-09-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.c: removed all calls to
gimp_tool_control_set_preserve() so the tool doesn't get
confused by the image being dirtied.
Made it aware of visible vectors:
(gimp_vector_tool_draw): don't draw the stroke itself if the
current vectors is visible.
(gimp_vector_tool_vectors_visible): new callback which just draws
the stroke itself when the vectors changes visibility.
(gimp_vector_tool_set_vectors): connect the new callback.
2003-09-12 Michael Natterer <mitch@gimp.org>
Added support for permanently showing the visible vectors, not
only when the vectors tool is active:
* app/display/gimpdisplayshell.[ch]: added
gimp_display_shell_draw_vector() which draws a single GimpVectors
object and gimp_display_shell_draw_vectors() which draws all
visible ones. Added "gint paused_count" and new functions
gimp_display_shell_paunse()/resume(). Pause/resume the active tool
and draw/undraw the visible vectors when paused_count changes from
0 to 1 and from 1 to 0.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c: call the new
freeze()/thaw() functions instead of calling the tool_manager
directly. Removes the tools/ sependency from the scale and scroll
files. Also draw the vectors once when the canvas is realized so
XOR drawing is in the correct state.
* app/display/gimpdisplayshell-handlers.c: connect to
image->vectors' "add" and "remove" signal and to the "freeze",
"thaw" and "visibility_changed" signals of all vectors in
image->vectors and update vectors drawing accordingly.
2003-09-11 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-transparency-[16|24].png: new icon.
* libgimpwidgets/gimpstock.[ch]: register as GIMP_STOCK_TRANSPARENCY.
* app/gui/image-menu.c
* app/gui/layers-menu.c: use the new icon for "Add Alpha Channel".
* app/widgets/gimplayertreeview.c: replaced the "Keep Trans."
button with a check button plus the new icon (bug #121784).
2003-09-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem-linked.[ch]: made gimp_item_linked_get_list()
and the GimpItemLinkedMask enum public. Hiding them just causes
code duplication.
* app/tools/gimpdrawtool.[ch]: added a GList of GimpVectors and a
GimpMatrix3 transformation matrix for them. Just set them with
gimp_draw_tool_set_vectors() and gimp_draw_tool_set_transform()
and chain up in your tools's GimpdrawTool::draw() implementation
to get the vectors drawn.
* app/tools/gimpeditselectiontool.c: use
gimp_item_linked_get_list() instead of traversing image->layers,
->channels and ->vectors manually to find the linked items.
Use gimp_draw_tool_set_vectors() and _set_transform() to show
the linked vectors while moving.
(gimp_edit_selection_tool_arrow_key): transform all linked items,
not just the linked layers.
2003-09-11 Michael Natterer <mitch@gimp.org>
* app/gui/brushes-menu.c
* app/gui/buffers-menu.c
* app/gui/channels-menu.c
* app/gui/colormap-editor-menu.c
* app/gui/gradients-menu.c
* app/gui/images-menu.c
* app/gui/layers-menu.c
* app/gui/palette-editor-menu.c
* app/gui/palettes-menu.c
* app/gui/patterns-menu.c
* app/gui/templates-menu.c
* app/gui/vectors-menu.c: made the default (== double click)
action the first menu entry as suggested by the HIG and
added/removed separators where appropriate.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/text/Makefile.am: removed PANGO_DISABLE_DEPRECATED again since
we have to use Pango API that is deprecated in the HEAD branch.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform-utils.[ch]: added new function
gimp_drawable_transform_matrix_flip().
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.c: don't push the complex GimpItem
transformation API down to GimpStroke. Instead setup the matrices
in GimpVectors and use a simpler API for GimpStroke.
* app/vectors/gimpvectors-import.c: changed accordingly.
* app/vectors/gimpvectors-export.c: close the <path> element.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-export.[ch]: allow to optionally export
all paths from an image into a single SVG file.
* app/gui/vectors-commands.c: changed accordingly.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform-utils.[ch]: added new function
gimp_drawable_transform_matrix_flip().
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.c: don't push the complex GimpItem
transformation API down to GimpStroke. Instead setup the matrices
in GimpVectors and use a simpler API for GimpStroke.
* app/vectors/gimpvectors-import.c: changed accordingly.
* app/vectors/gimpvectors-export.c: close the <path> element.
2003-09-11 Simon Budig <simon@gimp.org>
* vectors/gimpbezierstroke.[ch]: Implemented
gimp_bezier_stroke_arcto () that creates an elliptical arc
in the way SVG works.
* vectors/gimpvectors-import.c: use it.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform-utils.[ch]: added new function
gimp_drawable_transform_matrix_flip().
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.c: don't push the complex GimpItem
transformation API down to GimpStroke. Instead setup the matrices
in GimpVectors and use a simpler API for GimpStroke.
* app/vectors/gimpvectors-import.c: changed accordingly.
* app/vectors/gimpvectors-export.c: close the <path> element.
2003-09-11 Michael Natterer <mitch@gimp.org>
* app/gui/Makefile.am
* app/gui/themes.[ch]: new files.
* app/gui/gui.[ch]: code taken from here. It was getting too large.
* app/gui/preferences-dialog.c; changed accordingly.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/vectors/Makefile.am (INCLUDES): replaced GTK_CFLAGS by
GDK_PIXBUF_CFLAGS.
* app/vectors/gimpvectors-export.c: added a first draft of
GimpVectors SVG export.
* app/gui/vectors-commands.c (vectors_export_cmd_callback): call
gimp_vectors_export() with a hardcoded filename.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-export.[ch]: allow to optionally export
all paths from an image into a single SVG file.
* app/gui/vectors-commands.c: changed accordingly.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/vectors/Makefile.am (INCLUDES): replaced GTK_CFLAGS by
GDK_PIXBUF_CFLAGS.
* app/vectors/gimpvectors-export.c: added a first draft of
GimpVectors SVG export.
* app/gui/vectors-commands.c (vectors_export_cmd_callback): call
gimp_vectors_export() with a hardcoded filename.
2003-09-11 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-import.[ch]
* app/gui/vectors-commands.c: allow to optionally create a
GimpVectors object per <path> element. Made this the default until
there's a GUI for this.
2003-09-10 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: added lots more "GimpFooFunc gui_foo_func"
vtable entries to the Gimp struct and wrapper function for them.
They cover plug-in menu creation and plug-in progress utilities.
* app/gui/gui.c: fill in the funtion pointers and dispatch
to the actual functions.
* app/pdb/Makefile.am (libapppdb_a_LIBADD): removed most hacks
since the symbols are referenced within libappgui.a now.
Removed any GTK+ dependency from the plug-ins/ directory:
* app/plug-in/Makefile.am (INCLUDES): replaces GTK_CFLAGS by
GDK_PIXBUF_CFLAGS.
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-ins.c: replaced gui function calls to create
menus and progress bars by calls to the wrappers.
* app/plug-in/plug-in.c (plug_in_close): check dangling PDB
dialogs using the new wrapper.
* app/plug-in/plug-in-def.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c: removed trailing whitespace.
2003-09-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-layer-select.c: switch layers
immediately, not when finishing layer_select, so the layer
boundary and the layers dialog are updated, which makes this
feature much more useful. Fixes bug #119234.
2003-09-10 Sven Neumann <sven@gimp.org>
* app/gui/vectors-commands.c (vectors_import_cmd_callback): call
gimp_vectors_import(). Hardcoded filename to path.svg for now.
* app/vectors/gimpvectors-import.c: more work on the SVG parser.
2003-09-10 Michael Natterer <mitch@gimp.org>
* app/xcf/xcf-save.c: changed the various xcf_write_*_error()
macros to take an XcfInfo pointer as first parameter, not
info->fp. Simplifies all callers a bit since they don't have to
dereference it themselves.
2003-09-10 Michael Natterer <mitch@gimp.org>
* app/xcf/xcf-save.c: enabled error checking for GimpParasite
saving and factored GimpParasiteList saving out to a new
function. Cleaned up the (still disabled) PROP_VECTORS saving
code and save the vector's parasites.
* app/xcf/xcf-load.c: changed PROP_VECTORS loading accordingly.
Note that the PROP_VECTORS changes are completely untested since
Simon can judge its correctness much better than myself.