2003-10-10 Pedro Gimeno <pggimeno@wanadoo.es>
* app/widgets/gimptoolbox.c (gimp_toolbox_init): Set the default
aspect ratio of the toolbox wrap box to 5:6.
(gimp_toolbox_set_geometry): Don't enforce min_height in the
toolbox window. Fixes bug #116937 and works around bug #113228.
* plug-ins/common/png.c (save_image): Round the values passed to
png_set_pHYs so that they don't decrease on every save.
2003-10-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo.[ch]: added utility function
gimp_session_info_aux_new().
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpimagedock.c (get_aux_info): use it.
2003-10-11 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h
* app/widgets/gimpsessioninfo.[ch]: added new struct
GimpSessionInfoAux which contains "gchar *name" and "gchar *value".
Changed sessionrc "aux-info" format again to be really extendable
this time. Also breaks everybody's sessionrc again.
* app/widgets/gimpimagedock.c
* etc/sessionrc: changed accordingly.
Implemented the stuff suggested in bug #122964. Fixes bug #122964
and bug #52206:
* app/widgets/gimpdataeditor.[ch]: replaced the "Gimp" member by a
"GimpDataFactory" and changed gimp_data_editor_construct()
accordingly. Implement GimpDockedInterface::set_aux_info() and
get_aux_info() and remember the currently edited data across
sessions.
* app/gui/gradient-editor-commands.c
* app/gui/gradient-editor-menu.c
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c: changed accordingly.
* app/widgets/gimpcoloreditor.c: remember the active color
selector across sessions.
2003-10-10 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpdocked.[ch]: new files implementing
GimpDockedInterface, a GTypeInterface which must be implemented by
all widgets which want to be packed into a GimpDockable. Has
virtual functions similar to the ones GimpDockable had.
* app/widgets/gimpdockable.[ch]: removed all virtual functions and
all function pointers from the instance struct (also the ones just
added in the commit below). Make sure only widgets implementing
the GimpDockedIface are added and simply call the child's
GimpDocked functions where we used to call our own virtual
functions and function pointers.
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpeditor.c
* app/widgets/gimpimageeditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpsessioninfo.c
* app/widgets/gimptooloptionseditor.c
* app/display/gimpnavigationview.c: implement GimpDockedIface.
* app/gui/dialogs-constructors.c: removed all that get_preview_func(),
set_context_func() etc. cruft since that's done by GimpDockedIface.
It's really a file of constructors now.
* app/gui/dialogs-menu.c: changed accordingly.
* app/widgets/gimpimagedock.c: forgotten in the commit below.
2003-10-10 Michael Natterer <mitch@gimp.org>
Cleaned up session management and changed the format of sessionrc
in a way that allows extensions without changing the format during
the 2.0 cycle:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpsessioninfo.[ch]: new files implementing the whole
GimpSessionInfo stuff (parsing, saving, restoring, utility functions).
Save / parse the position of GimpDock's panes (bug #122964).
* app/widgets/gimpdialogfactory.[ch]: removed saving, restoring
and session related utility functions and use the ones from
the new files above.
* app/gui/session.c: removed parsing and use the new stuff.
* app/widgets/gimpdock.[ch]: added new virtual functions
GimpDock::set_aux_info() and GimpDock::get_aux_info():
* app/widgets/gimpimagedock.c: implement them and handle the
"auto_follow_active" and "show_image_menu" properties.
* app/widgets/gimpdockable.[ch]: added the same virtual functions
to the GimpDockable class. Enables forward-compatible per-dockable
session management (bug #122964).
* app/gui/dialogs-commands.c
* app/gui/gui.c: changed accordingly.
* etc/sessionrc: ditto. Look at this file and update your own
sessionrc manually if you don't want to lose it.
2003-10-10 Henrik Brix Andersen <brix@gimp.org>
* app/core/gimpimage-grid.[ch]: removed the grid parasite related
functions from here ...
* app/core/gimpgrid.[ch]: ... and added them here. While I was at
it I also changed PROP_TYPE to PROP_STYLE and added blurbs to the
properties
* app/xcf/xcf-load.c
* app/display/gimpdisplayshell.c: changed accordingly
* app/widgets/Makefile.am
* po/POTFILES.in
* app/widgets/widgets-types.h
* app/widgets/gimpgrideditor.[ch]: added a new GimpGridEditor
widget - with a work-around for the fact that
gimp_prop_coordinated_new() doesn't accept boundaries
* app/gui/grid-dialog.h
* app/gui/grid-dialog.c (grid_dialog_new): use the new
GimpGridEditor widget, take a GimpImage as function parameter,
assume GimpImages always have a GimpGrid. This simplifies the grid
dialog.
* app/gui/image-commands.c
(image_configure_grid_cmd_callback): changed accordingly
* app/core/core-types.h: moved typedef GimpGrid from here ...
* app/config/config-types.h: ... to here to be able to use it in
GimpCoreConfig
* app/config/gimprc-blurbs.h
* app/config/gimpcoreconfig.[ch]: added default_grid member
* app/widgets/gimphelp-ids.h
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/default-grid.png
* app/gui/preferences-dialog.c: added UI for specifying default
image grid
* app/core/gimpimage.c (gimp_image_new): create a GimpGrid from
core_config->default_grid
* app/gui/image-menu.c (image_menu_update): the grid/guide entries
in <Image>/View/ should always be sensitive ...
* app/display/gimpdisplayshell.c (gimp_display_shell_init):
... but the grid entries should be disabled by default
2003-10-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c: added auto-scrolling
when DND-hovering close to the widget's top or bottom border.
Fixes bug #124231.
* app/widgets/gimpcontainertreeview.h: added some auto-scroll state
to the GimpContainerTreeView struct.
* app/widgets/gimpcontainertreeview.c: remove the auto-scroll
timeout in GtkWidget::unmap().
2003-10-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.h: added GIMP_VIEWABLE_MAX_BUTTON_SIZE
GIMP_VIEWABLE_MAX_MENU_SIZE.
* app/core/gimpviewable.c (gimp_viewable_get_popup_size): smarter
popup size limitation: limit each axis to 2 * MAX_POPUP_SIZE
and the area to MAX_POPUP_SIZE ^ 2.
* app/core/gimpbuffer.c
* app/core/gimpimage-preview.c
* app/core/gimpitem-preview.c
* app/text/gimpfont.c (GimpViewable::get_popup_size): removed
all limitations.
* app/widgets/gimpcontainermenu.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimpviewablebutton.c: use the new button and menu
size defines.
2003-10-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.[ch]: added new pure virtual function
GimpDock::setup() which configures a dock like a passed template
dock.
* app/widgets/gimpimagedock.c: implement it and set
"show_image_menu" and "auto_follow_active" accordingly.
* app/widgets/gimpdockable.c (gimp_dockable_detach): call
gimp_dock_setup() to configure the new dock like the old one.
Removed inclusion if "gimpimagedock.h".
* app/gui/dialogs-commands.c: minor code cleanups.
2003-10-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch] (gimp_dockable_detach): new
function. Need to include ugly stuff for proper GimpImageDock
setup.
* app/widgets/gimpdockbook.c (gimp_dockbook_menu_end): use
gimp_dockable_detach() and removed the evil includes.
* app/gui/dialogs-commands.c (dialogs_detach_tab_cmd_callback):
implement it using gimp_dockable_detach().
2003-10-06 Michael Natterer <mitch@gimp.org>
Treat changes to the selection like changes to any other drawable:
* app/core/gimpchannel.c
* app/core/gimpchannel-combine.c: call gimp_drawable_update() after
changing the channel.
* app/core/gimpimage.[ch]: added struct GimpImageFlushAccumulator
with one member "gboolean mask_changed". Connect to "update" of
the selection and set accum.mask_changed to TRUE in the callback.
Added default implementation for GimpImage::flush() and emit
"mask_changed" there.
Unrelated:
* app/core/gimpimage.h: removed GimpGuide struct...
* app/core/gimpimage-guides.h: ...and added it here.
* app/core/gimpimage-undo-push.c (undo_pop_mask)
(undo_pop_channel_mod): don't distinguish between selection and
non-selection channels and just call gimp_drawable_update().
* app/core/gimpundo.h
* app/core/gimpimage-undo.c: removed "gboolean mask_changed" from
the GimpUndoAccumulator struct since we don't have to care about
that signal explicitly any more.
* app/display/gimpdisplay-foreach.[ch]: removed gimp_displays_flush().
* tools/pdbgen/pdb/display.pdb (displays_flush_invoker): call
gimp_image_flush() on all images so the flush accumulator is
honored.
This generalization enables the removal of more special purpose
code which was needed to treat the selection different:
* app/core/gimpimage-mask-select.[ch]: removed...
* app/core/gimpchannel-select.[ch]: ...and added under a new name
because it's not selection specific any more.
* app/core/gimpimage-mask.[ch]: removed...
* app/core/gimpselection.[ch]: ...added the two remaining
functions here. Removed all calls to gimp_image_mask_changed().
* app/core/Makefile.am
* app/core/gimp-edit.c
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-snap.c
* app/display/gimpdisplayshell.c
* app/gui/channels-commands.c
* app/gui/layers-commands.c
* app/gui/select-commands.c
* app/gui/vectors-commands.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimprectselecttool.c
* app/tools/gimptransformtool.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/selection_tools.pdb: changed accordingly.
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpimage-colormap.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/gui/image-menu.c
* app/paint/gimppaintcore.c
* app/tools/gimpcroptool.c
* app/tools/gimpinkoptions.c
* app/tools/gimpvectortool.c: removed useless and/or obsolete
#includes.
* app/pdb/display_cmds.c
* app/pdb/paths_cmds.c
* app/pdb/selection_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
2003-10-06 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_data_drop_handle): check for
NULL pointers in the GimpDndDataDef array before using them.
Might happen with the changed dockable DND code :(
2003-10-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_separator_drag_drop): handle
dockable drops where the drag source is a GimpDockable itself.
* etc/sessionrc: try a new default dialog setup.
2003-10-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpdockable.[ch]: hide the GimpDockbook tabs when
it holds only a single dockable. Made the title area a drag source
and let the whole GimpDockable accept drops of dockables.
2003-10-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.[ch]: renamed
gimp_prop_size_entry_connect() to gimp_prop_coordinates_connect().
Added a new property widget that is a single GimpSizeEntry and is
connected to size and unit properties.
* app/widgets/gimptemplateeditor.c: changed accordingly.
* app/widgets/gimpstrokeeditor.c: added a "resolution" property
and use the new property widget.
* app/gui/stroke-dialog.c: pass the image resolution to
gimp_stroke_editor_new().
2003-10-01 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpunitmenu.[ch]:
* libgimpwidgets/gimpwidgets.c: added an API to allow for
sub-pixel sizes in spinbuttons connected to a GimpUnitMenu.
Make GimpUnitMenu emit "unit-changed" when the unit is changed
programmatically.
* libgimpwidgets/gimpsizeentry.[ch}: added a similar API here.
Make GimpSizeEntry emit "unit-changed" when the unit is changed
programmatically. The other signals will need similar changes.
* plug-ins/common/gauss_rle.c
* plug-ins/common/gauss_iir.c
* app/widgets/gimpstrokeeditor.c: use the new API.
2003-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c (gimp_dockable_new): accept NULL
as blurb and use the name as fallback for a missing blurb.
* app/gui/dialogs-constructors.c: removed the "Foo List" and "Foo
Grid" blurbs. Only left blurbs where the longer name makes sense.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/gui/tool-options-menu.c: added a "Rename Saved Options"
submenu and factored on-the-fly submenu creation out to a utility
function.
* app/gui/tool-options-commands.[ch]: added rename callback.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_TOOL_OPTIONS_RENAME.
* app/widgets/gimptooloptionseditor.c
(gimp_tool_options_editor_menu_popup): pass "button = 0" to
gtk_menu_popup() because we show the menu on button_release, not
on button_press.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: implement
GtkWidget::popup_menu() and pop up the menu from the selected
item. If there is no selected item, return FALSE to
makeGimpDockable pop up the menu from its menu button.
2003-09-30 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c:
(gimp_bezier_stroke_interpolate) Accept NULL for ret_closed.
* app/widgets/gimppreviewrenderervectors.c: removed "closed"
variable.
* app/core/gimpdrawable-stroke.[ch]: Factored out the final
rendering of the scanconvert. Implemented
gimp_drawable_stroke_boundary. Unfortunately the results are
not really good, since the boundary calculation code is
too exact for this purpose. I have a rough idea how to fix this.
* app/core/gimpchannel.c: changed accordingly.
2003-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.c
* app/widgets/gimppreviewrenderervectors.c: simplified drawing
code to a point where it becomes readable again. Draw centered
into the draw_area, using the size of the renderer.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore-stroke.c: cleanup.
(gimp_paint_core_stroke_boundary): don't push a separate undo
for each part of the boundary.
* app/core/gimpdrawable-stroke.[ch]: added empty stub
gimp_drawable_stroke_boundary(). Changed
gimp_drawable_stroke_vectors() to take the GimpStrokeOptions as
second parameter.
* app/core/gimpchannel.c (gimp_channel_stroke): use it. No need
to push an undo group around gimp_paint_core_stroke_boundary().
* app/vectors/gimpvectors.c: changed accordingly.
* app/widgets/gimpselectioneditor.[ch]: added a GimpStrokeItemFunc
pointer and use it for stroking.
* app/gui/edit-commands.[ch] (edit_stroke_selection): a
GimpStrokeItemFunc which strokes the selection using the
stroke-dialog.
* app/gui/dialogs-constructors.c: use it for the selection editor.
2003-09-29 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimpitem-preview.[ch]: new files with preview code
factored out of GimpDrawable.
* app/core/gimpdrawable-preview.[ch]: code removed here.
* app/core/gimpdrawable.c
* app/core/gimpitem.c: let GimpItem implement
GimpViewable::get_preview_size and GimpViewable::get_popup_size.
* app/widgets/gimppreviewrenderervectors.c: simple scale to the
renderer's size; it already respects the aspect ratio.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptooloptionseditor.c: connect to the "add" and
"remove" signals of the current tool_option's presets container
and set the "Restore" and "Delete" buttons insensitive when there
are no saved tool options. Also show the "Enter Name" dialog
directly instead of popping up a menu with only one item.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/gui/tool-options-menu.[ch] (tool_options_menu_setup): new
function for stuff which needs to be done once, not on every
tool_options_menu_update(). Cleanup.
* app/gui/menus.c: register it as setup_func of <ToolOptions>.
* app/gui/tool-options-commands.c: removed the "Reset"
implementations and activate GimpToolOptionsEditor's buttons
accordingly.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_TOOL_OPTIONS_DELETE.
* app/widgets/gimptooloptionseditor.[ch]: moved "Reset"
implementations to this file. Added "Delete" button. Pop up the
"Save", "Restore" and "Delete" submenus of the <ToolOptions>
item_factory when the resp. buttons are clicked.
2003-09-29 Michael Natterer <mitch@gimp.org>
* app/core/gimptoolinfo.[ch]: added a GimpContainer of tool
options presets.
* app/core/gimptooloptions.[ch] (gimp_tool_options_set_property):
silently accept setting the *same* tool_info again.
(gimp_tool_options_build_filename): is public now.
* app/tools/gimp-tools.c (gimp_tools_restore,save): load and save
the presets container.
* app/gui/tool-options-dialog.[ch]: removed.
* app/gui/tool-options-commands.[ch]
* app/gui/tool-options-menu.[ch]: new files implementing a menu
for the new GimpToolOptionsEditor widget. Has submenus for saving,
loading, and deleting tool options to/from the
tool_info->options_presets container.
* app/gui/Makefile.am
* app/gui/dialogs-constructors.c
* app/gui/menus.c: changed accordingly.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimptooloptionseditor.[ch]: the tool options dialog
as proper widget. The "Load" and "Save" buttons still do the same
stuff as before. Will make them use the new presets since making
them do something useful was the reason for this whole change.
* app/widgets/gimphelp-ids.h: added missing help IDs for the tool
options dialog.
2003-09-29 Simon Budig <simon@gimp.org>
* app/widgets/gimppreviewrenderervectors.c: Fixed a bad
crash (Thanks to Sven for spotting that). Minor cleanups.
2003-09-29 Simon Budig <simon@gimp.org>
* app/widgets/gimppreviewrenderervectors.c: Made the preview
respect the aspect ratio and resolutions of the image. There
apparently still is an off-by-one error in it.
* app/tools/gimpvectortool.c: (Hopefully) fixed a crash when a new
image gets opened with the vectors tool active.
2003-09-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: made draw a virtual method
of GimpPreviewRenderer. Draw the border in the wrapper function.
* app/widgets/gimppreviewrenderervectors.c: implement
GimpPreviewRenderer::draw instead of GimpPreviewRenderer::render.
2003-09-29 Simon Budig <simon@gimp.org>
* app/widgets/gimppreviewrenderervectors.c: Made these widgets
show a preview of the vectors object. Does not work everywhere
right now, also most probably has scaling issues for non-square
images.
* app/tools/gimpdrawtool.c: Fixed Svens fix.
2003-09-28 Simon Budig <simon@gimp.org>
"The last of the Oldenburg commits"
Thanks to the team of the Oldenburg Linux Developers Meeting 2003
for providing a nice hacking environment.
* app/vectors/gimpvectors.c: Add a default stock_id.
* app/widgets/gimppreviewrenderervectors.[ch]: New Widget
to render the preview of vectors. Just renders a stock item
now, since I was unable to figure out how to properly draw
in the GtkWidget.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h: Changed accordingly.
* app/widgets/gimppreviewrenderer-utils.c: Use the new widget.
* app/core/gimpscanconvert.c
* app/core/gimpdrawable-stroke.c: Use higher prescision for
libart-stroking vectors. Reduces artefacts.
* app/pdb/paths_cmds.c
* libgimp/gimppaths_pdb.c: Regenerated after Tors changes.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added new functions
color_region_mask() which works like color_region() but takes an
additional maskPR parameters and pattern_region() which fills
destPR with a TempBuf of *matching color depth*.
* app/paint-funcs/paint-funcs-generic.h: added corresponding
color_pixels_mask() and pattern_pixels().
* app/core/gimpimage.[ch] (gimp_image_transform_temp_buf): new
function which transforms a TempBuf to a specified drawable's
color space.
* app/core/gimpdrawable-bucket-fill.c: the functions were factored
out here. Removed them and use the new stuff.
* app/core/core-enums.[ch]: added enum GimpStrokeStyle which can
be one of { SOLID, PATTERN }.
* app/core/gimpstrokeoptions.[ch]: added "GimpStrokeStyle style"
property, cleanup.
* app/core/gimpdrawable-stroke.c: honor the new "style" property
and call the new color_region_mask() and pattern_region()
functions accordingly, cleanup.
* app/widgets/gimpstrokeeditor.c: added a GUI for the stroke
style. Ugly but works.
* app/gui/stroke-dialog.c: undefine "foreground" and "pattern" and
set the user context as parent context so we get these properties
from the global settings.
2003-09-27 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-cap-[butt|round|square]-16.png
* themes/Default/images/stock-join-[miter|round|bevel]-16.png:
added placeholders for GimpCapStyle and GimpJoinStyle icons.
* libgimpwidgets/gimpstock.[ch]: register the new icons.
* app/widgets/gimpstrokeeditor.c: made "options" a construct-only
property of the editor and create the widgets in a constructor
method. Use stock boxes with the new icons.
* app/gui/stroke-dialog.c (stroke_dialog_new): let the Cancel
button destroy the dialog instead of itself.
2003-09-27 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokeoptions.[ch]: added unit properties for
stroke width and dashes. Use convenience macros from GimpConfig to
register the properties. Removed init function since all values
are construct properties.
* app/vectors/gimpvectors.c: respect the stroke width unit.
* app/widgets/gimpstrokeeditor.c: added a unit menu here.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/core/gimppaintinfo.[ch]: derive it from GimpViewable.
* app/core/gimptoolinfo.c (gimp_tool_info_new): set the
paint_info's stock_id from the tool_info's stock_id.
* app/widgets/widgets-types.h: resurrected GimpItemStrokeFunc.
* app/widgets/gimpvectorstreeview.[ch]: added a item_stroke_func
pointer and use it instead of implementing stroking here.
* app/gui/vectors-commands.[ch]: added vectors_stroke_vectors()
which has the signature of a GimpItemStrokeFunc.
* app/gui/dialogs-constructors.c: use it for the paths dialog.
* app/gui/stroke-dialog.[ch]: extended to handle both libart and
GimpPaintCore stroking. Use a GimpContainerMenu view on the
gimp->paint_info_list container to select the paint core to use.
2003-09-26 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpstrokeeditor.[ch]: added a (yet rudimentary)
widget to view/edit a GimpStrokeOption.
* app/widgets/gimptemplateeditor.[ch]: derive it directly from
GtkVBox; it doesn't need any GimpEditor functionality.
2003-09-26 Simon Budig <simon@gimp.org>
* app/core/gimpstrokeoptions.[ch]: New Object, holding the
Options for a Libart-Stroke.
* app/core/Makefile.am
* app/core/core-types.h: Changed accordingly.
* app/core/gimpitem.[ch]: Changed the Signature of
gimp_item_stroke to accept a GimpObject instead of a
GimpPaintInfo. This enables us to pass GimpStrokeOptions
to it. To be cleaned up for 2.2.
* app/core/gimpselection.c
* app/core/gimpchannel.c
* app/vectors/gimpvectors.c: Changed accordingly
* app/gui/edit-commands.c
* app/gui/vectors-commands.c
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorstreeview.c: Fixed warnings by
casting the GimpPaintInfo to GimpObject.
2003-09-26 Michael Natterer <mitch@gimp.org>
Cleaned up all places which pick colors to work consistently: the
concept of an "active color" has disappeared, instead <ctrl> picks
the BG color all over the place (fixes bug #122931).
* app/tools/tools-enums.[ch]: added enum GimpColorPickMode which
can be one of { FOREGROUND, BACKGROUND }. Reordered enums so
non-registered ones are at the end of the file. Removed trailing
whitespace.
* app/tools/gimpcolorpickeroptions.[ch]: added a "pick-mode"
property and a GUI for it. Renamed the "update-active" property to
"update-toolbox".
* app/tools/gimpcolorpickertool.c: honor the new option. Toggle
pick-mode on <ctrl>.
* app/tools/gimpcolortool.[ch]: added pick_mode member and change
the cursor accordingly.
* app/widgets/gimpcolormapeditor.[ch]: added "GdkModifierType
state" to the "selected" signal. Removed the signal's default
implementation.
* app/gui/dialogs-constructors.c: fixed the signal handler which
lives here and set BG if <ctrl> was pressed.
* app/widgets/gimppaletteeditor.c: removed weird <ctrl> <->
active_color interaction and pick BG on <ctrl>. Don't change the
toolbox color when editing a color in the palette.
* app/widgets/gimptoolbox-color-area.[ch]: made the whole
active_color stuff private. Will remove these artefacts soon...
* app/gui/colormap-editor-menu.c
* app/gui/palette-editor-menu.c: added separate menu entries
for adding a color from the current FG and BG.
* app/gui/colormap-editor-commands.c
* app/gui/palette-editor-commands.[ch]: changed callbacks
accordingly.
* cursors/background.xbm
* cursors/background_mask.xbm
* cursors/foreground.xbm
* cursors/foreground_mask.xbm
* cursors/gimp-tool-cursors.xcf: moved the FG/BG cursor modifiers
closer to the upper right corner.
* app/widgets/gimpcursor.c: ignore the cursor modifiers' hotspots
since they are not relevant and I didn't save the hotspot in the
updated cursor files for that reason.
2003-09-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_menu_position)
* app/widgets/gimpcontainerpopup.c (gimp_container_popup_show):
more menus which pop up correctly with RTL languages.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/gui/resize-dialog.c
* app/widgets/gimptemplateeditor.c
* plug-ins/common/svg.c: use horizontal boxes instead of alignments.
Fixes dialog layout for RTL rendering.
* plug-ins/common/png.c (save_dialog): only set the comment toggle
active if there's a comment to save.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added a utility function
that positions a menu that pops up from a button widget.
* app/display/gimpdisplayshell-callbacks.c
* app/widgets/gimpdockable.c: use the new utility function instead
of duplicating the code.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimplayertreeview.c (gimp_layer_tree_view_init):
pack the widgets without using an alignment. Looks better and
works in RTL mode as well.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.[ch]: added the title pango layout to
the GimpDockable struct. Made gimp_dockable_menu_position() handle
RTL layout correctly.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_origin_menu_position): handle RTL layout.
2003-09-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpmenufactory.[ch]: added a "menu_title" which is
registered with each menu.
* app/widgets/gimpitemfactory.[ch]: added the title to the
constructor and to the GimpItemFactory struct.
* app/gui/menus.c: register titles with all menus.
* app/widgets/gimpdockable.[ch]: show the tab menu, not the
contained dialog's menu when clicking on the menu button.
Embed the dialog's menu as submenu. Use the item_factory's
title and the dockable's stock_id for the submenu entry.
* app/widgets/gimpeditor.c: removed GtkWidget:popup_menu()
implementation since that's done by GimpDockable now.
* app/widgets/gimpdockbook.c: set the new menu item invisible
when showing the menu as tab menu.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_DOCK_TAB_DETACH
and renamed _TAB_REMOVE to _TAB_CLOSE.
* app/gui/dialogs-menu.c: added the new menu entry for showing the
dialog's sub-menu. Added a "Detach" menu item, renamed "Remove" to
"Close". Accept both a GimpDockbook and a GimpDockable pointer as
"data" in dialogs_menu_update().
* app/gui/dialogs-commands.[ch]: changed accordingly. Never use
gtk_item_factory_popup_data_from_widget() but always the "data"
passed to the callbacks. Take care to not set the already active
preview_size, tab_style and list/grid type in the resp. callbacks
to avoid being called from dialogs_menu_update().
* app/gui/dialogs-constructors.c: removed separate
set_context_funcs and get_menu_funcs for GimpContainerView and
GimpContainerEditor widgets and simply use
gimp_container_view_get_by_dockable() to find the right widget.