2003-04-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-guides.c (gimp_image_add_x,y): new functions
snapping to one axis only.
(gimp_image_snap_rectangle): use them to enable snapping the
rectangle to all its corners, not just the NW and SE one.
2003-04-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimptoolcontrol.[ch]: added an API to specify a
"snap_offset" and a "snap_width/height". Needed for tools which
want to snap to a rectangle and/or a position which is not the
current cursor position.
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_find_guide(), gimp_display_shell_snap_point()
and gimp_display_shell_snap_rectangle().
Added gimp_display_shell_snap_coords() which works on GimpCoords
and gets passed the above snap offsets.
* app/display/gimpdisplayshell-callbacks.c: use the new snap
function, using the values from GimpToolControl.
* app/tools/gimpcroptool.c: set snap offsets so the handles can be
guide-aligned after creating. Fixes bug #110957.
* app/tools/gimpeditselectiontool.c: removed snapping code (which
was broken anyway) and set appropriate snap offsets in
init_edit_selection().
2003-04-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptemplateeditor.c (gimp_template_editor_init):
modify the focus chain so it doesn't go line-by-line, but
spinbuttons first, then the widgets right of them.
003-04-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.[ch]: added a "selected_item"
pointer to the GimpContainerGridView struct so we don't need to
remember it using g_object_[set|get]_data(). Also make sure that
the selected item doesn't get out of sight when resizing the view
and that it is always visible initially.
2003-04-15 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-ins.c (plug_ins_init): make sure all progress
bars and at 1.0. Build the list of extension procedures to start
before starting them (and don't start them while iterating the
list of procedures because the list changes if we start an
extension).
2003-04-15 Michael Natterer <mitch@gimp.org>
* app/tools/paint_options.c (gimp_paint_options_gui): use a smaller
preview size for the gradient popup than for the button.
2003-04-14 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/image.pdb: don't request viewable previews with
a width or height of 0 and don't crash if no preview is returned.
* app/pdb/drawable_cmds.c
* app/pdb/image_cmds.c
* libgimp/gimpdrawable_pdb.c: regenerated.
2003-04-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.[ch]: made
gimp_vector_tool_clear_vectors() private. Connect to the vector's
"changed" signal (and do nothing in the callback for now...).
Alwayws set tool->gdisp in button_press(). Use for() loops to
iterate strokes. Fixed gimp_vector_tool_set_vectors() to hopefully
do the right thing in all cases now. s/ptr/list/g. Cleanup.
2003-04-14 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpvectors.[ch]: made "changed" a real signal,
don't crash when iterating a NULL stroke list, cleanup.
2003-04-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): check
for !GIMP_IS_PREVIEW(widget), not for GTK_WIDGET_NO_WINDOW(widget)
when deciding whether to put the tab_widget in a GtkEventBox
because GimpPreview is NO_WINDOW now but still handles events.
Fixes dockable DND.
2003-04-14 Sven Neumann <sven@gimp.org>
* app/gui/preferences-dialog.c: don't try to reparent the children
of GtkInputDialog but simply pop up the dialog as provided by
GTK+. Looks ugly but shouldn't crash any longer. Fixes bug #104423.
2003-04-14 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.[ch]: Changed vectors->strokes to a
GList and removed stroke->next. Implemented stuff for duplicating
strokes. Duplicating a vector works now.
* app/tools/gimpvectortool.c: added not-yet-used function to
determine where a click has been. Refcounting stuff changed.
* app/core/gimpimage-mask-select.c
* app/paint/gimppaintcore-stroke.c: Changed accordingly.
2003-04-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c: connect to "realize" of the
scrolled window's viewport and scroll to the correct item
(because GtkViewport is too dumb to this by itself).
* app/widgets/gimpcontainerpopup.[ch]: added a "view_type"
parameter.
* app/widgets/gimpviewablebutton.[ch]: added new function
gimp_viewable_button_set_view_type() and pass the view_type
to the GimpContainerPopup.
* app/widgets/gimptemplateeditor.c: default to GIMP_VIEW_TYPE_GRID
for the stock icon popup.
2003-04-13 Michael Natterer <mitch@gimp.org>
* app/core/gimptemplate.c (gimp_template_notify): invalidate
the preview when the stock_id changes.
* app/widgets/gimptemplateeditor.[ch]: added an optional entry
to edit the template's name.
* app/widgets/gimptemplateview.[ch]: added a "duplicate" button and
function pointers for creating templates, editing templates and
creating images from templates.
* app/gui/file-new-dialog.[ch] (file_new_dialog_create): added an
optional template parameter.
* app/gui/file-commands.c: pass template == NULL.
* app/gui/templates-menu.c: added a "Duplicate Template" menu entry.
* app/gui/templates-commands.[ch]: added the callback for the
duplicate menu item. Added "New Template" and "Edit Template"
dialogs. Added a function which opens a file_new_dialog with
a template preselected.
* app/gui/dialogs-constructors.c: let GimpTemplateView know
about the functions.
2003-04-13 Sven Neumann <sven@gimp.org>
* app/paint/gimppaintoptions.c: changed the "fade-length" and
"gradient-length" minimum values to 0.0 for compatibility with
the PDB API.
* app/paint/gimppaintcore.c (gimp_paint_core_get_color_from_gradient):
check that gradient_length > 0.0 before dividing by it.
* plug-ins/gfig/gfig.c (gfig_paint_callback): push an undo group
around the paint operations (bug #110446).
2003-04-13 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_deserialize_property)
* app/core/gimpcontainer.c (gimp_container_deserialize): g_free()
the string returned by gimp_scanner_parse_string(). Replace
NULL object names by "".
2003-04-13 Michael Natterer <mitch@gimp.org>
* app/tools/gimpeditselectiontool.c (init_edit_selection):
g_memdup() the segments returned by gimp_image_mask_boundary().
Just caching the pointers leads to bug #22375 because the image's
mask boundary changes while we live-move stuff.
* app/tools/gimpmovetool.c (gimp_move_tool_button_press): pause
the selection when starting to move a guide, since we also resume
it when we're finished.
(both bugs tracked down by Pedro Gimeno).
2003-04-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerpopup.[ch]
* app/widgets/gimpviewablebutton.[ch]: added "preview_size" and
"preview_border_width" parameters to the constructors and use them
when creating the popup.
* app/tools/gimptextoptions.c
* app/tools/paint_options.c
* app/widgets/gimptemplateeditor.c: changed accordingly. Create the
icon popup without borders.
2003-04-12 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-params.h: made object properties
G_PARAM_READWRITE by default. Added flag GIMP_PARAM_AGGREGATE
which indicates that an object property is not a reference but a
real part of its owner.
* app/config/gimpconfig-deserialize.c: g_object_set_property()
object properties only if they are not GIMP_PARAM_AGGREGATE.
* app/config/gimpconfig-utils.c (gimp_config_copy_properties,
gimp_config_reset_properties): copy and reset GIMP_PARAM_AGGREGATE
object properties correctly.
* app/config/gimpconfig-serialize.c: don't call
gimp_config_writer_open/close() for properties which are handled
by a GimpConfigIface::serialize_property() implementation.
* app/core/gimpcontext.c: removed exlicit G_PARAM_WRITABLE from
object properties since that's the default now. Call
gimp_config_writer_open/close() when serializing properties.
* app/core/gimpviewable.c (gimp_viewable_get_property): use
gimp_viewable_get_stock_id().
(gimp_viewable_set_stock_id): set stock_id to NULL if the new
stock_id is the same as viewable_class->default_stock_id.
Added serialize_property() which skips stock_id serialization
if it is NULL.
* app/tools/gimptextoptions.c: made the "text" property
GIMP_PARAM_AGGREGATE. Added gimp_text_options_set_property()
(which does nothing).
* app/widgets/gimptemplateeditor.[ch]: added an optional
GimpViewableButton to change the template's icon.
* app/gui/file-new-dialog.c: create it with the icon button so it
gets some testing.
2003-04-11 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_dialog): fixed fnord that caused the
dialog to sometimes show a ratio of 0:0.
2003-04-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch]: derive it from GtkBin, not from
GtkVBox. Removed "content_spacing" style property.
* app/widgets/gimpcontainerview-utils.c
* etc/gtkrc_user
* themes/Default/gtkrc: changed accordingly.
2003-04-11 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimptemplateeditor.[ch]: new widget chopped out
of file-new-dialog.c
* app/gui/file-new-dialog.c: use it.
2003-04-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.c (gimp_preview_renderer_create_gc):
lookup the border color in the window's colormap.
2003-04-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreview.[ch]
* app/widgets/gimppreviewrenderer.[ch]: moved background
functionality into the renderer. Removed some GimpPreview
functions that used to wrap GimpPreviewRenderer functionality.
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpnavigationview.c
* app/gui/dialogs-constructors.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimppreview-popup.c
* app/widgets/gimpselectioneditor.[ch]: changed accordingly.
2003-04-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpnavigationpreview.c: set the cursor on
preview->event_window, not widget->window. Use
preview->renderer->viewable, not preview->viewable.
2003-04-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreview.[ch]: made GimpPreview a NO_WINDOW
widget that draws on the parent window. Added an INPUT_ONLY window
for events.
* app/widgets/gimpnavigationpreview.c: take the widget's
allocation into account when rendering the marker and grab the
mouse on the preview's event_window.
* app/widgets/gimppreviewrenderer.[ch]: pass GdkRectangles as const.
2003-04-10 Michael Natterer <mitch@gimp.org>
* app/gui/file-new-dialog.c: added Portrait/Landscape radio
buttons which follow the state of the width/height entered and can
be used to swap them.
2003-04-10 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-portrait-16.png
* themes/Default/images/stock-landscape-16.png: new icons by Jimmac.
* libgimpwidgets/gimpstock.[ch]: register the new icons.
* app/widgets/widgets-enums.[ch]: added new enum GimpAspectType.
2003-04-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: added gimp_context_type_to_prop_name().
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpviewablebutton.[ch]: new widget implementing
the wheel-scrollable preview button.
* app/tools/gimptextoptions.c
* app/tools/paint_options.[ch]: removed the code implementing the
same and use GimpViewableButton.
* app/tools/tool_manager.c: added the font to the context
properties which are remembered per tool. Added an evil hack
using g_object_set_data() to pass the global_dock_factory to
tool option GUI constructors.
2003-04-09 Sven Neumann <sven@gimp.org>
* app/text/text-enums.[ch]
* app/text/gimptext.[ch]
* app/text/gimptextlayout.c: added some more text properties that
can't be accessed from the GUI yet.
2003-04-09 Michael Natterer <mitch@gimp.org>
* app/tools/gimpeditselectiontool.c
(gimp_edit_selection_tool_button_release): fixed boolean logic bug
introduced by the fix for bug #110173. Spotted by Pedro Gimeno.
2003-04-09 Sven Neumann <sven@gimp.org>
* app/gui/image-menu.c (image_menu_setup): don't try to hide the
tearoff menu item if tearoff menus are disabled in the prefs.
2003-04-09 Michael Natterer <mitch@gimp.org>
* app/file/file-save.[ch] (file_save_as): added "gboolean
set_image_clean" and call gimp_image_clean_all() only if it
was passed as TRUE.
(file_save): pass TRUE.
* app/gui/file-save-dialog.c: pass TRUE from the "Save as" and
FALSE from the "Save a Copy" dialog (bug #109464).
2003-04-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_remove_channel): say
"Remove Channel" when pushing the undo, not "Remove Layer".
2003-04-09 Michael Natterer <mitch@gimp.org>
* app/tools/paint_options.[ch]: added
paint_options_container_scrolled() utility function which
wheel-scrolls a container. Use it for the brush and pattern
previews. Added a gradient preview.
* app/tools/gimpblendoptions.c: removed the gradient preview here.
* app/tools/gimptextoptions.c: use the new function to scroll
the font list.
2003-04-08 Michael Natterer <mitch@gimp.org>
* app/tools/gimpbucketfilloptions.c: removed the pattern preview...
* app/tools/paint_options.c: ...and added it here so all paint
tools can use it if needed. Added a pattern preview to the clone
tool options.
2003-04-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch]: Added "gpointer get_tab_data" to
GimpDockableGetTabFunc and to gimp_dockable_new().
* app/gui/dialogs-constructors.c: changed accordingly. Replaced
dialogs_[brush,pattern,gradient,palette,font]_tab_func() by
dialogs_viewable_tab_func() which gets passed the GType as
get_tab_data.
2003-04-08 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: added vitrual function
GimpViewable::get_description() which returns the string that
should be presented to the user plus an optional tooltip with more
information. The default implementation just returns the object's
name and no tooltip.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpimage.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimptoolinfo.c: implement get_description().
* app/core/gimpimagefile.[ch]: ditto. Renamed
gimp_imagefile_get_description() to
gimp_imagefile_get_desc_string(). Well, um, gimme a better name...
* app/gui/file-open-dialog.c: changed accordingly.
* app/file/file-utils.[ch]: renamed readXVThumb() to
file_utils_readXVThumb().
* tools/pdbgen/pdb/fileops.pdb: changed accordingly.
* app/widgets/widgets-types.h: removed GimpItemGetNameFunc typedef.
* app/widgets/gimpcontainerview-utils.[ch]: removed the the actual
get_name_funcs. They now live in the core as
GimpViewable::get_description() implementations.
* app/widgets/gimpcontainermenu.[ch]
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpcontainerview.[ch]
* app/widgets/gimpmenuitem.[ch]
* app/widgets/gimpviewabledialog.c: removed get_name_func stuff
and use gimp_viewable_get_description().
* app/widgets/gimpcontainermenu.[ch]: added "preview_border_width"
to gimp_container_menu_set_preview_size().
* app/widgets/gimpimagedock.c: changed accordingly.
* app/pdb/fileops_cmds.c: regenerated.
2003-04-08 Michael Natterer <mitch@gimp.org>
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added "gboolean save_accels" and
"gboolean restore_accels".
* app/gui/menus.[ch]: added menus_restore(), menus_save() and
menus_clear().
* app/gui/session.[ch]: added session_clear().
* app/gui/gui.c: call menus_restore() and menus_save().
* app/gui/preferences-dialog.c: brought the full core config
options overkill to the GUI. Needs to be simplified. Cleaned
up the "Interface" page a bit.