by letting the histogram view always draw the background and the outer
borders. Also fix a lot of off-by-one problems in the curve view which
occur due to the 0.5,0.5 offset of cairo line drawing.
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2008-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo-aux.c
(gimp_session_info_aux_new_from_props): plugged memory leak.
2008-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c
(gimp_histogram_view_set_background): fixed refcounting issue.
This plugs the memory leak I tried to fix in
GimpHistogramEditor.
svn path=/trunk/; revision=26271
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
2007-11-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: add read-only property "frozen" and
new API gimp_viewable_preview_is_fozen(). Emit property notifications.
* app/widgets/gimphistogramview.[ch]: add API to show a second
histogram in the background. Remove member "light_histogram" from
the GimpHistogramViewClass struct.
* app/widgets/gimpcurveview.c: don't set "light_histogram".
* app/tools/gimpcurvestool.c: set the background histogram instead.
* app/widgets/gimphistogrameditor.[ch]: connect to "notify::frozen"
of the drawable and show its histogram at the freezing point in
the background. This way the original histogram is visible while
we are doing color corrections.
svn path=/trunk/; revision=24158
2007-11-04 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcurveview.[ch]: new GimpHistogramView subclass
which does all the curve stuff.
* app/widgets/gimphistorgramview.[ch]: removed all curve code again.
* app/tools/gimpcurvestool.c: changed accordingly.
svn path=/trunk/; revision=24051
2007-11-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.[ch]: added API to set the
selected point.
* app/tools/gimpcurvestool.c: use it.
svn path=/trunk/; revision=24046
2007-11-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: added API to modify free-form curves
and properties to listen to curve changes.
* app/widgets/gimphistogramview.[ch]: added everything that's
needed for rendering a curve with all its color and cursor
indicators on top of a histogram. This code will move to a
subclass soon.
* app/tools/gimpcurvestool.[ch]: removed all curve rendering here.
Also removed all explicit updating by connecting to curve signals
and updating in the callback.
svn path=/trunk/; revision=24045
2007-08-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c
(gimp_histogram_view_draw_spike):
pass the maximum value double and draw the histogram one pixel
less
high. Fixes bug #465669.
svn path=/trunk/; revision=23208
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2004-07-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_expose):
fixed a drawing bug I introduced earlier today.
2004-07-06 Sven Neumann <sven@gimp.org>
Added an RGB histogram based on a patch by Tor Lillqvist. Fixes
bug #145401.
* app/base/base-enums.[ch]: added GIMP_HISTOGRAM_RGB, don't export
it to the PDB.
* app/base/gimphistogram.c: implemented histogram functions for
the RGB mode.
* app/base/levels.c
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/widgets/gimpcolorbar.c
* app/widgets/gimphistogrameditor.c: handle the new enum value.
* app/widgets/gimphistogramview.c: for GIMP_HISTOGRAM_RGB mode,
draw a histogram that shows the RGB channels simultaneously
2004-02-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_button_press):
ignore double clicks so we don't grab the pointer away from the
curves dialog. Fixes bug #132356.
* app/tools/gimpcurvestool.c (curves_graph_events): ignore button
press and release events from all buttons except the first one.
2004-01-26 Sven Neumann <sven@gimp.org>
* app/tools/gimpcurvestool.c
* app/widgets/gimphistogramview.c: use dark_gc instead of
text_aa_gc to draw the histogram and curves grid lines. dark_gc is
slightly lighter, looks better and fixes bug #132565.
2004-01-13 Michael Natterer <mitch@gimp.org>
* app/base/gimphistogram.c: added GimpHistogramChannel index
fiddling hacks for GRAYA images to all gimp_histogram_get_*()
functions. The public API now does what their enum values pretend
to do.
(gimp_histogram_calculate): restructured to reduce indentation depth.
* app/widgets/gimphistogrameditor.c
* app/widgets/gimphistogramview.c
* tools/pdbgen/pdb/color.pdb: removed hacks here and always use
the unchanged enum values.
* app/pdb/color_cmds.c: regenerated.
2004-01-13 Michael Natterer <mitch@gimp.org>
* app/base/gimphistogram.[ch]: renamed gimp_histogram_nchannels()
to gimp_histogram_n_channels().
* app/core/gimpdrawable-histogram.c: removed silly double negation
logic. Cleanup.
* app/widgets/gimphistogrameditor.c
* app/widgets/gimphistogramview.c: adjust the GimpHistogramChannel
for GRAYA images to make sure we pick alpha from the right slot.
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c: removed the same hack here and call
gimp_histogram_view_set_channel() with the correct enum value.
* tools/pdbgen/pdb/color.pdb (levels, curves, histogram): fiddle
with enum values here too so GRAY* drawables produce the correct
results.
Fixed precondition checks and set "success" in a uniform way all
over the place.
Use gimp_drawable_calculate_histogram() instead of duplicating its
code here.
(started with a patch from Pedro Gimeno. Fixes bug #109078)
* app/pdb/color_cmds.c: regenerated.
2003-12-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_expose):
render the selection in "light" histograms correctly (unused and
untested).
2003-12-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.[ch]: draw the selection in
GTK_STATE_SELECTED's colors, not inverted. Fixed selection
rendering to snap to value boundaries.
2003-12-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.[ch]: added a hack that allows to
render the histogram in a brighter color. Fixed initial range for
views that are not selectable.
* app/tools/gimpcurvestool.[ch]: replaced the GtkDrawingArea by a
bright GimpHistogramView and render the curves tool controls on
top of the histogram. Fixes bug #71633.
2003-12-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.[ch]: added properties "border-width"
and "subdivisions". Fixed rendering (it off-by-one worked just
accidentially because border-width was hardcoded to 1).
* app/widgets/gimphistogrambox.c: use the histogram view's border
width for the color area below the histogram. Conect to the right
signal to update the area. Added (#ifdef DEBUG_VIEW) debugging
spinbuttons to change the histogram view's new properties on the
fly.
2003-12-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.[ch]: applied (modified) patch
from Ed Halley which adds "quintile marks". Fixes bug #129050.
Render the histogram on a base_gc background and use text_gc and
text_aa_gc for rendering the histogram and the helper lines.
Fixed rendering of the 1px border around the histogram. Removed
separate drawing of baseline, left and right helper lines and draw
a rectangle which marks the entire area of possible values. Fixed
size_request calculation. Added missing getters. Cleanup.
* app/tools/gimpcurvestool.c: use the same color scheme as the
histogram.
* app/tools/gimpcurvestool.c (curves_load,save_callback)
* app/tools/gimplevelstool.c (levels_load,save_callback):
gtk_window_present() the file dialog if it is already visible.
2003-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.[ch]: removed width and height
from the API. It can be set using gtk_widget_size_request(). Set a
mimimum height of 80 pixels.
* app/widgets/gimphistogrambox.c: changed accordinly. Reduced size
of color gradient.
* app/tools/gimpcurvestool.c: reduced gradient sizes.
* app/tools/gimplevelstool.c: allow the histogram to expand
vertically.
2003-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_expose): if
multiple histogram values fall onto the same pixel, display the
maximum value.
2003-11-01 Sven Neumann <sven@gimp.org>
Replaced the histogram tool by a histogram dialog:
* themes/Default/images/Makefile.am
* themes/Default/images/tools/stock-tool-histogram-[16|22].png:
removed here ...
* themes/Default/images/stock-histogram-[16|22].png: ,,, and added
under these new names.
* libgimpwidgets/gimpstock.[ch]: register the icons as
GIMP_STOCK_HISTOGRAM and removed the histogram tool stock icons.
* app/base/gimphistogram.c: don't crash when uncalculated values
are requested from a GimpHistogram. Allow to reset the histogram
by calling gimp_histogram_calculate() with a NULL region.
* app/widgets/gimphistogrambox.[ch]: renamed the GimpHistogramView
struct member to "view".
* app/tools/gimpthresholdtool.c: changed accordingly.
* app/widgets/gimphistogramview.[ch] (gimp_histogram_view_events):
return TRUE when events were handled.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimphistogramtool.[ch]: removed the histogram tool.
* app/widgets/Makefile.am
* app/widgets/gimphelp-ids.h
* app/widgets/widgets-types.h
* app/widgets/gimphistogrameditor.[ch]: added GimpHistogramEditor.
Has some rough edges still...
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c
* app/gui/image-menu.c: register the new dialog instead of the
histogram tool.
2003-10-24 Sven Neumann <sven@gimp.org>
* app/tools/Makefile.am
* app/tools/gimphistogramoptions.[ch]: new tool options class
GimpHistogramOptions, derived from GimpColorOptions.
* app/tools/gimpcoloroptions.c (gimp_color_options_gui): add
gimp_histogram_options_gui() when called with GimpHistogramOptions.
This a bit weird since the class hierarchy is the other way around
but it makes things easier.
* app/tools/gimphistogramtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpthresholdtool.c: use GimpHistogramOptions and
connect the histogram views to the "histogram-scale" property.
Perhaps not perfect GUI-wise but it let's you choose the histogram
scale and stores this setting per tool. Fixes bug #125306.
* app/widgets/gimphistogramview.c: prefixed property names with
"histogram-" so they match the GimpHistogramOptions property.
* app/widgets/gimphistogrambox.c: minor cleanup.
2003-10-24 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-histogram-linear-16.png
* themes/Default/images/stock-histogram-logarithmic-16.png:
added placeholders for new icons.
* libgimpwidgets/gimpstock.[ch]: register the new icons.
* app/tools/gimphistogramtool.c: made the dialog more compact by
using a stock-box for the histogram scale.
* app/widgets/gimphistogramview.c (gimp_histogram_view_expose):
don't invert the histogram view if the full range is selected.
* app/widgets/gimphistogrambox.c: moved the range widgets below
the histogram.
* app/config/gimpconfig-params.h: added macro
GIMP_CONFIG_INSTALL_PROP_RESOLUTION() that installs a double
property with the suitable range.
* app/core/gimptemplate.c
* app/config/gimpdisplayconfig.c: use it here.
2003-01-25 Sven Neumann <sven@gimp.org>
* app/widgets/widgets-enums.h: added a new enum to specify how to
display histograms.
* app/widgets/widgets-enums.c: regenerated.
* app/widgets/gimphistogramview.[ch]: added a scale property and
made channel a property. Added support for linear histograms based
on a patch from Akkana (see bug #72951).
* app/widgets/gimphistogrambox.c: redraw the gradient when the
histogram view notifies it that the displayed channel has changed.
* app/tools/gimphistogramtool.c: added a menu to configure the
histogram scale.
2003-01-05 Manish Singh <yosh@gimp.org>
* many files in app, modules and libgimp*: cleanup, removed unecessary
G_OBJECT() casts. Should do the same for plug-ins, when more of them
get undeprecated.
2002-10-15 Sven Neumann <sven@gimp.org>
* app/base/levels.[ch]: added the API for level correction using
black, gray and white point.
* app/tools/gimpcurvestool.c
* app/tools/gimphistogramtool.c
* app/tools/gimplevelstool.[ch]: misc smaller changes.
* app/widgets/gimphistogrambox.[ch]: allocate the buffer for the
gradient preview on size_allocate, not for every expose event.
* app/widgets/gimphistogramview.c: fixed drawing for width > 256.
* themes/Default/images/stock-color-picker-white-18.png: tweaked.
2002-10-15 Sven Neumann <sven@gimp.org>
* app/tools/gimphistogramtool.c
* app/tools/gimplevelstool.[ch]
* app/tools/gimpthresholdtool.c
* app/widgets/gimphistogrambox.[ch]
* app/widgets/gimphistogramview.[ch]: started to clean up histogram
code. Moved the gradient into the GimpHistogramBox. Draw only in the
expose event handler.
2002-09-07 Michael Natterer <mitch@gimp.org>
Histogram cleanup:
* app/base/gimphistogram.c: Added g_return_if_fail() to all public
functions, reordered stuff, cleanup (no logic changed).
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimphistogrambox.[ch]: new widget containing a
GimpHistogramView and two range spinbuttons (as known from the
threshold tool). Users only need to connect to the histogram
view's "range_changed" signal. The spinbuttons are handled
internally.
* app/widgets/gimphistogramview.[ch]: define it's default size in
the header. Make sure "start" is always smaller than "end". Emit
"range_changed" in gimp_histogram_view_set_range().
* app/tools/gimplevelstool.c: changed accordingly.
* app/tools/gimpthresholdtool.[ch]: removed the code which
did the same and use the new widget.
* app/tools/gimphistogramtool.[ch]: ditto. Removed the "intensity"
info label. Cleanup.