... which creates a widget controlling a pair of lower/upper range-
limit properties, comprised of a handle-bar and two spin-buttons.
If the "sorted" parameter is TRUE, the "lower" property is bounded
above by the "upper" property, and vice versa.
Add a new "Swap compression" option to the preferences, allowing
explicit control over the tile-swap compression algorithm.
Previously, control over swap compression was only possible through
GEGL command-line options/environment variables. Since the GEGL
API to list all available compression algorithms is still private
for now, we currently only list the three predefined compression
levels -- "best performance" (the default), "balanced", and "best
compression" -- and a "none" option, to disable compression
altogether. Selecting a custom compression algorithm is possible
by entering its name manually.
Add "color-profile-path" to GimpDialogConfig to remember the last-used
path in any profile chooser dialog.
Whenever a GimpColorProfileChooserDialog is created, call a new
gimpwidgets-utils helper function that connects to the dialog's "show"
and "response" signals and makes sure "color-profile-path" is set on
the dialog if it doesn't have a current folder already, and sets the
property back to the config object when a profile was actually chosen
from disk.
Replace the 'with-behind' and 'with-replace' properties with a
single 'context' property, and use it to select the included
layer modes, according to their context mask.
Add a dummy GIMP_LAYER_MODE_SEPARATOR value to the GimpLayerMode
enum, and use it to explicitly mark the menu separators in the
layer-mode group arrays; add separators to the layer-mode menu
accordingly.
Update the rest of the code to use 'context' instead of 'with-behind'
and 'with-replace'. In particular, in the layers and layer options
dialogs, select the right context based on whether or not the
selected layer is a group.
I know this looks absolutely horrible, please spare me comments about
that. This commit has the purpose to let everybody experiment with the
new modes, and suggest improvements of the GimpLayerModeBox widget; we
need *some* way of controlling the new layer mode madness.
Step and page increments can't be reasonable calculated or guessed
based on the GUI widget's factor, so pass them each time we call
set_factor(). This change reintroduces sane ranges for the levels tool
for != u8 images again.
which allows adjustment-based prop widgets to display the property
value multiplied by factor. Remove gimp_prop_opacity_spin_scale_new()
because that's simply a factor of 100.0.
Adds an icon-pixbuf property to GimpViewable that is used for a default
implementation of new_pixbuf.
Extend gimp_icon_picker to allow the user to pick non-stock icons for tool
presets (or any other class derived from GimpViewable). Icons can come
from any file GdkPixbuf can load or from image data on the clipboard.
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-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
2007-08-15 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: remove GimpPlugInDebug typedef.
* app/plug-in/plug-in-types.h: added it here instead.
* app/core/gimpchannel-combine.h
* app/widgets/gimppropwidgets.[ch]: match parameter names
in .c, .h and API docs to make gtk-doc happy.
svn path=/trunk/; revision=23275
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.c: Added
"default-aspect-numerator", "default-aspect-denominator",
"default-fixed-size-width" and "default-fixed-size-height" as
non-serialized tool options, and "overridden-fixed-aspect" and
"overridden-fixed-size" as serialized ones.
* app/widgets/gimppropwidgets.c (gimp_prop_number_pair_entry_*):
Added support for the new GimpRectangleOptions.
svn path=/trunk/; revision=23187
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimppropwidgets.[ch]: Merged gimp_prop_size_2d_* and
gimp_prop_aspect_ratio_* to gimp_prop_number_pair_*.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Use the merged gimp_prop_number_pair_entry_new.
svn path=/trunk/; revision=23184
2007-08-08 Martin Nordholts <martinn@svn.gnome.org>
Renamed GimpRatioEntry to GimpNumberPairEntry, and generalized the
code a lot, so that it can be used both for 'Fixed: Aspect ratio'
and 'Fixed: Size'. Support is also added for having default values
and a 'user overrided' value mode.
* libgimpwidgets/gimpnumberpairentry.[ch]: Now contains the
rewrite and generalization of GimpRatioEntry.
(gimp_number_pair_entry_get_type)
(gimp_number_pair_entry_new)
(gimp_number_pair_entry_set_default_values)
(gimp_number_pair_entry_set_values)
(gimp_number_pair_entry_get_values): New libgimpwidget API.
* app/widgets/gimppropwidgets.[ch] (gimp_prop_size_2d_new): Added
new helper widget for setting up a GimpNumberPairEntry for the
Fixed: Size entry in the Rectangle Options.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Use the new gimp_prop_size_2d_entry for the Fixed: Size entry.
* libgimpwidgets/gimpwidgets.def: Removed gimp_ratio_entry_* and
added gimp_number_pair_entry_*.
* libgimpwidgets/gimpwidgets.h * libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/Makefile.am (libgimpwidgets_2_0_la_sources)
(libgimpwidgetsinclude_HEADERS): Updated accordingly.
svn path=/trunk/; revision=23154
2007-02-08 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangleoptions.c
* app/widgets/gimppropwidgets.[ch]: cleaned out some cruft. Still
work in progress.
svn path=/trunk/; revision=21872
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.
* app/widgets/gimppropwidgets.[ch]: add prop widget specially
for controlling aspect ratio.
* app/tools/gimprectangleoptions.ch]: use "aspect-numerator"
and "aspect-denominator" properties instead of "aspect",
and use new prop widget in gui to set and display them.
* app/tools/gimprectangletool.c: calculate aspect from
numerator and denominator.
2006-08-29 Michael Natterer <mitch@gimp.org>
Changed GimpViewable preview rendering to have a context to get
FG/BG/whatever from. Use the context to enable dynamic FG/BG
colors in gradients. Fixes bug #127676 and bug #352214. Addresses
bug #128367 (doesn't fix it because there's no loading/saving and
no GUI yet).
* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
specifying gradient colors in terms of foreground and background.
* app/core/gimpgradient.[ch]: added color_type members to the
GimpGradientSegment struct and honor them in
gimp_gradient_get_color_at(). Added GimpContext parameters to all
functions which finally call get_color_at().
* app/core/gimp-gradients.c: use the new method to implement the
builtin gradients.
* app/core/gimpviewable.[ch]: added GimpContext parameters to all
get_preview() and get_pixbuf() functions.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-preview.[ch]
* app/core/gimpgradient.c
* app/core/gimpimage-preview.[ch]
* app/core/gimpimagefile.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.[ch]
* app/text/gimpfont.c
* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
and ::get_pixbuf() implementations accordingly.
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.[ch]
* app/dialogs/dialogs-constructors.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/resize-dialog.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/paint/gimppaintoptions.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/actions/gradient-editor-commands.c
* app/widgets/gimpaction.c
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpbufferview.c
* app/widgets/gimpcellrendererviewable.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpclipboard.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpgradientselect.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppaletteeditor.[ch]
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.[ch]
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpview-popup.[ch]
* app/widgets/gimpview.[ch]
* app/widgets/gimpviewablebutton.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderer-frame.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
and parameters, implement GimpDocked::set_context() in many
widgets. Pass these locally remembered contexts to GimpViewable
functions. Did some minor cleanups on the way. There are still
some minor FIXMEs around where the code uses a NULL context (which
is allowed by the APIs)
* app/pdb/drawable_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/image_cmds.c: regenerated.
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.
2004-12-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added new prop_widget
gimp_prop_int_combo_box_new() which takes a pre-built GimpIntStore
and allows to create views on int properties with arbitrary sets
of values (not just enums).
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_constructor): added support for generic
combo boxes controlled exclusively by controller properties: if an
int property "foo" is followed by an object property "foo-values"
and the contained object is a GimpIntStore, use that store as
model for selecting "foo"'s values using
gimp_prop_int_combo_box_new().
(Allows for more flexible controller configuration, the actual use
case in the midi controller is still work in progress).
2004-05-03 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpframe.c: if the label_widget is a button, set
the button label as bold. Cache the indentation instead of
calculating it over and over again.
* themes/Default/gtkrc: set HIG-compliant spacing for the
action_area.
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_enum_radio_box_new() for a radio group that is no
embedded in a frame.
* app/widgets/gimpstrokeeditor.c: use a frame-less radio box for
the Stroke style.
* app/gui/file-new-dialog.c
* app/gui/grid-dialog.c
* app/gui/stroke-dialog.c: HIG-compliant spacings.
2004-01-28 Michael Natterer <mitch@gimp.org>
Added infrastructure to make sure we don't write to the global
brush, pattern etc. directories. Needed to make this configurable
because we can't rely on the global directories being read-only,
having certain names or being otherwise detectable at runtime in a
sane way. Fixes bug #132214.
* libgimpbase/gimpdatafiles.[ch]: added "const gchar *dirname" to
the GimpDataFileData struct so callbacks don't need to call
g_path_get_dirname() for each file.
* libgimpwidgets/gimpfileentry.c: made it work with non UTF-8
encoded filenames.
* libgimpwidgets/gimppatheditor.[ch]: ditto. Added GUI and API for
setting/getting a second "writable_path". The widget makes sure
that the writable_path is always a subset of the path.
* app/config/gimpconfig-utils.[ch]: added new function
gimp_config_build_writable_path().
* app/config/gimpcoreconfig.[ch]: added separate properties for
the writable brush, pattern, gradient, palette and font paths.
* app/config/gimprc-blurbs.h: added (still empty) blurbs for the
new properties.
* app/core/gimpdata.[ch] (gimp_data_set_filename): added parameter
"gboolean writable". Set data->writable to FALSE by default. If
"writable" is passed as TRUE, still check if we can write to the
file before setting data->writable to TRUE.
(gimp_data_create_filename): changed "data_path" parameter to
"dest_dir" and assume dest_dir is writable.
(gimp_data_duplicate): set data->dirty to TRUE to make sure
duplicated things will be saved.
* app/core/gimpbrush.c
* app/core/gimpbrushgenerated.c
* app/core/gimpbrushpipe.c
* app/core/gimpgradient.c
* app/core/gimppalette.c
* app/core/gimppattern.c: don't set the data's filename and don't
touch data->dirty in the _load() functions because that's done by
the data factory now. Don't touch data->dirty in the _duplicate()
functions because that's done by gimp_data_duplicate() itself now.
* app/core/gimpdatafactory.[ch] (gimp_data_factory_new): added
"writable_property_name" and remember it.
Added utility function gimp_data_factory_get_save_dir() which
determines the directory to save new datas to.
Added public function gimp_data_factory_data_save_single() which
saves a single data object.
Make sure new things get saved to the first writable directory
as specified in preferences.
* app/core/gimp.c (gimp_real_initialize): pass the writable_paths'
property names to gimp_data_factory_new().
* app/widgets/gimpdataeditor.c (gimp_data_editor_save_dirty): use
gimp_data_factory_data_save_single() instead of implementing
saving here.
* app/widgets/gimppropwidgets.[ch] (gimp_prop_path_editor_new):
added "const gchar *writable_property_name" parameter (can be
NULL).
Added the needed callbacks to handle the writable_path and made
the path_editor and file_entry code aware of non UTF-8 filename
encodings. Some general cleanup.
* app/gui/preferences-dialog.c: changed accordingly.