2008-02-18 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_initialize):
don't create the recent settings menu if the tool did not set a
config object.
* app/tools/gimpgegltool.[ch]: pack the operation's settings in a
frame and add a label when there is no operation selected.
svn path=/trunk/; revision=24907
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcurveview.[ch]: port the "xpos" API
to [0.0..1.0] doubles too.
* app/tools/gimpcurvestool.[ch]: rename "col_value" member to
"picked_color" and use gdouble instead of gint. Also use GimpCurve
API to map the values instead of accessing the curve directly.
Fixes setting curve anchor points by color picking.
svn path=/trunk/; revision=24838
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: changed all values to be [0.0..1.0]
doubles instead of [0..255] integers. Also changed the API to use
doubles instead of ints. Still have the fixed-size arrays though.
(gimp_curve_map): new function to map values.
* app/gegl/gimpoperationcurves.c: remove private map() function
and use the one from GimpCurve.
* app/gegl/gimpcurvesconfig.c
* app/core/gimpdrawable-curves.c: port to the new gdouble API.
* app/tools/gimpcurvestool.c: use gimp_curve_get_uchar() to get
the arrays for the color bars.
* app/widgets/gimpcurveview.[ch]: port to gdouble and some cleanup.
svn path=/trunk/; revision=24837
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpgegltool.c (gimp_param_spec_duplicate)
* app/widgets/gimppropwidgets.c (gimp_prop_table_new): add support
for GParamSpecEnum.
* app/core/gimpimagemap.c (gimp_image_map_apply): add even better
checks for input and output pads of the passed operation.
svn path=/trunk/; revision=24824
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpgegltool.c (gimp_param_spec_duplicate)
* app/widgets/gimppropwidgets.c (gimp_prop_table_new): support
multiline text and file paths. The multiline support is hacked up
and needs some proper solution.
svn path=/trunk/; revision=24818
2008-02-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_apply): use
gegl_node_get_pad() instead of gegl_node_find_property() to find
out whether the node has an "input" pad.
* app/tools/gimpgegltool.c: #include "core/gimpimagemap.h"
svn path=/trunk/; revision=24812
2008-02-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_apply): do the right
thing for operations without "input" pad so we can use all source
operations too.
* app/tools/gimpimagemaptool.[ch]: make
gimp_image_map_tool_create_map() public for the time being.
* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_changed):
recreate the GimpImageMap so we can switch from filter to source
operations and back.
svn path=/trunk/; revision=24810
2008-02-05 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch] (gimp_prop_table_new): new
function which creates a table of prop widgets for all properties
of an object (pretty incomplete, does exactly what's needed in
GimpGeglTool, or even less).
* app/tools/gimpgegltool.c: create a proxy config class for each
GegĺOperation and create a prop table on the config class'
properties as GUI for the GEGL operation. Write the proxy object's
properties back to the GeglNode in map().
svn path=/trunk/; revision=24809
2008-02-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_response): don't
try to add a NULL config to the recent settings menu.
svn path=/trunk/; revision=24801
2008-02-05 Michael Natterer <mitch@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-gegl-16.png
* themes/Default/images/stock-gegl-24.png
* libgimpwidgets/gimpstock.[ch]: new stock icon to be replaced by
somebody who can draw ;)
* app/tools/gimpgegltool.c: use it.
svn path=/trunk/; revision=24800
2008-02-05 Michael Natterer <mitch@gimp.org>
* app/tools/Makefile.am
* app/tools/gimpgegltool.[ch]: add experimental GEGL tool which
will allow to try arbitrary GEGL operations. 100% unusable at the
moment.
* app/tools/gimp-tools.c: register it.
* app/dialogs/dialogs.c: register its dialog.
* menus/image-menu.xml.in: add it to the tools menu.
svn path=/trunk/; revision=24799
2008-02-04 Michael Natterer <mitch@gimp.org>
* app/base/gimphistogram.[ch]: add refcounting and replace free()
API by ref() and unref().
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-levels.c
* app/widgets/gimphistogrameditor.c
* tools/pdbgen/pdb/color.pdb: replace calls to
gimp_histogram_free() by gimp_histogram_unref().
* app/pdb/color_cmds.c: regenerated.
* app/widgets/gimphistogramview.c: reference the histograms so we
don't need the widget's users to keep them around while the widget
exists.
* app/tools/gimpcurvestool.[ch]: remove the histogram from the
tool struct and just create one locally to set it on the histogram
view widget.
Unrelated:
* app/tools/gimplevelstool.[ch]
* app/tools/gimpthresholdtool.[ch]: renamed "hist" members to
"histogram" plus some cleanup.
svn path=/trunk/; revision=24792
2008-02-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_add_recent):
use localtime() instead of localtime_r() and don't use %F in
strftime(). Fixes bug #513966.
svn path=/trunk/; revision=24785
2008-02-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimplevelstool.[ch]
* app/tools/gimpcurvestool.[ch]: remove boolean "color" and "alpha"
members from the tool structs and ask the drawable instead when
needed.
svn path=/trunk/; revision=24779
2008-02-04 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpthresholdconfig.[ch]: add "gboolean color"
parameter to gimp_threshold_config_to_cruft() and set the "color"
boolean in the Threshold cruft struct.
* app/tools/gimpthresholdtool.c: don't fiddle with the cruft
struct any longer and pass gimp_drawable_is_rgb() to above
function instead.
svn path=/trunk/; revision=24778
2008-02-02 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimppolygonselecttool.c
(gimp_polygon_select_tool_commit): Only create a selection from
the polygon if there are 3 or more vertices.
svn path=/trunk/; revision=24776
2008-02-02 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimppolygonselecttool.c
(gimp_polygon_select_tool_oper_update): Don't hide the pending
point line if we are grabbing the first point.
(gimp_polygon_select_tool_motion): Also update the pending point
if we are moving the first point.
svn path=/trunk/; revision=24775
2008-02-02 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimppolygonselecttool.c
(gimp_polygon_select_tool_remove_last): Properly halt the tool
when there are no vertices left.
svn path=/trunk/; revision=24774
2008-02-02 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimppolygonselecttool.c
(gimp_polygon_select_tool_commit): Add a call to
gimp_image_flush() so that the undo state gets updated.
svn path=/trunk/; revision=24773
2008-02-01 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h
* app/gegl/gegl-types.h: have app/gegl know app/core's namespace.
* app/gegl/gimpoperationcurves.h: remove temp hack includes.
* app/gegl/gimpoperationcurves.c: include "core/gimpcurve.h"
* app/gegl/gimpbrightnesscontrastconfig.[ch]
* app/gegl/gimpcolorbalanceconfig.[ch]
* app/gegl/gimpcolorizeconfig.[ch]
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimphuesaturationconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]
* app/gegl/gimpoperationcurves.[ch]
* app/gegl/gimpposterizeconfig.[ch]
* app/gegl/gimpthresholdconfig.[ch]: derive from GimpViewable, install
properties using the GimpConfig macros, add implementations of
GimpConfigInterface::equal() and ::copy() where needed.
* app/tools/gimpimagemaptool.[ch]: add prototype of a menu of
recently used settings so the same color correction can easily be
applied to many images.
svn path=/trunk/; revision=24770
2008-01-30 Martin Nordholts <martinn@svn.gnome.org>
Added a Polygon Select Tool which is a primitive selection tool
based on Free Hand Select. Code filtered through David Gowers who
also made the tool icon. This version of the tool is a for-now
solution to bug #119646.
* app/tools/gimppolygonselecttool.[ch]: The new tool.
* app/tools/gimp-tools.c: Add the tool.
* app/tools/Makefile.am: Add tool source.
* app/widgets/gimphelp-ids.h: Add help id for the tool.
* libgimpwidgets/gimpstock.[ch]: Setup for the new tool icon.
* menus/image-menu.xml.in: Add action entry for the tool.
* themes/Default/images/tools/stock-tool-polygon-select-{16,24}.png:
Tool icon graphics.
* themes/Default/images/Makefile.am: Add tool icon graphics.
svn path=/trunk/; revision=24753
2008-01-30 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.[ch]: add "GObject **config" return
value to GimpImageMapTool::get_operation() and memory-manage the
config object here.
Add default implementation of GimpImageMapTool::reset() which
calls gimp_config_reset() on the config object.
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c: return the config object in
get_operation() and don't unref it in finalize().
Connect to the config object's "notify" signal and update the GUI
in the callback. Also call gimp_image_map_tool_preview() there.
Removed all other GUI update functions and all calls to preview().
Removed reset() implementations which only called
gimp_config_reset().
svn path=/trunk/; revision=24752
2008-01-28 Michael Natterer <mitch@gimp.org>
* app/gegl/gegl-types.h
* app/gegl/Makefile.am
* app/gegl/gimpbrightnesscontrastconfig.[ch]: new config object.
* app/tools/gimpbrightnesscontrasttool.[ch]: use it.
svn path=/trunk/; revision=24735
2008-01-27 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpcolorbalanceconfig.[ch]
* app/gegl/gimpcolorizeconfig.[ch]
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimphuesaturationconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]
* app/gegl/gimpposterizeconfig.[ch]
* app/gegl/gimpthresholdconfig.[ch]: implement the GimpConfig
interface and remove public reset() functions except special ones
which reset only parts of the objects. Add lots of property
notifications.
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c: use gimp_config_reset(), misc.
related changes and cleanups.
svn path=/trunk/; revision=24724
2008-01-25 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]: add load_cruft() and
save_cruft() functions which load/save the old (current) curves
and levels file formats.
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c: use them here and remove a lot of
includes.
svn path=/trunk/; revision=24708
2008-01-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimphuesaturationtool.[ch]: removed the GimpHueRange
member from the tool struct and use the one from the config object
instead. Also did a global s/partition/range/.
svn path=/trunk/; revision=24707
2008-01-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcurvestool.[ch]
* app/tools/gimplevelstool.[ch]: remove the "channel" member from
the tool struct and use the channel from the options object
instead.
svn path=/trunk/; revision=24705
2008-01-24 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpcolorbalanceconfig.[ch]: new config object.
* app/gegl/gimpoperationcolorbalance.[ch]: use it.
* app/tools/gimpcolorbalancetool.[ch]: port to
GimpColorBalanceConfig and use the old ColorBalance cruft only in
map(). The effect of the GEGL operator is now even more different
from the cruft code because I removed a hack that was applying an
additional factor when mapping between the ColorBalance values and
the new properties, but that was only a workaround to make it look
more similar anyway. Will have to fix this properly.
* app/base/color-balance.[ch]: remove API that is now obsolete.
svn path=/trunk/; revision=24701
2008-01-23 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleselecttool.c
(gimp_rect_select_tool_execute): Reset the automatic undo/redo
mechanism so that commiting pending rectangles with Return
works (bug #511599).
svn path=/trunk/; revision=24696
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/tools/gimphuesaturationtool.c: change signature of widget
callbacks to take a GimpHueSaturationTool pointer instead of
"gpointer data".
* app/tools/gimpposterizetool.c: remove redundant GTK_ADJUSTMENT()
casts.
svn path=/trunk/; revision=24691
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.h: don't #include <gegl.h>
* app/actions/tools-commands.c
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimp-tools.c: include it here. Whenever the build
breaks because of some GEGL change in GIMP, please inlcude
<gegl.h> instead of <glib-object.h> or before <gtk/gtk.h> in the
affected .c files.
svn path=/trunk/; revision=24685
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimpoperationcurves.[ch]: add curves operation and its
config object. Hack around badly to be able to use GimpCurve from
app/core.
* app/gegl/gimp-gegl.c: register the curves operation.
* app/tools/gimpcurvestool.[ch]: added get_operation() implemenetation
and use the new config object instead of keeping around 5 curves.
svn path=/trunk/; revision=24683
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationlevels.[ch]
(gimp_operation_levels_map_input): new utility function which maps
a single value.
* app/tools/gimplevelstool.[ch] (levels_update_adjustments): use the
new function to create the input arrays for gimp_color_bar_set_buffer().
Removed the Levels struct from the GimpLevelsTool struct and only
use it in map() when needed.
* app/base/levels.[ch]: remove obsolete API and struct members.
svn path=/trunk/; revision=24682
2008-01-22 Sven Neumann <sven@gimp.org>
* app/paint/gimpbrushcore.c (gimp_brush_core_create_bound_segs):
dilate the brush mask in order to obtain a simpler boundary.
Addresses bug #304798.
* app/tools/gimpbrushtool.c (gimp_brush_tool_draw_brush):
removed
redundant casts.
svn path=/trunk/; revision=24676
2008-01-22 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added new function gimp_use_gegl().
* app/core/gimpdrawable-desaturate.c
* app/core/gimpdrawable-levels.c
* app/core/gimpdrawable-invert.c
* app/tools/gimpimagemaptool.c
* app/pdb/color_cmds.c
* tools/pdbgen/pdb/color.pdb: use it instead of accessing the
GimpCoreConfig struct directly.
svn path=/trunk/; revision=24668