2007-10-22 Sven Neumann <sven@gimp.org>
* app/tools/gimppaintoptions-gui.c: changed aspect ratio of the
wrap-box used for the "Pressure sensitivity" controls to make
them
fit better into the tool-options.
svn path=/trunk/; revision=23910
2007-03-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): "adj"
is a GtkObject not a GtkWidget, also moved it to its local scope.
svn path=/trunk/; revision=22127
2007-03-14 Martin Nordholts <martinn@svn.gnome.org>
Made brushes upscalable by using scale_region. Downscaling still
uses functions in app/base/brush-scale.c (because of better
performance). Parametric brushes of course recalculates masks
instead of using bitmap scaling. Fixes bug #65030.
* app/core/gimpbrush.[ch]: Added a private scale_buf method which
uses scale_region (with GIMP_INTERPOLATION_LINEAR) to scale its
masks and pixmaps. Also added public virtual method scale_size to
GimpBrush (overridden by GimpBrushGenerated) which calculates the
buffer sizes for a given brush scaled with a given scale.
* app/core/gimpbrushgenerated.c: Implemented the new scale_size
method inherited from GimpBrush, and modified
gimp_brush_generated_calc to use this helper function.
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
the brush Scale-slider logarithmic.
* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
Changed Scale scale to [0.0, 10.0].
* app/paint/gimpbrushcore.c:
(gimp_brush_core_calc_brush_size): Refactored 'get brush size' code
to where it belongs, in GimpBrush-classes, and allowed scales
larger than 1.0.
svn path=/trunk/; revision=22113
2007-03-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.c
* app/tools/gimppaintoptions-gui.c
* app/base/brush-scale.[ch]
* app/base/temp-buf.[ch]
* app/paint/gimppaintoptions.c
* app/paint/gimpbrushcore.c: revert last commit. The patch needs
more review and it's easier to start from quare one than have
patches on top of patches.
svn path=/trunk/; revision=22101
2007-03-11 Michael Schumacher <schumaml@cvs.gnome.org>
Made brushes scalable (both up and down) by using existing
scaling routines, and also refactored some brush-code. Patch by
Martin Nordholts. Fixes bug #65030.
* app/paint/gimpbrushcore.c:
(gimp_brush_core_calc_brush_length_scale) Refactored 'get brush
size' code to where it belongs, in GimpBrush-classes, and renamed
gimp_brush_core_calc_brush_size to
gimp_brush_core_calc_brush_length_scale.
* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
Changed Scale scale to [0.0, 100.0].
* app/base/temp-buf.[ch] (mask_buf_new): Change signature to also
take a bpp parameter.
* app/base/brush-scale.[ch]: Changed brush_scale_(mask|pixmap) to
the new brush_scale_buf, which uses existing scaling routines
(scale_region) instead of dedicated down-scaling only routines.
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
the brush Scale-slider logarithmic.
* app/core/gimpbrushgenerated.c: Implemented the new
get_scaled_size method inherited from GimpBrush, and modified
gimp_brush_generated_calc to use this helper function.
* app/core/gimpbrush.[ch]: Added public virtual method
get_scaled_size to GimpBrush, overridden by GimpBrushGenerated,
which calculates the buffer sizes for a given brush scaled with a
given scale. Also changed calls to brush_scale_(mask|pixmap) to
the new brush_scale_buf.
svn path=/trunk/; revision=22099
2006-11-22 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c (action_select_property): add support for
G_TYPE_INT properties.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: add actions and callback which
affect the foreground select tool's stroke-width property.
* app/tools/gimpforegroundselecttool.c: map tool-action-value-2
(tool tip size) to the new action.
* app/tools/gimppaintoptions-gui.c: fixed visibility of the brush
scale slider.
2006-11-16 Michael Natterer <mitch@gimp.org>
Made all brushes scalable from the tool options. So far only
downscaling is supported since we lack an algorithm for bitmap
brush upscaling. Addresses bug #65030.
* app/paint/gimppaintoptions.[ch]: added "brush-scale" property.
* app/paint/gimpbrushcore.[ch]: separate pressure logic from brush
scaling logic and take paint_options->brush_scale into account.
Added gimp_brush_core_create_bound_segs() which returns BoundSegs
of the correctly scaled brush mask for the brush preview on the
canvas.
* app/tools/gimpbrushtool.c: use gimp_brush_core_create_bound_segs()
instead of doing this here (also removes all knowledge about lowlevel
stuff from this file). Connect to notify::brush-scale of the
paint options and invalidate the brush core's brush accordingly.
* app/tools/gimppaintoptions-gui.c: added brush scale slider.
2006-10-21 Michael Natterer <mitch@gimp.org>
Added "Edit -> Fade" which allows to modify the paint mode and
opacity of the last drawable operation (fill, plugins etc.).
Started from a patch by Bill Skaggs. Fixes bug #170707.
* app/base/base-enums.[ch] (enum GimpLayerModeEffects): register
the values REPLACE_MODE, ERASE_MODE and ANTI_ERASE_MODE with
the type system.
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpwidgets-constructors.[ch]: added "gboolean
with_replace_modes" to the paint mode menu constructors.
* app/tools/gimppaintoptions-gui.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimplayertreeview.c: pass with_replace_modes = FALSE.
* app/core/gimpdrawableundo.[ch]: added members which keep tiles,
paint mode and opacity of the pasted pixels.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_get_fadeable):
returns a GimpUndo suitable for a fade operation, or NULL.
* app/core/gimp-edit.[ch] (gimp_edit_fade): implements the actual
fade by undoing the last operation and then re-applying the pixels
with different paint mode and opacity.
* app/core/gimpdrawable-combine.c: store the pasted pixels in
the GimpDrawableUndo.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: action and callback for fade.
* app/dialogs/Makefile.am
* app/dialogs/fade-dialog.[ch]: the fade dialog.
* app/widgets/gimphelp-ids.h: the fade help ID.
* menus/image-menu.xml.in: added a menu entry in "Edit".
2006-10-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_expanding_frame_new() which creates a frame with a
toggle button in the title.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimprectangleoptions.c
* app/tools/gimprectangleselectoptions.c
* app/tools/gimpselectionoptions.c: use it instead of duplicating
this code all over the place.
2006-09-07 Michael Natterer <mitch@gimp.org>
Merged the "soc-2006-perspective-clone" branch. That branch is
now officially closed and all further fixes and changes have to
be applied to HEAD.
Did some minor adjustments, mostly small indentation and spacing
fixes. Derive the tool from GimpBrushTool and renamed the enum
added to paint-enums.h and it values, added stock icon and menu
entry.
Thanks a lot to Pedro Alonso Ferrer!
* app/paint/paint-enums.[ch]: new enum GimpPerspectiveCloneMode.
* app/paint/Makefile.am
* app/paint/gimpperspectiveclone.[ch]
* app/paint/gimpperspectivecloneoptions.[ch]: the perspective
clone core and its options.
* app/paint/gimp-paint.c: register it.
* app/tools/Makefile.am
* app/tools/gimpperspectiveclonetool.[ch]: the perspective clone tool.
* app/tools/gimp-tools.c: register it.
* app/tools/gimppaintoptions-gui.c: show the widgets that are used
by perspective clone.
* app/widgets/gimphelp-ids.h: the help ID.
* themes/Default/images/Makefile.am
* themes/Default/images/tools/stock-tool-perspective-clone-16.png
* themes/Default/images/tools/stock-tool-perspective-clone-22.png
* libgimpwidgets/gimpstock.[ch]: its stock ID and icons.
* menus/image-menu.xml.in: added it to the menu.
2006-09-02 Michael Natterer <mitch@gimp.org>
Merged the "soc-2006-healing-brush" branch. That branch is now
officially closed and all further fixes and changes have to be
applied to HEAD.
Did some minor adjustments, mostly small indentation and spacing
fixes. Derive the tool from the newly introduced GimpBrushTool
which did not exist when the branch was created.
Thanks a lot to Kevin Sookocheff for this nice contribution!
* app/paint/paint-enums.[ch]: new enum GimpHealAlignMode.
* app/paint/Makefile.am
* app/paint/makefile.msc
* app/paint/gimpheal.[ch]
* app/paint/gimphealoptions.[ch]: the heal core and its options.
* app/paint/gimp-paint.c: register the heal core.
* app/tools/Makefile.am
* app/tools/makefile.msc
* app/tools/gimphealtool.[ch]: the heal tool.
* app/tools/gimp-tools.c: register the heal tool.
* app/tools/gimppaintoptions-gui.c: show the widgets that are used
by heal.
* app/widgets/gimphelp-ids.h: the heal help ID.
* tools/pdbgen/stddefs.pdb
* tools/pdbgen/pdb/paint_tools.pdb: the heal PDB wrappers.
* app/widgets/widgets-enums.h
* app/widgets/gimpcursor.c
* cursors/Makefile.am
* cursors/makefile.msc
* cursors/tool-heal.png
* cursors/xbm/tool-heal.xbm
* cursors/xbm/tool-heal-mask.xbm: a new cursor for the heal tool.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/makefile.msc
* themes/Default/images/tools/stock-tool-heal-16.png
* themes/Default/images/tools/stock-tool-heal-22.png: new stock
icons for the heal tool.
* app/pdb/internal_procs.c
* app/pdb/paint_tools_cmds.c
* libgimp/gimppainttools_pdb.[ch]: regenerated.
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.
* gimp/app/paint/gimpbrushcore.c
* gimp/app/paint/gimpbrushcore.h
* gimp/app/paint/gimpclone.c
* gimp/app/paint/gimppaintbrush.c
* gimp/app/paint/gimppaintoptions.c
* gimp/app/paint/gimppaintoptions.h
* gimp/app/tools/gimppaintoptions-gui.c: Apply patch from
Adrian Likins to add "jitter" to paint tools (bug #163049),
with small fixes for coding style and default jitter set
to 0.2 instead of 0.0.
2005-07-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui):
swapped the opacity scale and the paint mode menu to be consistent
with the layers dialog. Also makes the paint options look more
balanced.
2005-03-08 Sven Neumann <sven@gimp.org>
* app/tools/gimppaintoptions-gui.c (fade_options_gui)
(gradient_options_gui)
* app/tools/gimpselectionoptions.c (gimp_selection_options_gui):
call gimp_unit_menu_set_pixel_digits() after connecting up the
spinbuttons and the unitmenu. Fixes initial display (bug #169066).
2005-01-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added gimp_prop_expander_new().
* app/paint/gimppaintoptions.[ch]: added a property to track the
state of the "Pressure sensitivity" expander.
* app/tools/gimppaintoptions-gui.c: use gimp_prop_expander_new()
to create the "Pressure sensitivity" expander.
2005-01-16 Sven Neumann <sven@gimp.org>
* app/tools/gimppaintoptions-gui.c (pressure_options_gui): added a
toggle to control whether pressure affects opacity of the Airbrush
tool (bug #164237).
2005-01-03 Michael Natterer <mitch@gimp.org>
* app/paint/gimpbrushcore.c
* app/paint/gimppaintoptions.[ch]
* app/tools/gimppaintoptions-gui.c: renamed "invsize" to
"inverse-size" and reordered it to be after "size".
* app/paint/gimpbrushcore.c
* app/paint/gimppaintoptions.c
* app/paint/gimppaintoptions.h
* app/tools/gimppaintoptions-gui.c: reverted last change, and
applied full patch from Dave Ahlswede in bug #149576.
2004-11-26 Sven Neumann <sven@gimp.org>
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): only
show the Incremental toggle for tools that use it (bug #159306).
2004-11-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added new function
gimp_toggle_button_set_visible() which can be used as "toggled"
callback on a GtkToggleButton and sets a widget (in)visible
according to the toggle's "active" state.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimpselectionoptions.c: use it to hide (rather than
just insensitize) the seldomly used "Feather edges", "Autoshrink
selection", "Adaptive supersampling", "Fade out" and "Use color
from gradient" widgets when their enabling toggle is unchecked.
Makes the affected tool options much less crowded and noisy in
their default appearance. Fixes bug #159008.
2004-10-15 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformoptions.c: removed the "Density" label.
It wasn't helpful and caused the transform options to be wider than
necessary.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptransformoptions.c: let combo boxes expand
horizontally like we do in other (all ?) dialogs.
* app/widgets/gimptemplateeditor.c
(gimp_template_editor_aspect_callback): update the pixel size label.
2004-10-11 Michael Natterer <mitch@gimp.org>
* app/tools/gimptooloptions-gui.[ch]: added utility functions
which create a GimpViewableButton+GimpContainerEntry combo for
brushes, patterns, gradients and fonts and a very ugly utility
function which packs one of these combos into a GtkFrame returned
by gimp_prop_enum_radio_frame_new(). This stuff does not really
belong here but is too ugly to be moved to a more general place.
* app/tools/gimpbucketfilloptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c: use the new utility functions. Moved
the pattern previews into the radio frame where using the pattern
is selected. Make them insensitive if using the pattern is not
selected.
2004-10-08 Michael Natterer <mitch@gimp.org>
* app/tools/gimppaintoptions-gui.c: the gradient button in blend
options got lost, added it back. Also moved creation of the brush,
pattern and gradient buttons to utility functions and cleaned up
the whole file a bit.
2004-05-04 Sven Neumann <sven@gimp.org>
* app/tools/gimpblendoptions.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpcoloroptions.c
* app/tools/gimpinkoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimpselectionoptions.c
* app/tools/gimptooloptions-gui.c
* app/tools/gimptransformoptions.c: use GimpFrames where GtkFrame
was used. Put "Pressure Sensitivity" frame into a GtkExpander.
2004-04-21 Michael Natterer <mitch@gimp.org>
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c: prepared qmask_actions_update()
and the qmask callbacks to be merged into the image ui manager.
* app/actions/dialogs-actions.c
* app/actions/edit-actions.c
* app/actions/file-actions.c
* app/actions/image-actions.c
* app/actions/layers-actions.c
* app/actions/plug-in-actions.c
* app/actions/tools-actions.c
* app/actions/view-actions.c: fixed lots of typos and buglets
spotted in my first test run.
* app/gui/menus.c: register the needed action groups with the
<Image> menu.
* app/tools/gimp-tools.c
* app/tools/gimpdodgeburntool.[ch]
* app/tools/gimppaintoptions-gui.c: s/dodgeburn/dodge_burn/g.
* app/widgets/gimpactionfactory.c
* app/widgets/gimpmenufactory.[ch]: s/G_GNUC_FUNCTION/G_STRFUNC/g,
updated copyright header.
* menus/image-menu.xml: fixed typos and added the "Filters"
submenus.
2004-03-04 Sven Neumann <sven@gimp.org>
* app/config/gimprc-blurbs.h: marked new strings for translation.
* libgimpwidgets/gimpstock.h: added #defines for missing icons.
This allows us to replace them later without changing the API.
* app/gui/dialogs-constructors.c
* app/gui/dialogs-menu.c
* app/gui/gradient-editor-commands.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c
* app/widgets/gimppaletteeditor.c: use the new stock icon names
instead of abusing GTK+ and GIMP tool stock icons.
* app/gui/preferences-dialog.c (prefs_dialog_new): added icons
to the new check buttons.
2003-11-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]
(gimp_dialog_factory_dialog_raise): support '|'-separated lists of
dialog identifiers and raise any of them if it is already open, or
the first dialog in the list otherwise.
* app/gui/dialogs-commands.c (dialogs_create_dockable_cmd_callback):
removed the same functionality here.
* app/gui/edit-commands.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c
* app/widgets/gimpdevicestatus.c
* app/widgets/gimptoolbox-indicator-area.c: pass lists of dialog
identifiers to gimp_dialog_factory_dialog_raise().
2003-07-16 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.[ch]: added utility function
gimp_paint_options_get_fade() which calculates an opacity
value from paint_core->pixel_dist.
* app/paint/gimppaintbrush.c: removed the same code here and use
gimp_paint_options_get_fade().
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimperaser.c
* app/paint/gimpsmudge.c: enabled fade for all paint tools, along
with a general opacity cleanup:
Use the opacity from gimp_context_get_opacity() *only* for the
image_opacity. In particular, *never* use it as initial value for
calculating the brush_opacity. Instead, start calculating the
brush_opacity from gimp_paint_options_get_fade() and return early
if it returns 0.0, if not, multiply tool specific opacity sources
like the current pressure.
(This changes the effect of the paint tools for particular opacity
values, but makes the impact of opacity on the final rendering
linear and more intuitive)
* app/tools/gimppaintoptions-gui.c: enabled the "Fade" frame for
the tools above.
* app/paint/gimppaintcore.c: purely cosmetic cleanup.
2003-07-15 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.[ch]: took the fade options out of
GimpGradientOptions and added them to the new GimpFadeOptions
struct. Added a GObject::finalize() implementation.
* app/paint/gimppaintbrush.[ch]: changed accordingly. Made
gimp_paintbrush_motion() a protected function and renamed it to
_gimp_paintbrush_motion() added a "gdouble opacity" parameter so
an initial brush opacity can be passed in by subclasses.
* app/paint/gimpairbrush.[ch]: derive it from GimpPaintbrush so it
gets all its rendering features. Removed own rendering code and
use _gimp_paintbrush_motion(), passing airbrush_options->pressure
as initial opacity. Removed all static variables.
* app/tools/gimpairbrushtool.[ch]
* app/tools/gimppenciltool.[ch]: derive them from GimpPaintbrushTool.
* app/tools/gimppaintoptions-gui.c: changed accordingly. Added the
full paintbrush options overkill to the airbrush GUI. Cleanup.
* app/tools/gimperasertool.c: forgot to remove the "Hard Edge"
toggle here.