2006-01-14 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.[ch] (gimp_config_connect_full):
variant of gimp_config_connect() which allows the connected
objects to have different propertynames.
* app/widgets/widgets-enums.[ch]: removed enum GimpViewType...
* app/core/core-enums.[ch]: ...and added it here.
* app/widgets/gimpviewablebutton.[ch] (gimp_viewable_button_new):
added "button_preview_size" parameter so the button and popup
preview sizes can be specified separately.
* app/widgets/gimptemplateeditor.c: changed accordingly.
* app/widgets/gimpviewablebox.[ch] (gimp_prop_*_box_new):
new functions which take additional "view_type_prop" and
"view_size_prop" parameters and sync the passed context's
properties with the resp. properties of the viewable button.
* app/paint/gimppaintoptions.[ch]
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.[ch]: added view-type and view-size
properties to the options objects and use the new viewable box
constructors so the selected view types and sizes are persistant
across sessions. Fixes bug #315443.
2005-12-16 Sven Neumann <sven@gimp.org>
* app/paint/paint-enums.[ch]: changed description of
GIMP_CLONE_ALIGN_NO enum value.
* app/tools/gimpclonetool.c (gimp_clone_options_gui): use a combo
box for the align mode.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_options_gui): moved the
"Sample merged" toggle below the "Image source" radio button.
Also fixed capitalization of "Sample merged".
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_options_gui): moved the
"Sample Merged" toggle below the "Image Source" radio button.
2005-08-29 Michael Natterer <mitch@gimp.org>
The previous commit added tons of code just to completely break
clone align behavior. Reverted lots of the changes and do the
sample-merged stuff at the innermost place (gimp_clone_motion).
This change also enables changing sample-merged between paint
strokes.
* app/paint/gimpclone.[ch] (struct GimpClone): changed member
"src_pickable" back to "src_drawable".
(gimp_clone_paint): completely reverted.
(gimp_clone_motion): do the drawable/projection -> pickable
stuff and drawable offset handling here.
Fixed signal handling to connect to the drawable's "removed"
signal (not "disconnect", eek). Disconnect from the signal once
the drawable has been removed.
* app/tools/gimpclonetool.c: changed accordingly.
2005-08-28 Michael Natterer <mitch@gimp.org>
Immplement "Sample Merged" for the clone tool. Fixes bug #123627.
* app/paint/gimppaintcore.[ch] (struct GimpPaintCore): added
members "saved_proj_tiles" which stores the unmodified projection,
"orig_proj_buf" which stores the unmodified temp paint application
buf and "use_saved_proj" which controls if all the additional
stuff should be allocated and managed.
(gimp_paint_core_start): allocate the saved_proj_tiles if needed.
(gimp_paint_core_get_orig_proj): new function like
gimp_paint_core_get_orig_image() which returns unmodified
projection pixels for paint application.
(gimp_paint_core_validate_saved_proj_tiles): new function like
gimp_paint_core_validate_undo_tiles() which copies the tiles that
will be dirtied to saved_proj_tiles.
(gimp_paint_core_paste): call above save_proj_tiles() so
projection tiles are saved before dirtying them.
* app/paint/gimpclone.[ch]: replaced member src_drawable by
src_pickable and use the image's projection if sample_merged it
TRUE. Adjust src offsets accordingly and use GimpPaintCore's new
get_orig_proj() API to get the src pixels.
* app/paint/gimpcloneoptions.[ch]: added boolean "sample_merged"
property.
* app/tools/gimpclonetool.c: follow GimpClone's src_drawable ->
src_pickable change.
(gimp_clone_tool_button_press): set the paint_core's
"use_saved_proj" boolean before chaining up.
(gimp_clone_options_gui): add a "Sample Merged" toggle button.
2005-03-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimptoolcontrol.[ch]: in the spirit of the fix for bug
#165618 below, allow tools to specify up to two "object actions"
(actions which select brushes, patterns, ...).
* app/tools/gimpblendtool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimppainttool.c
* app/tools/gimptexttool.c: set actions where appropriate.
* app/actions/actions.c (action_select_object): allow objects to
be selected by index.
* app/actions/context-actions.c: added actions which select
objects by index. Not really used but the same actions can be used
to generically pass any GimpActionSelectType enum value to the
action callbacks.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: added actions and callbacks
for the new generic tool objects.
Also fixed and cleaned up the new generic tool value code.
2004-06-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_tool_button_release):
removed again (tools must not draw outside GimpDrawTool::draw()).
(gimp_clone_tool_draw): removed check for gimp_draw_tool_is_active()
because the draw function would not be called if the draw tool was
inactive. Simplified check for whether or not to draw the src
location.
* app/tools/gimppainttool.c (gimp_paint_tool_button_release):
pause/resume the draw tool across all button_release actions so
tools (clone) have a chance to draw different things depending on
gimp_tool_control_is_active(tool->control). Fixes bug #145022.
2004-06-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_tool_draw): chain up
unconditionally now that we draw the brush outline while
painting. Fixes brush outline artefacts on button_press and
button_release. Spotted by sjburges.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.[ch]: removed PRETRACE_PAINT and
POSTTRACE_PAINT from the GimpPaintCoreState enum. Removed
"gboolean traces_on_window" from GimpPaintCoreClass.
* app/paint/gimpclone.[ch]
* app/paint/gimpink.c
* app/tools/gimpclonetool.c: changed accordingly.
* app/tools/gimppainttool.c: ditto. Show the brush outline
while painting. Fixes bug #118348.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: remember the last used
GimpCursorFormat so changing the format in prefs applies
instantly, and not after the next tool change.
* app/display/gimpdisplayshell-cursor.[ch]
* app/tools/gimptool.[ch]
* app/tools/gimptoolcontrol.[ch]
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c: s/GdkCursorType/GimpCursorType/g
2004-06-05 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-none.png
* cursors/xbm/cursor-none.xbm: new empty cursor images.
* app/config/gimpdisplayconfig.[ch]
* app/config/gimprc-blurbs.h
* app/widgets/widgets-enums.h
* app/widgets/gimpcursor.c
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimppainttool.[ch]
* app/tools/gimpinktool.c
* app/gui/preferences-dialog.c: applied patches from Philip
Lafleur which implement hiding the cursor completely for paint
tools. Changed the name of the config option from
"hide-paint-tool-cursor" to "show-paint-tool-cursor" and default
to TRUE because this needs the brush outline being visible while
painting to be really usable. Fixes bug #132163.
* app/widgets/widgets-enums.h: renamed all GimpCursorType and
GimpToolCursorType enum values to GIMP_CURSOR_* and
GIMP_TOOL_CURSOR_*.
* app/widgets/gimpcursor.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimp*tool.c; changed accordingly.
2004-04-29 Michael Natterer <mitch@gimp.org>
* app/tools/gimp*tool.c (gimp_*_tool_register): stripped the menu
paths from the "menu_path". Will be renamed to "action_name" or
something soon...
* plug-ins/dbbrowser/dbbrowser.c
* plug-ins/common/plugindetails.c
* plug-ins/common/uniteditor.c: register under the new
"Extensions" placeholder.
2003-09-03 Sven Neumann <sven@gimp.org>
* app/tools/gimpclonetool.c: Ctrl only sets the clone source when
Shift isn't pressed at the same time (fixes bug #121324).
2003-08-30 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.c: made "tool-info" a G_PARAM_CONSTRUCT_ONLY
property.
* app/tools/tool_manager.c (tool_manager_tool_changed): pass it to
g_object_new() instead of setting it after tool creation.
* app/tools/gimppainttool.[ch]
* app/tools/gimptransformtool.[ch]: removed ugly
"gboolean notify_connected" hacks and connect to the signals in
GObject::constructor().
* app/tools/gimppainttool.c (gimp_paint_tool_contstructor): create
paint_tool->core here from tool->tool_info->paint_info->paint_type.
* app/tools/gimpairbrushtool.c
* app/tools/gimpclonetool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimppaintbrushtool.c
* app/tools/gimppenciltool.c
* app/tools/gimpsmudgetool.c: changed accordingly. Removed lots of
useless class_init functions. Converted tabs to spaces. Cleanup.
2003-06-28 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.h: removed enum GimpContextPropType and
enum GimpContextPropMask.
* app/core/core-enums.[ch]: added them here.
* app/core/gimptoolinfo.[ch]: replaced "gboolean tool_context"
member by "GimpContextPropMask context_props" so each tool can
specify exactly which context properties it wants to have
persistently remembered.
* app/tools/tools-types.h: changed typedef GimpToolRegisterCallback
accordingly.
* app/tools/tool_manager.[ch] (tool_manager_register_tool): ditto.
Removed the "global_tool_context" and initialize all tool info
objects from the user_context after creation. Removed the
PAINT_OPTIONS_MASK #define and use the new context_props stored in
tool_info insted.
* app/tools/gimppainttool.h: #define the common properties of the
paint tools as GIMP_PAINT_TOOL_OPTIONS_MASK (which is OPACITY |
PAINT_MODE | BRUSH).
* app/tools/[all tools].c (gimp_*_tool_register): replaced the
"use_context" boolean by the actual mask of context properties the
tools need.
2003-03-25 Sven Neumann <sven@gimp.org>
* Makefile.am
* gimpintl.h: removed this header file.
* gimpmiscui.c: include libgimp-intl.h.
* gimp.c (gimp_main): call setlocale() and bind to the libgimp
textdomain so that plug-ins don't need to do that explicitely.
* libgimp/stdplugins-intl.h: added the functionality that used to
live in gimpintl.h and removed the libgimp related stuff. Got rid
of the INIT_I18N_UI() macro.
* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
Plug-ins simply call INIT_I18N() once in their run() function.
* plug-ins/script-fu/script-fu-intl.h: added the functionality
that used to live in gimpintl.h and removed the libgimp related
stuff.
* app/Makefile.am
* app/gimp-intl.h: new file that defines the gettext macros for
the GIMP core.
* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.
* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
2003-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: simplified everything a lot by
merging the public GimpContextPropType enum with the internal
anonymous object property id enum. Removed the internal copy_prop
functions and handle property copying in a big switch() in
gimp_context_copy_property(). Removed the separate signal
connections for each property of the parent context and do the
same using a single "notify" handler. Emit "notify" signals all
over the place. Removed internal arrays which are no longer
needed due to enum merge and copy_property simplification.
Removed the array of signal names and use g_signal_name().
Removed gimp_context_unset_parent() and allow "parent" being NULL
in gimp_context_set_parent().
* app/tools/tool_manager.c
* app/widgets/gimpdevices.c: changed accordingly.
* libgimptool/gimptooltypes.h: changed GimpToolOptionsGUIFunc to
return a GtkWidget (the created tool options widget).
* libgimptool/gimptoolmodule.c: #include <gtk/gtk.h>
* app/tools/tool_options.[ch]: removed the "main_vbox" from the
GimpToolOptions struct. Changed gimp_tool_options_gui() to create
and return the main_vbox.
* app/tools/tool_manager.c: create the "This Tool has no Options"
label here if NULL was passed as "options_gui_func". Attach the
options widget to the tool_options object using
g_object_set_data().
* app/gui/tool-options-dialog.c: changed accordingly.
* app/tools/gimpairbrushtool.c
* app/tools/gimpblendoptions.[ch]
* app/tools/gimpbucketfilloptions.[ch]
* app/tools/gimpclonetool.c
* app/tools/gimpcolorpickeroptions.[ch]
* app/tools/gimpconvolvetool.c
* app/tools/gimpcropoptions.[ch]
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpflipoptions.[ch]
* app/tools/gimpinkoptions.[ch]
* app/tools/gimpmagnifyoptions.[ch]
* app/tools/gimpmeasureoptions.[ch]
* app/tools/gimpmoveoptions.[ch]
* app/tools/gimpselectionoptions.[ch]
* app/tools/gimpsmudgetool.c
* app/tools/gimptextoptions.[ch]
* app/tools/gimptransformoptions.[ch]
* app/tools/gimpvectoroptions.[ch]
* app/tools/paint_options.[ch]: return the options vbox from
all tool_options_gui functions.
2002-11-27 Michael Natterer <mitch@gimp.org>
* app/paint/gimpairbrush.[ch]
* app/paint/gimpclone.[ch]
* app/paint/gimpconvolve.[ch]
* app/paint/gimpdodgeburn.[ch]
* app/paint/gimperaser.[ch]
* app/paint/gimppaintoptions.[ch]
* app/paint/gimpsmudge.[ch]: it's hard to paint without a context
to get color, brush etc. from. Added "context" parameters to
all paint options constructors.
* tools/pdbgen/pdb/paint_tools.pdb: pass gimp_get_current_context()
to the constructors. Fixes bug #99557.
* app/pdb/paint_tools_cmds.c: regenerated.
* app/tools/gimpairbrushtool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpinktool.c
* app/tools/gimpsmudgetool.c: changed accordingly.
* app/tools/paint_options.c: ditto. Don't set
paint_options->context here because we also need it in the
no-interface case above.
2002-09-02 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_tool_draw): manually add
the src_drawable's offsets instead of implicitly using the
offsets of the active_drawable (fixes#92311).
2002-05-03 Sven Neumann <sven@gimp.org>
* app/tools/gimpairbrushtool.[ch]
* app/tools/gimpbezierselecttool.[ch]
* app/tools/gimpblendtool.[ch]
* app/tools/gimpbrightnesscontrasttool.[ch]
* app/tools/gimpbucketfilltool[.ch]
* app/tools/gimpbycolorselecttool[.ch]
* app/tools/gimpclonetool[.ch]
* app/tools/gimpcolorbalancetool[.ch]
* app/tools/gimpcolorpickertool[.ch]
* app/tools/gimpconvolvetool[.ch]
* app/tools/gimpcroptool[.ch]
* app/tools/gimpcurvestool[.ch]
* app/tools/gimpdodgeburntool[.ch]
* app/tools/gimpeditselectiontool.c
* app/tools/gimpellipseselecttool[.ch]
* app/tools/gimperasertool[.ch]
* app/tools/gimpfliptool[.ch]
* app/tools/gimpfreeselecttool[.ch]
* app/tools/gimpfuzzyselecttool[.ch]
* app/tools/gimphistogramtool[.ch]
* app/tools/gimphuesaturationtool[.ch]
* app/tools/gimpinktool[.ch]
* app/tools/gimpiscissorstool[.ch]
* app/tools/gimplevelstool[.ch]
* app/tools/gimpmagnifytool[.ch]
* app/tools/gimpmeasuretool[.ch]
* app/tools/gimpmovetool[.ch]
* app/tools/gimppaintbrushtool[.ch]
* app/tools/gimppainttool.c
* app/tools/gimppathtool[.ch]
* app/tools/gimppenciltool[.ch]
* app/tools/gimpperspectivetool[.ch]
* app/tools/gimpposterizetool[.ch]
* app/tools/gimprectselecttool[.ch]
* app/tools/gimprotatetool[.ch]
* app/tools/gimpscaletool[.ch]
* app/tools/gimpselectiontool.c
* app/tools/gimpsheartool[.ch]
* app/tools/gimpsmudgetool[.ch]
* app/tools/gimptexttool[.ch]
* app/tools/gimpthresholdtool[.ch]
* app/tools/gimptool.c
* app/tools/gimptoolcontrol.h
* app/tools/gimptoolmodule[.ch]
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool[.ch]
* app/tools/path_tool.c
* app/tools/tool_manager[.ch]
* app/tools/tools.c
* libgimptool/gimptool.c
* libgimptool/gimptoolcontrol.h
* libgimptool/gimptoolmodule.h: removed tons of warnings. Do we need
to add -Werror to the CFLAGS to avoid such a mess in the future ?!
Also had to enforce the GIMP coding style in lots of places :-(
* libgimp/gimppixelrgn.c: got sick and tired of debugging plug-ins,
so I've added checks for most parameters passed to the GimpPixelRgn
functions. This will slow down plug-in execution a little bit but
should help to find bugs early.
2002-03-19 Sven Neumann <sven@gimp.org>
* app/base/Makefile.am
* app/base/base-enums.c
* app/core/Makefile.am
* app/core/core-enums.c
* app/widgets/Makefile.am
* app/widgets/widgets-enums.c: purely cosmetic change.
* app/paint/Makefile.am
* app/paint/paint-enums.[ch]: generate paint-enums.c with registered
enums. Skip GIMP_BRUSH_PRESSURE and GIMP_CUSTOM_CONVOLVE so they
don't get exported to libgimp and are not registered as enum values.
* tools/pdbgen/pdb/paint_tools.pdb: removed special casing of
GimpBrushApplicationMode and GimpConvolveType since the forbidden
values are now skipped anyway.
* libgimp/gimpcompat.h: removed compat defines for the forbidden
enum values. They shouldn't have been used.
* app/tools/Makefile.am
* app/tools/tools-enums.[ch]: generate tools-enums.c with registered
enums.
* libgimp/gimpenums.h
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
* app/paint/gimpclone.[ch]
* app/paint/gimpconvolve.h
* app/paint/gimpdodgeburn.h
* app/tools/gimpclonetool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpcroptool.[ch]
* app/tools/gimpdodgeburntool.c
* app/tools/paint_options.c: changed accordingly. Added more enum
radio frames and enum option menus.