2003-10-22 Sven Neumann <sven@gimp.org>
* app/display/Makefile.am
* app/display/gimpdisplayoptions.[ch]: new files that implement
a GimpConfig object with GimpDisplayShell and GimpCanvas options.
Actually two classes, one for the normal view, a derived one with
different default values for fullscreen mode.
* app/display/display-enums.[ch]: renamed GimpDisplayPadding enum
to GimpCanvasPadding.
* app/config/config-types.h: added the GimpDisplayOptions typedef.
* app/config/gimprc-blurbs.h
* app/config/gimpdisplayconfig.[ch]: replaced a bunch of properties
with two instances of GimpDisplayOptions.
* app/display/gimpdisplayshell.[ch]: replaced the
GimpDisplayShellAppearance struct with GimpDisplayOptions.
* app/display/gimpdisplayshell-appearance.[ch]
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-handlers.[ch]
* app/gui/image-menu.c: changed accordingly.
* app/gui/preferences-dialog.c: added a convenience function that
creates a view on a GimpDisplayOptions object. Not all values are
configurable here yet.
* docs/gimprc-1.3.5.in
* etc/gimprc: regenerated to document the gimprc format changes.
2003-10-14 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-grid.c
* app/core/gimpimage.[ch]
* app/gui/grid-dialog.c: removed the "grid_changed" signal from
GimpImage.
* app/display/gimpdisplayshell-handlers.c: connect to
notifications from the image grid instead.
2003-10-14 Michael Natterer <mitch@gimp.org>
Refactored modifier handling of displays and tools. Hopefully
finally fixes bug #124135.
* app/tools/gimptool.[ch] (struct GimpTool): added private members
"focus_display" and "modifier_state" so tools are aware of their
modifier state.
* app/tools/gimptool.[ch]
* app/tools/tool_manager.[ch]: removed all public modifier_key()
API and added set_focus_display() and set_modifier_state()
instead.
* app/tools/tool_manager.c (tool_manager_select_tool)
* app/display/gimpdisplay.c (gimp_display_delete): set the
active_tool's focus_display to NULL.
* app/display/gimpdisplayshell.[ch] (struct GimpDisplayShell):
added almost the whole stuff that used to be static variables of
gimp_display_shell_tool_events(). Cleaned up the struct a bit.
* app/display/gimpdisplayshell-callbacks.c: removed utility
function gimp_display_shell_update_tool_modifiers().
(gimp_display_shell_tool_events):
- Replaced all calls to gimp_display_shell_update_tool_modifiers()
and tool_manager_modifier_key_active() by
tool_manager_modifier_state_active().
- Call tool_manager_focus_display_active() before setting the
tool's modifier_state. Set the tool's focus_display to NULL when
we get a focus_out event.
- Don't grab/ungrab the keyboard twice when <space>-selecting the
move tool.
- Removed most static variables and use the new members of
GimpDisplayShell. Don't remember any old modifier states since
GimpTool does that by itself now.
2003-10-12 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.c (gimp_display_reconnect): HALT the
active tool before reconnecting. Fixes bug #124388.
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 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-08 Michael Natterer <mitch@gimp.org>
Fixed bug #119423. There was no speed regression with the actual
painting, just with the display update (which effectively led to
faster painting, it just felt slower).
* app/display/gimpdisplayshell.c (gimp_display_shell_flush): added
"gboolean now" parameter and update the display immediately if
it is TRUE.
* app/display/gimpdisplay.c (gimp_display_flush_whenever): pass
the "now" we got passed to the function above, so calling
gimp_display_flush_now() really flushes *now* again.
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 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: guard callbacks
against being invoked during display destruction. Fixes crashes
when closing/opening images. Also fixes the crash reported by
Pedro Gimeno in the comment to bug #117884, but doesn't fix
#117884 since it's a different issue.
2003-10-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c: set the screen resolution before
setting the initial scale; update it in GtkWidget::screen_changed.
2003-10-01 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimpimage-unit.[ch]: added small wrappers to ease
handling of image units and to hide the core GimpUnit API.
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpstatusbar.c
* app/gui/info-window.c:
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c
* app/tools/gimprectselecttool.c
* app/tools/gimpscaletool.c: use the new functions.
* app/core/gimp-units.c
* app/vectors/gimpvectors-export.c: use the core GimpUnit API.
* app/vectors/gimpvectors.c: no need to include gimpunit.h here.
2003-09-26 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: #include
"widgets/gimpwidgets-utils.h" for gimp_button_menu_position().
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/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 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-menu-12.png: removed...
* themes/Default/images/stock-menu-left-12.png
* themes/Default/images/stock-menu-right-12.png: and added again
together with a flipped version.
* libgimpwidgets/gimpstock.[ch]: register GIMP_STOCK_MENU_LEFT and
GIMP_STOCK_MENU_RIGHT instead of GIMP_STOCK_MENU and swap the
images for RTL layout.
* app/widgets/gimpdockable.c: use GIMP_STOCK_MENU_LEFT here.
* app/display/gimpdisplayshell.c: replaced the arrow in the
display origin with the GIMP_STOCK_MENU_RIGHT icon.
2003-09-21 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]: renamed new enums to use "style" instead
of the overloaded term "type". Also renamed GimpGridType while I was
on it.
* app/core/gimpdrawable-stroke.[ch]
* app/core/gimpgrid.[ch]
* app/core/gimpscanconvert.[ch]
* app/display/gimpdisplayshell.c
* app/vectors/gimpvectors.c
* app/gui/grid-dialog.c: changed accordingly.
2003-09-18 Michael Natterer <mitch@gimp.org>
* app/paint/Makefile.am
* app/paint/paint.[ch]: removed...
* app/paint/gimp-paint.[ch]: ...and added.
* app/core/gimp.c: changed accordingly.
* app/tools/Makefile.am
* app/tools/tools.[ch]: removed...
* app/tools/gimp-tools.[ch]: ...and added. Added
gimp_tools_restore() and gimp_tools_save() and moved the entire
tool registering and tool_options loading/saving code here. Call
tool_manager_init() from gimp_tools_init() and tool_manager_exit()
from gimp_tools_exit().
* app/tools/tool_manager.[ch]: removed the code which now lives
in gimp-tools.[ch]. The tool manager now has no knowledge about
individual tools any more and just handles the active_tool
and the tool part of tool <-> display interaction.
Removed tool_manager_get_info_by_type().
* app/tools/gimpvectortool.c (gimp_vector_tool_register): the
tool's identifier is "gimp-vector-tool", not "gimp-path-tool".
* app/app_procs.c
* app/display/gimpdisplayshell-callbacks.c
* app/gui/vectors-commands.c
* app/tools/gimppainttool.c: changed accordingly.
2003-09-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask-select.c (gimp_image_mask_select_vectors)
* app/paint/gimppaintcore-stroke.c (gimp_paint_core_stroke_vectors)
* app/display/gimpdisplayshell.c (gimp_display_shell_draw_vector)
* app/tools/gimpdrawtool.c (gimp_draw_tool_real_draw)
* app/tools/gimptransformtool.c (gimp_transform_tool_draw)
* app/tools/gimpvectortool.c (gimp_vector_tool_vectors_visible)
(gimp_vector_tool_draw): all callers of gimp_stroke_interpolate():
don't leak the returned GimpCoords array and don't crash if it's
NULL.
* app/tools/gimpvectortool.[ch]: added VECTORS_SELECT_VECTOR state
which enables activating any visible GimpVectors on any display.
(gimp_vector_tool_on_handle)
(gimp_vector_tool_on_curve): added a GimpVectors parameter so we
can check for vectors which are not vector_tool->vectors.
(gimp_vector_tool_oper_update): iterate gdisp->gimage->vectors
to figure if we are hovering any visible vectors and set
VECTORS_SELECT_VECTOR.
(gimp_vector_tool_button_press): catch VECTORS_SELECT_VECTOR and
start editing the selected vectors. Also make it the image's
active_vectors.
(gimp_vector_tool_button_release): removed unneeded call to
gimp_viewable_invalidate_preview(vectors).
Random cleanup all over the place.
2003-09-12 Michael Natterer <mitch@gimp.org>
Added support for permanently showing the visible vectors, not
only when the vectors tool is active:
* app/display/gimpdisplayshell.[ch]: added
gimp_display_shell_draw_vector() which draws a single GimpVectors
object and gimp_display_shell_draw_vectors() which draws all
visible ones. Added "gint paused_count" and new functions
gimp_display_shell_paunse()/resume(). Pause/resume the active tool
and draw/undraw the visible vectors when paused_count changes from
0 to 1 and from 1 to 0.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c: call the new
freeze()/thaw() functions instead of calling the tool_manager
directly. Removes the tools/ sependency from the scale and scroll
files. Also draw the vectors once when the canvas is realized so
XOR drawing is in the correct state.
* app/display/gimpdisplayshell-handlers.c: connect to
image->vectors' "add" and "remove" signal and to the "freeze",
"thaw" and "visibility_changed" signals of all vectors in
image->vectors and update vectors drawing accordingly.
2003-09-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-layer-select.c: switch layers
immediately, not when finishing layer_select, so the layer
boundary and the layers dialog are updated, which makes this
feature much more useful. Fixes bug #119234.
2003-09-09 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationview.c
* app/gui/resolution-calibrate-dialog.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpdialogfactory.c
* app/widgets/gimpeditor.c
* app/widgets/gimppreview-popup.c
* app/widgets/gimpwidgets-utils.c: get the size from the current
screen, not always from the default one.
* plug-ins/common/wmf.c: ask GIMP for the monitor resolution instead
of taking the value from GDK.
2003-09-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_draw_grid):
access the grid structure directly instead of using g_object_get()
and leaking the returned values. Release the GC object instead of
leaking it (the GC should probably become part of the display).
* app/gui/grid-dialog.c (grid_dialog_new): removed an extraneous
reference count from grid_backup.
2003-08-27 Michael Natterer <mitch@gimp.org>
Enabled type-preserving DND of all kinds of items between
different images. Fixes bug #119983.
* app/core/gimpitem.[ch]: added new virtual function
GimpItem::convert() which duplicates an item for another image.
* app/core/gimplayer.[ch]: removed gimp_layer_new_from_drawable()
and made it a GimpItem::convert() implementation.
* app/vectors/gimpvectors.[ch]: removed gimp_vectors_convert() and
made it a GimpItem::convert() implementation.
* app/widgets/gimpitemtreeview.[ch]: removed GimpConvertItemFunc
typedef and function pointer in GimpItemTreeViewClass since
we can simply call gimp_item_convert() now.
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c
* app/display/gimpdisplayshell-dnd.c
* tools/pdbgen/pdb/layer.pdb: changed accordingly.
* app/pdb/layer_cmds.c: regenerated.
2003-08-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemfactory.[ch]
* app/widgets/gimpmenufactory.[ch]: added a help_id to
GimpItemFactory. It's basically the code I removed some days ago,
but this time it's used as default help_id for the factory (e.g.
if F1 is pressed over a separator), and not to construct html
links.
* app/widgets/gimphelp-ids.h: added some missing help IDs.
* app/gui/menus.c: register a help IDs with each item factory.
* app/display/gimpdisplayshell.c
* app/gui/dialogs-menu.c: some more forgotten help IDs.
2003-08-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpobject.[ch]: changed GimpObject::get_memsize() to
return a second value named "gui_size", where the primary return
value is the "constant" actual size (as long as no operation is
performed on the object), and the second "gui_size" return value
is the size of temporary stuff like preview caches or boundary
segments (which may change asynchronously, even if the object is
on the undo stack).
* app/core/gimp.c
* app/core/gimpbrush.c
* app/core/gimpbrushpipe.c
* app/core/gimpbuffer.c
* app/core/gimpchannel.c
* app/core/gimpcontainer.c
* app/core/gimpcontext.c
* app/core/gimpdata.c
* app/core/gimpdatafactory.c
* app/core/gimpdrawable.c
* app/core/gimpgradient.c
* app/core/gimpimage-undo.c
* app/core/gimpimage.c
* app/core/gimpitem.c
* app/core/gimplayer.c
* app/core/gimplist.c
* app/core/gimppalette.c
* app/core/gimpparasitelist.c
* app/core/gimppattern.c
* app/core/gimpundo.c
* app/core/gimpundostack.c
* app/core/gimpviewable.c
* app/text/gimptextlayer.c
* app/vectors/gimpstroke.c
* app/vectors/gimpvectors.c: changed get_memsize() implementations
accordingly.
* app/display/gimpdisplayshell-title.c
* app/gui/debug-commands.c
* app/widgets/gimppreview.c: changed callers accordingly.
* app/core/gimpimage-undo-push.c: changed layer, channel, vectors
and layer_mask undo steps to add/subtract the size of the
resp. objects whenever they take/drop ownership of them. Ignore
the objects' "gui_size" to get identical sizes on
adding/subtracting. Fixes bug #120429.
2003-08-17 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-layer-select.[ch]: made the layer
cycling circular. Removed the static layer_select variable and
allocate a new struct for each use. Made it use Ctrl+Tab for
forward cycling and Ctrl+Shift+Tab for backward so it doesn't use
Alt any more. Cleanup.
* app/display/gimpdisplayshell-callbacks.c: changed it from Alt to
Ctrl here, too.
Fixes all the stuff mentioned in bug #119236.
2003-08-16 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): if the canvas has no
focus on button_press, set it explicitly instead of asuming that
focus_in will follow anyway. Should once more fix bug #85202.
Grab the keyboard while button1 is down so the focus can't go away
while the tool can't receive modifier events. Should fix more
#85202-alike bugs.
2003-08-12 Henrik Brix Andersen <brix@gimp.org>
* app/gui/image-menu.c (image_menu_update): have the grid/guide
menu entries reflect the presence of grid/guides in the image (as
suggested by jimmac)
* app/display/gimpdisplayshell.c (gimp_display_shell_snap_coords):
snap to grid/guides even if the grid/guides are hidden (as
suggested by jimmac)
2003-07-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_set_active_layer): moved the
code which manipulates gimage->layer_stack and the call to
gimp_layer_invalidate_boundary() inside the if(layer != active_layer)
branch so it is called less often. Fixes the slowness of bug #104440
for most cases since we don't need to recalculate the selection
boundary in the next step.
(gimp_image_set_active_channel): call
gimp_layer_invalidate_boundary() before setting the active_layer
to NULL. Fixes stale layer boundary when switching to a channel.
* app/display/gimpdisplay.c (gimp_display_flush_whenever): when
there are no updates, we still need to restart the selection.
Fixes missing layer boundary when switching from a channel to
a layer.
2003-07-29 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_ants_speed_notify_handler): use the
gimp_display_shell_selection_control() wrapper instead of
calling gimp_display_shell_selection_*() functions directly.
Don't #include "gimpdisplayshell-selection.h".
2003-07-29 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_[hv]ruler_button_press): skip double clicks by
checking event->type == GDK_BUTTON_PRESS. Brings press and release
events sent to the move tool back in sync and fixes bug #75351.
2003-07-18 Michael Natterer <mitch@gimp.org>
* app/config/gimprc-blurbs.h
* app/config/gimpdisplayconfig.[ch]: added separate properties for
the fullscreen appearance of the display (menubar, rulers,
scrollbars, statusbar and padding). Default to everything
invisible and black padding.
* app/display/gimpdisplayshell.[ch]: renamed struct
GimpDisplayShellVisibility to GimpDisplayShellAppearance and added
the canvas padding stuff.
* app/display/gimpdisplayshell-appearance.[ch]: made
gimp_display_shell_set_padding() fullscreen-aware. Added
gimp_display_shell_get_padding().
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-handlers.c
* app/gui/image-menu.c: changed addordingly.
* app/gui/preferences-dialog.c: added the new options and moved
the display appearance stuff to its own page. Minor cleanups.
2003-07-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-transform.[ch]: removed
gimp_display_shell_transform_boundary() again...
* app/tools/gimpdrawtool.[ch]: ...and added as
gimp_draw_tool_draw_boundary(). Removed the GimpDrawToolState enum
and the "draw_state" member since they were redundant. Cleanup.
* app/tools/gimpeditselectiontool.c: changed accordingly.
* app/tools/gimppainttool.[ch]: added a brush preview so we
finally see where we will paint. Fixes bug #32498. Cleanup.
* app/tools/tool_manager.c: also look at draw_tool->gdisp, not
only at tool->gdisp when deciding whether the active tool has to
be suspended/resumed/halted. Fixes a couple of fnords with the
line preview and the new brush preview.
* app/tools/gimpcolortool.c: minor cleanup.
2003-07-09 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-transform.[ch]: added new function
gimp_display_shell_transform_boundary() which takes an array of
BoundSegs and returns an array of GdkSegments.
* app/tools/gimpeditselectiontool.c: use it.
2003-07-02 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h: added GimpMenuPositionFunc typedef.
* app/widgets/gimpwidgets-utils.[ch]: made gimp_menu_position()
a GimpMenuPositionFunc.
* app/widgets/gimpitemfactory.[ch]
(gimp_item_factory_popup_with_data): added position_func and
position_data parameters. Use gimp_menu_position() if no
position_func is given.
* app/display/gimpdisplayshell-callbacks.c: removed
gimp_display_shell_origin_menu_popup() and call
gimp_item_factory_popup_with_data() directly from
gimp_display_shell_popup_menu(), using
gimp_display_shell_origin_menu_position() as position_func.
* app/widgets/gimpeditor.[ch]: added a GtkWidget::popup_menu()
implementation so all context menus are keyboard accessible.
Added "gpointer factory_data" member so the menu can be popped up
in the right context.
* app/gui/channels-menu.c
* app/gui/layers-menu.c
* app/gui/vectors-menu.c: make them work without an active image
since they can be popped up at any time now.
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: cleanup.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpdockbook.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c: pass NULL, NULL as
position_func and position_data so the default implementation is
used.
This fixes bug #65198
* app/core/Makefile.am
* app/core/core-types.h:
* app/core/gimpgrid.[ch]: added new class GimpGrid.
* app/core/core-enums.[ch]: added new enum GimpGridType.
* app/core/gimpimage-guides.[ch]: removed the gimp_image_snap_*()
functions...
* app/core/gimpimage-snap.[ch]: ...and added them here since they
are no longer guide specific.
* app/core/gimpimage-undo-push.[ch]: added
gimp_image_undo_push_image_grid()
* app/display/gimpdisplayshell-handlers.c:
* app/core/gimpimage.[ch]: added grid member to _GimpImage. Added
new signal "grid_changed", added gimp_image_grid_changed(),
gimp_image_get_grid() and gimp_image_set_grid().
* app/display/gimpdisplayshell-appearance.[ch]: added
gimp_display_shell_set_show_grid(),
gimp_display_shell_get_show_grid(),
gimp_display_shell_set_snap_to_grid() and
gimp_display_shell_get_snap_to_grid().
* app/display/gimpdisplayshell-callbacks.c: added call to
gimp_display_shell_draw_grid()
* app/display/gimpdisplayshell.[ch]: added grid member to
_GimpDisplayShellVisibility, added snap_to_grid and grid_dialog
members to _GimpDisplayShell, added
gimp_display_shell_draw_grid(), modified
gimp_display_shell_snap_coords() to use the new
gimp_image_snap_*() functions.
* app/gui/image-menu.c: added grid entries to
image_menu_entries[].
* app/gui/view-commands.[ch]: added
view_configure_grid_cmd_callback(),
view_toggle_grid_cmd_callback() and
view_snap_to_grid_cmd_callback().
* app/gui/Makefile.am
* app/gui/grid-dialog.[ch]: added a grid dialog.
2003-06-13 Michael Natterer <mitch@gimp.org>
Cleaned up and improved the message system:
* app/core/gimp.[ch]: added "const gchar *domain" to
GimpMessageFunc (a NULL domain means the message is from the GIMP
core, everything else is a plug-in).
* app/errors.c: pass "domain == NULL" to gimp_message().
* tools/pdbgen/pdb/message.pdb: derive the message domain from the
current plug-in's menu_path (evil hack but works reasonably well).
* app/pdb/message_cmds.c: regenerated.
* app/widgets/gimpwidgets-utils.[ch] (gimp_message_box): added a
header showing the message domain and changed the dialog layout to
follow the HIG more closely.
* app/gui/error-console-dialog.[ch]: removed.
* app/widgets/gimperrorconsole.[ch]
* app/gui/error-console-commands.[ch]
* app/gui/error-console-menu.[ch]: new files containing a
re-implementation of the error console dialog.
* app/gui/Makefile.am
* app/gui/dialogs-constructors.c
* app/gui/gui.c
* app/gui/menus.c
* app/widgets/Makefile.am
* app/widgets/widgets-types.h: changed accordingly.
* app/display/gimpprogress.c: added more spacing and removed the
separator (more HIG compliant).
* plug-ins/[most plug-ins].c: Changed lots of messages and
progress strings:
- Removed plug-in names from messages since that's automatically
covered by "domain" now.
- Put all filenames in ''.
- Changed "Loading" to "Opening".
- Added "..." to all progress messages.
- Cleaned up all file open/save error messages to look the
same and include g_strerror(errno).
- Removed special casing for progress bars and *always* show them,
not only if run_mode != GIMP_RUN_NONINTERACTIVE (we can't expect
all plug-ins to do this correctly but need to hack the core to
sort out unwanted progress bars).
Unrelated:
- Cleaned up indentation, spacing, #includes, coding style and
other stuff while I was at all these files.
2003-06-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added utility function
gimp_rgb_get_gdk_color(), documented gimp_get_screen_resolution().
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_set_border_color)
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_padding): use the new function.
2003-06-04 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): undraw the cursor on
GDK_PROXIMITY_OUT. Always set shell->proximity to FALSE *before*
calling gimp_display_shell_update_cursor().
2003-06-04 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_reconnect):
call gimp_display_shell_scale_setup() instead of
gimp_display_shell_shrink_wrap() so window size, zoom factor and
scroll offsets are preserved across File->Revert if possible.
Fixes bug #114383.
2003-05-29 Michael Natterer <mitch@gimp.org>
* app/main.c (main): removed the calls to g_log_set_handler().
* app/app_procs.[ch] (app_init): added the g_log_set_handler()
calls and pass them the global Gimp instance as user_data.
Renamed app_gui_init() to app_gui_libs_init().
* app/errors.c: use the passed Gimp pointer instead of using
"the_gimp". Don't #include "app_procs.h".
* app/gui/gui.[ch]: removed gui_get_screen_resolution().
* app/widgets/gimpwidgets-utils.[ch]: added
gimp_get_screen_resolution().
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.c
* app/gui/preferences-dialog.c
* app/gui/user-install-dialog.c: changed accordingly.
* app/display/gimpdisplayshell.c: don't #include "gui/gui.h".
2003-05-28 Sven Neumann <sven@gimp.org>
* app/app_procs.[ch]: wrap gui_libs_init() so we don't need to
include gui.h from main.c
* app/main.c: changed accordingly.
* app/gui/gui.[ch]: added a GdkScreen parameter to
gui_get_screen_resolution(). Use NULL if you want the default
screen.
* app/gui/preferences-dialog.c
* app/gui/user-install-dialog.c: changed accordingly.
* app/display/gimpdisplayshell-scale.c: use the monitor resolution
stored in the GimpDisplayShell object.
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.c: get the monitor resolution for
the widget's GdkScreen. Set it in the realize method so it gets
changed when the image window is migrated to another screen.
2003-05-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: don't let the navigation
_popup_ auto-resize itself and don't allocate a minimum size
bacause that makes sense for the navigation _tab_ only. Fixes
popup size and positioning.
2003-05-26 Pedro Gimeno <pggimeno@wanadoo.es>
* app/tools/gimpeditselectiontool.c (selection_transform_segs):
Fix off-by-one when dragging the selection. Fixes the last pending
issue of bug #17904. Use temporary variables for clamp values.
* app/display/gimpdisplayshell-selection.c
(selection_transform_segs): Perform the clamping that fixes
bug #110014 here instead of in the callers. Solves a rare case
that was not properly handled before.
(selection_render_points, selection_generate_segs): Remove the
clamping code from here.
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle): More
clampings to avoid overflow of 16-bit coordinates.
2003-05-20 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-callbacks.c: removed padding_gc from
the GimpDisplayShell struct. Don't draw the padding color manually.
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_padding): set the canvas background color
using gdk_window_set_background().
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): update the cursor on
GDK_ENTER_NOTIFY.
* app/display/gimpdisplayshell-cursor.c
(gimp_display_shell_update_cursor): argh, "0" coordinates are
*inside* the canvas.
Together fixes bug #113239.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-dnd.[ch]
* app/display/gimpdisplayshell.c: enabled dropping of vectors to
the display to copy them between images.
2003-05-17 Michael Natterer <mitch@gimp.org>
Fixed File->Revert, which was completely broken before:
* app/gui/file-commands.c (file_revert_confirm_callback): set the
new image on all GimpContexts which had the old image set. Unref
the new image after the displays are reconnected.
Added some paranoia code for similar future situations (the
functions below were not broken, but affected by the above bug):
* app/display/gimpdisplay-handlers.c (gimp_display_disconnect):
set gdisp->gimage to NULL before unrefing the image.
* app/widgets/gimpimagedock.c (gimp_image_dock_image_changed):
unref the gimage pointer returned by g_object_get() only if it is
non-NULL. Cleanup.
2003-05-12 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_invalidate_preview_handler): use a low-priority
timeout for updating the WM icon.
2003-05-05 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-scale.[ch]
(gimp_display_shell_scale_zoom_fraction): new utility function
which takes GimpZoomType and zooms "scalesrc" and "scaledest".
(gimp_display_shell_scale_calc_fraction): new utility function
which takes an exact double scale factor and calculates "scalesrc"
and "scaledest".
(gimp_display_shell_scale): use the first.
(gimp_display_shell_scale_fit): use the second.
* app/tools/gimpmagnifytool.[ch]: use the first to click-zoom and
the second to area-zoom. Fixes bug #112115. Removed zoom_in() and
zoom_out() utiliy functions. Removed "GimpZoomType op" from the
GimpMagnifyTool struct. Cleanup.
2003-05-05 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_snap_coords):
don't change the passed GimpCoords if we didn't snap.
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-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 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-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-selection.c: applied a patch from
Pedro Gimeno that fixes incorrect drawing of the selection border
caused by overflowing 16bit X coordinates (bug #110014).
2003-04-04 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimplimits.h: reduced GIMP_MAX_IMAGE_SIZE to 2^18.
* libgimpbase/gimputils.[ch]: added gimp_memsize_to_string()
utility function (which is definitely broken on 64bit systems).
* app/core/gimpimage-new.[ch]: removed
gimp_image_new_get_memsize_string() and gimp_image_new_create_image().
Renamed gimp_image_new_template_new() to
gimp_image_new_get_last_template().
* app/core/gimpimagefile.c
* app/display/gimpdisplayshell-title.c: changed accordingly.
* app/core/gimp-templates.c: changed filename from "templates"
to "templaterc".
* app/core/gimp.[ch]
* app/core/gimpimage-duplicate.c: don't include "gimpimage-new.h".
* app/core/gimptemplate.[ch]: removed
gimp_template_calc_memsize(). Instead, added the size and a
boolean indicating that it is valid to the GimpTemplate
struct. Added GObject::notify() implementation and update the
values there.
* app/widgets/gimppropwidgets.c: connect to the unit property
correctly.
* app/gui/file-new-dialog.c: changed accordingly. Disconnect
from the template's "notify" signal while changing all values.
2003-04-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c: applied a patch from
Pedro Gimeno that fixes the display render problems at high zoom
levels (bug #109933).
2003-04-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_fit): extended range of possible zoom
ratios like in the other scaling routines.
* app/display/gimpdisplayshell-scale.[ch]
* app/display/gimpdisplayshell.[ch]
* app/gui/image-menu.c
* app/gui/view-commands.[ch]: added a dialog to menually enter the
zoom ratio. Fixes bug #65057.
2003-04-03 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-template-16.png
* themes/Default/images/stock-texture-64.png: new icons by Jimmac.
* libgimpwidgets/gimpstock.[ch]: register the new icons.
* app/widgets/gimppreview.[ch]: added the possibility to set a
background pixmap on the preview widget.
* app/gui/dialogs-constructors.c
* app/display/gimpnavigationview.[ch]
* app/widgets/gimpselectioneditor.[ch]: set a background on the
navigation and selection previews when layer previews are disabled
in the preferences.
2003-04-01 Michael Natterer <mitch@gimp.org>
* app/config/gimpdisplayconfig.[ch]: added gboolean show_scrollbars
to be consistent with show_menubar etc.
* app/config/gimprc-blurbs.h: added its blurb and made all
SHOW_FOO_BLURBs consistent.
* app/display/gimpdisplayshell.c: take the scrollbar visibility
default value from GimpDisplayConfig.
* app/gui/preferences-dialog.c: GUI for the new property.
2003-04-01 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list: added VOID__DOUBLE_DOUBLE
* app/widgets/gimpnavigationpreview.[ch]: applied patch from
Pedro Gimeno that fixes mapping of preview scroll offsets to
image scroll offsets. Changed the x, y, width, height members
from gint to gdouble. Changed the external API to use exact
doubles instead of rounded ints.
* app/display/gimpnavigationview.c: speak to the navigation
preview in exact double values.
Alltogether fixes bug #109648.
2003-03-30 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_origin_menu_popup): set the active display
before showing the menu (fixes bug #109472).
2003-03-25 Sven Neumann <sven@gimp.org>
* app/text/gimptext.c: include locale.h for setlocale().
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/widgets/Makefile.am: changed rules that generate enums code
to include gimp-intl.h instead of libgimp-intl.h.
* tools/pdbgen/app.pl
* tools/pdbgen/pdb/*.pdb: include gimp-intl.h.
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-03-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-scale.c: don't emit the "scaled"
signal from gimp_display_shell_scale_setup(). Emit it explicitely
from gimp_display_shell_scale_resize() instead.
* app/display/gimpdisplayshell-scroll.c: call
gimp_display_shell_scale_setup() after scrolling in order to
update scrollbars and rulers.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-handlers.c: emit the "scaled" signal
explicitely.
* app/display/gimpdisplayshell-render.c: minor optimizations.
* app/display/gimpdisplayshell.c: minor cleanup.
2003-03-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.[ch]: removed gdisp->draw_guides
and gdisp->snap_to_guides.
* app/display/gimpdisplayshell.[ch]: added shell->snap_to_guides.
Added the state of guide, selection and active_layer visibility to
the GimpDisplayShellVisibility struct so they can be configured
separately for fullscreen mode. Update the popup_factory in
gimp_display_shell_real_scaled() only if this is the active
display.
* app/display/gimpdisplayshell-appearance.[ch]: added accessors
for selection, active_layer and guide visibility.
* app/display/gimpdisplayshell-selection.[ch]: changed
accordingly. Changed the selection and active_layer toggle
functions to *_set_hidden().
* app/display/gimpdisplayshell-callbacks.c
* app/gui/image-menu.c
* app/gui/view-commands.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmovetool.c: changed accordingly.
* app/gui/gui.c (gui_display_new): update the menubar_factory
*after* making the new display the active one.
2003-03-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask.[ch] (gimp_image_mask_translate)
* app/core/gimplayer.[ch] (gimp_layer_translate): added
"gboolean push_undo" parameters.
* app/core/gimpimage-crop.c
* app/core/gimpimage-resize.c
* app/display/gimpdisplayshell-dnd.c
* app/gui/layers-commands.c
* app/widgets/gimptoolbox.c
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/selection.pdb: changed accordingly.
* app/pdb/layer_cmds.c
* app/pdb/selection_cmds.c: regenerated.
* app/core/gimpimage-undo-push.c (undo_pop_layer_displace): call
gimp_layer_translate() with "push_undo == FALSE" instead of
duplicating gimp_layer_translate()'s code. Use GimpItemUndo for
GIMP_UNDO_MASK.
* app/tools/gimpeditselectiontool.c
(gimp_edit_selection_tool_cursor_key): check if the top undo on
the stack is of exactly the same type as the undo we would push
and just don't push it then (compresses layer translate undos and
fixes bug #86362). Changed stuff work with CAPS_LOCK or other
modifiers pressed.
2003-03-12 Sven Neumann <sven@gimp.org>
* app/gui/image-menu.c: reordered the View menu, moved all
Zoom-related entries into a submenu. Use radio items for the zoom
ratio as suggested in bug #74385.
* app/gui/view-commands.c (view_zoom_cmd_callback): only call
gimp_display_shell_scale() if the item is active and the current
scale is different from the requested one.
* app/display/gimpdisplayshell.c (gimp_display_shell_real_scaled):
update the image menu so that the zoom ratio is displayed correctly.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_realize): don't call
gimp_display_shell_scale_setup(), since it is done in the configure
event handler already.
2003-03-11 Michael Natterer <mitch@gimp.org>
* app/display/Makefile.am
* app/display/gimpdisplayshell-appearance.[ch]: new files
implementing canvas padding, fullscreen toggling and utility
functions to show/hide GimpDisplayShell components (menubar,
statusbar, ...) Added the possibility to show/hide the scrollbars.
* app/display/gimpdisplayshell.[ch]: added struct
GimpDisplayShellVisibility which stores the GUI components'
visibility. Added two such structs to the GimpDisplayShell struct:
one for normal mode and one for fullscreen mode. Default to
"everything invisible" for fullscreen. Fixes bug #74383.
* app/display/gimpdisplayshell-callbacks.c: fiddle with the
two visibility structs when toggling fullscreen.
* app/display/gimpdisplayshell-handlers.c: #include
"gimpdisplayshell-appearance.h"
* app/gui/image-menu.c
* app/gui/view-commands.[ch]: added a "Show Scrollbars" menu entry,
use the new widget show/hide utility functions.
2003-03-11 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]
* app/gui/image-menu.c
* app/gui/view-commands.c: rewrote the fullscreen mode
implementation so that it doesn't loop infinitely.
2003-03-11 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]
* app/gui/image-menu.c
* app/gui/view-commands.[ch]: added a fullscreen mode for the
image display by means of gtk_window_fullscreen/unfullscreen.
Depends on the window manager implementing _NET_WM_STATE_FULLSCREEN.
* app/tools/gimpcroptool.c: made gimp_crop_tool_draw() static.
* app/tools/gimptexttool.[ch]: derive from GimpDrawTool, no real
changes yet.
2003-03-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.[ch]: added "gboolean data_editable"
which gets set in gimp_data_editor_real_set_data(). Set the name
entry insensitive if the data is not editable.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimpgradienteditor.c: look at editor->data_editable
instead of duplicating the logic in all subclasses.
* app/widgets/gimppreview.[ch]: added "gboolean expand" and
gimp_preview_set_expand() like in GtkPreview bacause smooth auto
resizing can only be done by the widget itself, not via external
callbacks.
* app/display/gimpnavigationview.c
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpselectioneditor.c: set expand == TRUE. Removed
"size_allocate" callbacks. They resize *much* smoother now.
Various cleanups.
* app/widgets/gimpnavigationpreview.c: recalculate the preview
coordinates when the size changes.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppreviewrenderer-utils.c
* app/widgets/gimppreviewrenderergradient.[ch]: new renderer which
is much faster because it projects the gradient without creating
intermediate buffers. Rendering can be restricted to an interval
from [left...right].
* app/widgets/gimpgradienteditor.[ch]: undeprecated by using
GimpPreview instead of GtkPreview. Cleanup.
* app/gui/gradient-editor-commands.c: changed accordingly.
2003-03-07 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-scroll.c: need to update the
scrollbars now that the call to gimp_display_shell_scale_setup()
was commented out. Removed the commented stuff and don't #include
"gimpdisplayshell-scale.h". Resume the active tool *after*
calling gdk_window_process_updates() to skip more useless drawing
operations.
2003-03-06 Michael Natterer <mitch@gimp.org>
* themes/Default/images/stock-delete-16.png
* themes/Default/images/stock-lower-16.png
* themes/Default/images/stock-new-16.png
* themes/Default/images/stock-paste-16.png
* themes/Default/images/stock-raise-16.png
* themes/Default/images/stock-refresh-16.png: removed these files
since we use the icons provided by GTK+ now.
* themes/Default/gtkrc
* themes/Default/images/Makefile.am: removed them here hoo.
* libgimpwidgets/gimpstock.[ch]: reordered stuff to be consistent
in the header and the .c file. Added GIMP_STOCK_ERROR and
GIMP_STOCK_QUESTION which are available in all sizes (unlike
GTK_STOCK_DIALOG_ERROR and GTK_STOCK_DIALOG_QUESTION).
* app/core/gimpviewable.c
* app/display/gimpdisplayshell.c
* app/gui/file-commands.c
* app/gui/file-new-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimpwidgets-utils.c
* app/widgets/gimpdatafactoryview.c: use the new stock IDs.
* app/config/gimpcoreconfig.[ch]: renamed "preview_size" to
"layer_preview_size" and added "gboolean layer_previews" which
switches layer previews on/off independent of their size.
* app/config/gimprc-blurbs.h: added/changed their blurbs.
* app/core/core-enums.[ch]: removed GIMP_PREVIEW_SIZE_NONE.
* app/core/gimpdrawable-preview.c
* app/core/gimpdrawable.c
* app/core/gimpimage.c: return NULL previews if
core_config->layer_previews is FALSE. Invalidate all layer/channel
previews whenever "layer_previews" changes.
* app/widgets/gimppreviewrendererdrawable.c
* app/widgets/gimppreviewrendererimage.c: render the stock_id
if the drawable/image returns a NULL preview. Fixes bug #107242.
* app/display/gimpdisplayshell-handlers.c: don't set the
sensitivity of the navigation button because it can no longer be
disabled.
* app/display/gimpdisplayshell-layer-select.c
* app/gui/dialogs-constructors.c
* app/gui/dialogs.c
* app/gui/paths-dialog.c: changed accordingly.
* app/gui/preferences-dialog.c: added a toggle button for the new
"layer_previews" boolean.
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainerlistview.c: chain up unconditionally
in GimpContainerView::clear_items().
* app/widgets/gimpcontainertreeview.c: ditto. Made the reorder()
implementation lengthy and eeky (but working) again... Stop signal
emission on double clicks so GtkTreeView doesn't re-select the
item we are about change.
* app/widgets/gimpcontainerview.c
(gimp_container_view_real_clear_items): need to use
g_hash_table_new_full() here too or everything will b0rk.
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_default_render_stock): use
gtk_widget_render_icon() instead of gtk_icon_set_render_icon().
* tools/pdbgen/enums.pl: this file wanted to be regenerated...
2003-03-03 Hans Breuer <hans@breuer.org>
* app/text/makefile.msc (new file)
*/makefile.msc */*/makefile.msc : updated
* app/core/gimpdata.c : define access() constants
for G_OS_WIN32 case
* app/text/gimptext.c : <stdlib.h> for getenv()
* libgimp/gimp.def libgimp/gimpui.def : updated externals
* libgimpwidgets/libgimp-glue.c : make dynamic_resolve
actually work again for 'my' DLL naming convention
* plug-ins/gap/gap_pdb_calls.c : reflect renaming
of GIMP_VERTICAL to GIMP_ORIENTATION_VERTICAL
2003-03-01 Michael Natterer <mitch@gimp.org>
* app/core/gimpbuffer.c: don't scale the preview up if the
buffer is too small.
* app/core/gimppattern.c: don't add a white border around the
preview if the pattern is too small.
* app/widgets/gimppreviewrenderer.[ch]: new object. A buffer
that updates itself on GimpViewable changes and can render
itself to any widget. Basically GimpPreview reduced to the
render and draw code.
* app/widgets/gimppreview.[ch]: removed all rendering and drawing
code and keep a GimpPreviewRenderer instance. Connect to its
"update" signal for queuing draws on the preview.
* app/widgets/gimpcellrendererviewable.[ch]
* app/widgets/gimpcontainertreeview.c: same here: removed
rendering and drawing code and keep GimpPreviewRenderers in the
list store. Delays preview creation for GtkTreeViews until the
buffer is really needed for drawing and adds idle preview updating
on viewable changes.
* app/widgets/gimppreview-utils.[ch]
* app/widgets/gimpbrushpreview.[ch]
* app/widgets/gimpbufferpreview.[ch]
* app/widgets/gimpdrawablepreview.[ch]
* app/widgets/gimpimagepreview.[ch]: removed...
* app/widgets/gimppreviewrenderer-utils.[ch]
* app/widgets/gimppreviewrendererbrush.[ch]
* app/widgets/gimppreviewrendererdrawable.[ch]
* app/widgets/gimppreviewrendererimage.[ch]: ...and converted to
GimpPreviewRenderer subclasses.
* app/display/gimpnavigationview.c
* app/gui/palette-import-dialog.c
* app/widgets/Makefile.am
* app/widgets/widgets-enums.h
* app/widgets/widgets-types.h
* app/widgets/gimpchannellistview.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimplayerlistitem.c
* app/widgets/gimplistitem.c
* app/widgets/gimpnavigationpreview.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorslistview.c: changed accordingly.
2003-02-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: added "gchar *stock_id" to the
GimpViewable struct. It is used by the GUI if the get_preview()
functions return NULL. Default to GTK_STOCK_DIALOG_QUESTION.
* app/core/gimptoolinfo.[ch]: set the tool's stock_id. Removed
the cached GdkPixbuf. Don't implement any preview function
so the GUI uses the stock_id.
* app/tools/tool_manager.c: removed GdkPixbuf creation, removed
the #warning about the buggy way we created the pixbuf.
* app/gui/dialogs-constructors.c
* app/gui/image-menu.c
* app/tools/gimpcroptool.c
* app/tools/gimphistogramtool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimptransformtool.c
* app/widgets/gimptoolbox.c: use viewable->stock_id instead
of tool_info->stock_id.
* app/core/gimpbrush.c
* app/core/gimpgradient.c
* app/core/gimpimagefile.c
* app/core/gimpundo.c: simplified get_preview() implementations:
- never scale previews up, only down.
- don't render white or checks backgrounds but simply return
TempBufs with alpha and let the preview system do its job.
- don't add padding but simply return previews smaller than
requested.
* app/display/gimpdisplayshell-render.[ch]: added
"render_blend_white", a 2d lookup table for blending on white,
just as the check lookup tables. Added "render_white_buf".
* app/widgets/gimppreview.[ch]: changed a lot:
- don't render the preview's border into the buffer.
- added "GdkGC *border_gc" and draw the preview's border in expose()
using gdk_draw_rectangle().
- added "GdkPixbuf *no_preview_pixbuf" and create it in
gimp_preview_real_render() if gimp_viewable_get_preview()
returned NULL.
- factored the actual preview rendering out to
gimp_preview_render_to_buffer(). Added configurable background
rendering for the preview itself and it's padding area
(the area the preview is larger than the buffer returned
by gimp_viewable_get_preview()).
- changed gimp_preview_render_and_flush() to
gimp_preview_render_preview() and added "inside_bg" and
"outside_bg" parameters.
- use the new render buffers for blending on white.
* app/widgets/gimpbrushpreview.c
* app/widgets/gimpbufferpreview.c
* app/widgets/gimpdrawablepreview.c
* app/widgets/gimpgradientpreview.c
* app/widgets/gimpimagepreview.c
* app/widgets/gimppalettepreview.c
* app/widgets/gimppatternpreview.c: don't create large white
TempBufs to center the previews in but simply set the TempBuf's
offsets to get them centered. Simplified & cleaned up many preview
render functions. Pass the correct GimpPreviewBG modes to
gimp_preview_render_preview().
* app/widgets/gimpcellrendererviewable.[ch]: new GtkCellRenderer
class derived from GtkCellRendererPixbuf which knows how
to use gimp_viewable_get_preview_size() and renders the
viewable's stock item if no preview can be created.
* app/widgets/gimpcontainertreeview.c: added a GtkTreeCellDataFunc
which creates the preview pixbuf if needed so we don't create it
unconditionally upon item insertion. Fixed preview size assertion
to use GIMP_PREVIEW_MAX_SIZE, not "64". Block "selection_changed"
while reordering the selected item.
* app/widgets/gimpcontainerview.c: cosmetic.
* app/widgets/gimpimagefilepreview.[ch]
* app/widgets/gimptoolinfopreview.[ch]
* app/widgets/gimpundopreview.[ch]: removed because the default
implementation is good enough.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppreview-utils.c: changed accordingly.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs-menu.c
* app/gui/dialogs.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: register grid and tree view variants
of the document history.
Unrelated:
* app/gui/gui.c (gui_exit_finish_callback): disconnect from
signals earlier.
* app/gui/user-install-dialog.c: create the "tool-options" subdir
of the user's ~/.gimp-1.3 directory.
2003-02-25 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.[ch]
* app/display/gimpdisplayshell.c: override GtkWidget::popup_menu()
so we popup the Image menu on the default shortcut (Shift F10).
* app/gui/image-menu.c (image_menu_entries): removed or replaced
shortcuts that use the Alt key. Added access keys to all toplevel
entries of the Image menu (see bug #106991).
* app/gui/tools-commands.[ch]: removed "Swap Contexts" functionality.
* app/widgets/gimpselectioneditor.[ch]: moved "Invert" button.
2003-02-25 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: replaced the "gboolean
title_dirty" in GimpDisplayShell by "guint title_idle_id".
(gimp_display_shell_flush): Call gimp_display_shell_update_title()
unconditionally. Don't call info_window_update().
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c: ditto.
* app/display/gimpdisplayshell-title.c: update the title in an
idle function. Call info_window_update() from the idle function.
2003-02-25 Sven Neumann <sven@gimp.org>
* app/config/gimpdisplayconfig.[ch]
* app/config/gimprc-blurbs.h
* app/display/gimpdisplayshell.c
* app/gui/preferences-dialog.c: applied a modified version of a
patch from Toralf Lund <toralf@kscanners.no> that adds a new
preferences option to choose the inital zoom ratio. Fixes bug
#106730 and in my opinion also #103547.
2003-02-24 Michael Natterer <mitch@convergence.de>
* app/display/gimpdisplay-foreach.[ch]: removed
gimp_displays_invalidate() again.
* app/display/gimpdisplayshell-render.c: don't call it.
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_check_notify_handler): put the call to
gimp_display_shell_expose_full() back I "optimized" away a few
days ago.
2003-02-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplay-foreach.[ch]: added new function
gimp_displays_invalidate() which queues a redraw on all displays
by calling gimp_display_shell_expose_full().
* app/display/gimpdisplayshell-render.c (render_setup_notify):
invalidate all displays when the transparency type or size changes.
* app/tools/gimptexttool.c (text_tool_button_press): readded some
code I accidentally removed in my last commit.
* app/text/gimptextlayout.c (gimp_text_layout_new): always set the
font size but make sure it is at least 1.
2003-02-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-scroll.c (gimp_display_shell_scroll):
don't wait for graphics expose events. Commented out the call to
gimp_display_shell_scale_setup() since it should not be needed.
2003-02-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c (render_image_rgb):
replaced a for-loop with a call to memcpy().
* app/display/gimpdisplay.c: use g_memdup() instead of g_new()
followed by memcpy().
2003-02-21 Michael Natterer <mitch@gimp.org>
Refactored the GimpDisplayShell update/draw code:
* app/display/gimpdisplayshell.[ch]: removed the display_areas
list which used to hold the GimpAreas to update. Instead, simply
queue draws using gtk_widget_queue_draw[_area]() in
gimp_display_shell_expose_area(), _expose_full() and
_expose_guide(). Made all _draw() functions public because they
are now called from the "expose_event" handler. Removed rendering
from gimp_display_shell_flush() because stuff is now flushed
automatically by the gtk idle renderer.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_expose): draw everything here (the code
removed from gimp_display_shell_flush() without the GimpArea list).
(gimp_display_shell_canvas_tool_events): return "return_val", not
TRUE if gimp->busy is TRUE. Fixes unupdated (windowk bg color)
display areas. Fixes bug #106595.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-cursor.c
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-selection.c
* app/gui/view-commands.c: changed accordingly. Removed calls to
gimp_display_shell_flush() all over the place.
* app/display/gimpdisplayshell-scroll.c: replaced lots of code by
a single call to gdk_window_scroll().
2003-02-20 Michael Natterer <mitch@gimp.org>
Reimplemented the undo history:
* app/Makefile.am
* app/undo_history.[ch]: removed.
Changes/cleanups to the undo system to enable/simplify the new
undo history implementation:
* app/core/core-types.h: removed enum undo_event_t. Removed the
GimpImage parameter from GimpUndoPopFunc and GimpUndoFreeFunc
because GimpUndo has a GimpImage pointer now (see below).
* app/core/core-enums.[ch]: added enum GimpUndoEvent. Added an
enum value for REDO_EXPIRED.
* app/core/gimpimage.[ch]: added a GimpUndo pointer to the
"undo_event" signal which needs to be passed for all events except
UNDO_FREE.
* app/display/gimpdisplayshell-handlers.c: changed accordingly.
* app/core/gimpundo.[ch]: added a GimpImage pointer to the
GimpUndo struct. Removed GimpImage parameters all over the
place. Added preview stuff. The preview creation needs to be
triggered explicitly using gimp_undo_create_preview() because the
GimpUndo can't know when it's possible to create the preview.
* app/core/gimpimage-undo-push.c
* app/paint/gimppaintcore-undo.c
* app/tools/gimptransformtool-undo.c: changed accordingly, cleanup.
* app/core/gimpundostack.[ch]: ditto. Return the freed undo from
gimp_undo_stack_free_bottom(). Removed unused container signal
handlers.
* app/core/gimpimage-undo.c: free the redo stack the same way old
undos are freed (from bottom up). Emit "undo_event" with event ==
REDO_EXPIRED for each removed redo.
* app/core/gimpmarshal.list: added new marshallers.
New undo history implementation:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpundoeditor.[ch]
* app/widgets/gimpundopreview.[ch]: new widgets for the undo
step previews and the history itself.
* app/widgets/gimppreview-utils.c: added GimpUndoPreview to the
list of possible preview types.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs-menu.c
* app/gui/dialogs.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: removed the old and added the new undo
history to the dialog factory and the various dialog menus.
* app/widgets/gimpdnd.[ch]: don't warn if a GType has no
corresponding DND type. Instead, return FALSE from the function
that failed.
* app/widgets/gimppreview.c: check the return value of gimpdnd
functions. Not only add drag sources but also remove them when no
longer needed.
* app/widgets/gimpselectioneditor.h: removed unneeded inclusion of
"gui/gui-types.h".
2003-02-14 Michael Natterer <mitch@gimp.org>
Fixed most of the bugs the Script-Fu logo scripts triggered:
* app/core/gimpdrawable-bucket-fill.[ch]
(gimp_drawable_bucket_fill): added "gboolean do_seed_fill"
parameter instead of assuming TRUE.
(gimp_drawable_bucket_fill_full): moved "color" and "pattern"
parameters to the end.
* app/tools/gimpbucketfilltool.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimpdrawablelistview.c: changed accordingly.
* tools/pdbgen/pdb/misc_tools.pdb: only pass TRUE if the selection
is empty. Restores old PDB behaviour.
* app/core/gimpimage-undo.c (gimp_image_undo_group_end): return
early if gimage->undo_on is FALSE. Fixes bogus criticals.
* app/core/gimpimage.c (gimp_image_add_[layer|channel|vectors]):
clamp the passed position to sane values before calling
gimp_container_insert() (Scripts adding layers at wrong indices
are broken but should not crash the core).
* tools/pdbgen/pdb/paint_tools.pdb: need to copy the relevant
paint parameters from the current context now that the paint
options are contexts themselves.
* tools/pdbgen/pdb/palette.pdb: removed useless includes.
(Mostly) fixed text PDB functions:
* app/text/gimptext-compat.[ch] (text_render): don't set
text->font_size = -1 but get the size from the PangoFontDescrition.
(text_get_extents): return the logical_rect, not the ink_rect
because the size of the created text layer will be the logical_rect.
* tools/pdbgen/pdb/text_tool.pdb: removed text_fontname_create()
utility function and the usage of pass_through and implement all
invokers in-place, using the correct parameters.
* plug-ins/script-fu/siod-wrapper.c: fixed BG-IMAGE-FILL compat
define so we can BG fill again. Cleaned up color handling code.
* plug-ins/script-fu/scripts/coolmetal-logo.scm
* plug-ins/script-fu/scripts/glossy.scm
* plug-ins/script-fu/scripts/land.scm
* plug-ins/script-fu/scripts/lava.scm
* plug-ins/script-fu/scripts/test-sphere.scm: use new gradient names.
* app/pdb/misc_tools_cmds.c
* app/pdb/paint_tools_cmds.c
* app/pdb/palette_cmds.c
* app/pdb/text_tool_cmds.c: regenerated.
2003-02-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-selection.[ch]
* app/tools/gimpblendtool.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimplevelstool.c
* app/tools/gimpthresholdtool.c
* app/tools/gimptransformtool.c: misc trivial changes and cleanup.
* app/widgets/gimppropwidgets.[ch]: added gimp_prop_unit_menu_new()
and removed the scale widget again.
* app/tools/gimptexttool.c: replaced the size scale entry with a
spinbutton and made the unit menu working.
* app/text/gimptext.c: increased the upper boundary for the font
size again now that we don't use a scale any longer.
2003-02-03 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: fixed the "TAB toggles
dialogs" feature.
(gimp_display_shell_get_event_coords,device_coords): CLAMP() all
extended axes to be safe against crappy XInput drivers and provide
default values for not existing axes.
2003-01-13 Michael Natterer <mitch@gimp.org>
* app/gui/brushes-menu.[ch]
* app/gui/buffers-menu.[ch]
* app/gui/channels-menu.[ch]
* app/gui/colormap-editor-menu.[ch]
* app/gui/dialogs-menu.[ch]
* app/gui/documents-menu.[ch]
* app/gui/file-open-menu.[ch]
* app/gui/file-save-menu.[ch]
* app/gui/gradient-editor-menu.[ch]
* app/gui/gradients-menu.[ch]
* app/gui/image-menu.[ch]
* app/gui/images-menu.[ch]
* app/gui/layers-menu.[ch]
* app/gui/palette-editor-menu.[ch]
* app/gui/palettes-menu.[ch]
* app/gui/patterns-menu.[ch]
* app/gui/qmask-menu.[ch]
* app/gui/toolbox-menu.[ch]
* app/gui/vectors-menu.[ch]: new files, one per GimpItemFactory,
containing the menu entries and their setup and update funcs.
* app/gui/brushes-commands.[ch]
* app/gui/patterns-commands.[ch]: removed because they contained
only update funcs.
* app/gui/Makefile.am: changed accordingly. Split the huge
SOURCES list in smaller ones for menus and dialogs.
* app/gui/menus.[ch]: removed the menu entries and setup funcs.
Added MENU_SEPARATOR() and MENU_BRANCH() macros to the header.
Made some utility functions public.
* app/display/gimpdisplayshell.[ch]
* app/gui/buffers-commands.[ch]
* app/gui/channels-commands.[ch]
* app/gui/colormap-editor-commands.[ch]
* app/gui/dialogs-commands.[ch]
* app/gui/documents-commands.[ch]
* app/gui/gradient-editor-commands.[ch]
* app/gui/gradients-commands.[ch]
* app/gui/images-commands.[ch]
* app/gui/layers-commands.[ch]
* app/gui/palette-editor-commands.[ch]
* app/gui/palettes-commands.[ch]
* app/gui/qmask-commands.[ch]
* app/gui/vectors-commands.[ch]: removed the update funcs.
* app/gui/plug-in-menus.[ch]: renamed plug_in_set_menu_sensitivity()
to plug_in_menus_update(). Cleanup.
* app/gui/paths-dialog.[ch]: added the <Paths> entries here
so they will go away together with these files.
* app/gui/dialogs-constructors.c
* app/gui/drawable-commands.c: removed useless #includes.
2003-01-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemlistview.c: pass the GimpItemListView as
"data" to the item_factory callbacks, not just a "Gimp" pointer.
* app/display/gimpdisplayshell.c: use
gtk_window_add_accel_group(), not gimp_window_add_accel_group()
because we now attach the menubar's accel group, which has the
GimpDisplay as callback data.
* app/display/gimpdisplayshell-callbacks.c: pass the GimpDisplay
as "popup_data" to *_item_factory_popup_with_data().
* app/gui/channels-commands.c
* app/gui/drawable-commands.c
* app/gui/layers-commands.c
* app/gui/vectors-commands.c: changed accordingly.
* app/widgets/gimpwidgets-utils.[ch]: removed
gimp_window_[add|remove]_accel_group() and
gimp_widget_get_callback_context() because they were evil hacks
which are no longer needed now that all item_factories have proper
callback data (no just Gimp pointers).
2003-01-10 Sven Neumann <sven@gimp.org>
* app/app_procs.c (app_init)
* app/core/gimp.c (gimp_set_config): delayed the activation of
gimprc-autosave so we don't write the monitor resolution obtained
from GDK back to the gimprc on each startup.
* app/gui/gui.c (gui_get_screen_resolution): round values to get
rid of rounding errors introduced earlier. Looks better in the
prefs dialog.
* app/display/gimpdisplayshell-scale.c (gimp_display_shell_scale):
merged fix for bug #94979 from stable branch. Go even further and
don't limit the zoom ratio between 1:16 and 16:1.
* app/display/gimpdisplayshell.c (gimp_display_shell_new): merged
fix for bug #103030 from stable branch.
2003-01-10 Michael Natterer <mitch@gimp.org>
Move away from creating all item_factories statically in
menus_init() but create a new one for each place where one is
needed:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpmenufactory.[ch]: new factory which creates and
configures the GimpItemFactories it knows about on-the-fly.
* app/widgets/gimpitemfactory.[ch]: added
gimp_item_factory_update() which calls the "update_func". Added
"gboolean update_on_popup" so item_factories can be configured to
require manual updates (used for the <Image> factory).
* app/gui/menus.[ch]: create a "global_menu_factory" and register
all menus we have with it. Added various setup functions which
do stuff like adding the "Open Recent" menu or reorder plug-in
menu entries. Removed the debugging stuff...
* app/gui/Makefile.am
* app/gui/debug-commands.[ch]: ...and added it here.
* app/gui/gui.c: create the <Toolbox>, the popup-<Image> and the
<Paths> factories here because they are still global.
* app/gui/plug-in-menus.[ch]: changed the "image_factory"
parameters to "item_factory" and create/update the entries for the
passed item_factory only. Makes the whole stuff much more
straightforward.
* app/plug-in/plug-ins.c: don't call plug_in_make_menu().
* app/display/gimpdisplay.[ch]
* app/display/gimpdisplayshell.[ch]: added "menu_factory" and
"popup_factory" parameters to gimp_display_new() and
gimp_display_shell_new(). Create the menubar_factory and the
qmask_factory dynamically. Pass the shell, not a Gimp to the QMask
callbacks. Changed gimp_display_shell_set_menu_sensitivity() to
gimp_display_shell_menu_update() and don't call it directly (it's
a GimpItemFactory update_func now). Call gimp_item_factory_update()
on the resp. factories instead.
* app/gui/qmask-commands.c
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpimagemaptool.c: changed accordingly.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpbrushfactoryview.[ch]
* app/widgets/gimpbufferview.[ch]
* app/widgets/gimpcolormapeditor.[ch]
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdatafactoryview.[ch]
* app/widgets/gimpdialogfactory.[ch]
* app/widgets/gimpdock.c
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpdocumentview.[ch]
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpimageview.[ch]
* app/widgets/gimpitemlistview.[ch]
* app/widgets/gimppaletteeditor.[ch]: pass around lots of
GimpMenuFactory pointers and menu_identifiers so all views can
create their item_factories themselves. Unref the factories when
they are no longer needed because they belong to the views now.
* app/gui/dialogs-commands.c
* app/gui/dialogs-constructors.c
* app/gui/dialogs.c
* app/gui/brush-select.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c: changed accordingly.
* app/gui/file-dialog-utils.[ch] (file_dialog_new): require
menu_factory and menu_identifier parameters.
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: removed file_*_dialog_menu_init()
(they went to menus.c as setup_funcs). Added file_*_dialog_set_type()
and moved the <Load> and <Save> factory callbacks to file-commands.c
* app/gui/file-commands.[ch]: changed accordingly.
* app/gui/view-commands.c: changed the statusbar, menubar, rulers
and guides callbacks to do their job only if the setting has
actually changed. Don't update whole item factories afterwards.
Instead, just change the state of the items that actually need
update.
Unrelated:
* app/core/gimpchannel.c (gimp_channel_init): set "bounds_known"
and friends to FALSE since we don't know that the new channel will
be empty (fixes QMask and probably other stuff).
* app/gui/image-commands.c
* app/gui/vectors-commands.c: cleanup.
2003-01-10 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.c: fixed a compiler warning.
* plug-ins/gfig/gfig.c: fixed preview code so that the plug-in is
at least a bit useful again. Misc minor cleanups, still a mess.
2003-01-08 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.c (gimp_statusbar_init): work around a
canvas size bug by setting an empty text to the progressbar.
2003-01-07 Michael Natterer <mitch@gimp.org>
Fixed bug #13296:
* app/display/gimpdisplayshell.c (gimp_display_shell_shrink_wrap):
don't do evil stuff but simply call gtk_window_resize(). Gtk+ will
automatically place the window onscreen if it would be invisible
after resizing.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_configure): don't call
gimp_dislpay_shell_scale_resize() to avoid recursion but do the
two needed calls manually.
2003-01-05 Manish Singh <yosh@gimp.org>
* many files in app, modules and libgimp*: cleanup, removed unecessary
G_OBJECT() casts. Should do the same for plug-ins, when more of them
get undeprecated.
2003-01-03 Sven Neumann <sven@gimp.org>
* configure.in: bumped the version number to 1.3.12.
* app/display/Makefile.am
* app/display/gimpdisplayshell-cursor.[ch]
* app/display/gimpdisplayshell-title.[ch]
* app/display/gimpdisplayshell-transform.[ch]: new files with code
that used to live in gimpdisplayshell.c.
* app/display/gimpdisplay-foreach.c
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-selection.c
* app/display/gimpdisplayshell.[ch]
* app/tools/gimpbezierselecttool.c
* app/tools/gimpcroptool.c
* app/tools/gimpdrawtool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimpmovetool.c
* app/tools/gimptool.c: changed accordingly.
2003-01-01 Sven Neumann <sven@gimp.org>
* app/gui/menus.c (image_entries): changed some menu entries as
suggested in bug #101974.
* app/display/gimpdisplayshell.c: changed accordingly.
2003-01-01 Hans Breuer <hans@breuer.org>
* libgimpbase/gimpdatafiles.c : when checking for
'excecutable' make sure it is a regular file too
(on win32 even directories carry the IXUSR flag)
* app/app_procs.h : there is still no #warning with
msvc, special case to make it build with non GCC
* makefile.msc */makefile.msc */*/makefile.msc : updated
* app/gui/user-install-dialog.c : get prototype for mkdir
* libgimpwidgets/libgimp-glue.c : make it compile without
LT_RELEASE being defined
* modules/module.def : removed
modules/Makefile.am : no export file needed when
functions get exported by G_MODULE_EXPORT
2002-12-29 Sven Neumann <neo@wintermute>
* configure.in: check for app/core/gimp.c instead of etc/gimprc.in
which no longer exists.
* app/gui/user-install-dialog.c: use the term Folder instead of
Directory (fixes bug #102016).
2002-12-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new): fixed
ascii-art to match current widget hierarchy.
* app/display/gimpdisplayshell-handlers.c: fixed typos so we
actually connect to notify::monitor-[xy]resolution. Expose and
flush the display in the handler so the resolution change becomes
visible.
2002-12-14 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]
(gimp_display_shell_set_menu_sensitivity): renamed paramater
"update_popup" to "popup_only" because it's less confusing. Fixed
the function to update the popup correctly for shell = NULL.
2002-12-14 Michael Natterer <mitch@gimp.org>
Changed menubar showing/hiding to work like rulers and statusbar:
* app/config/gimpconfig-blurbs.h
* app/config/gimpdisplayconfig.[ch]: renamed "menu_bar_per_display"
to "show_menubar". Removed GIMP_PARAM_RESTART flag.
* app/display/gimpdisplayshell.[ch]: chaged shell->item_factory to
shell->menubar_factory plus shell->popup_factory and always create
both of them. Added "gboolean update_popup" to
gimp_display_shell_set_menu_sensitivity() and call it recursively
with update_popup == TRUE if the display it is called for is the
active one.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-callbacks.c: changed accordinly.
* app/gui/gui.c: ditto. Set the menu sensitivity of new displays.
* app/gui/menus.c: added "<Image>/View/Toggle Menubar" menu item.
Moved some factory initialization code from gimpdisplayshell.c
here.
* app/gui/view-commands.[ch]: added
view_toggle_menubar_cmd_callback(). Update the menu sensitivity
manually in all callbacks which don't call gimp_image_flush().
* app/gui/preferences-dialog.c (prefs_dialog_new): moved the "Show
Menubar" toggle to the "Appearance" frame of the "Image Windows"
page. Added an own frame for the display zoom/scaling settings.
(preferences_dialog_create): Attach config_copy and config_orig
using g_object_set_data_full() instead of just g_object_set_data()
plus a g_object_weak_ref().
(prefs_default_resolution_callback): set the resolution for both
fields of the "size_sizeentry" instead of setting it for "x"
twice.
2002-12-10 Michael Natterer <mitch@gimp.org>
The unbelievable happened: a menu bar per display (optionally)
* app/widgets/gimpitemfactory.[ch]: Added the possibility to have
more than one item factory per <Prefix>. Added
gimp_item_factories_set_foobar() variants of all functions which
set menu item properties (label, sensitive, ...). Removed
the #ifndef ENABLE_NLS code since that's no longer possible.
* app/widgets/gimptoolbox.c: made it robust againt the <Image>
factory not existing at the time of toolbox creation.
* app/config/gimpconfig-blurbs.h
* app/config/gimpdisplayconfig.[ch]: added boolean
"menu_bar_per_display" property.
* app/gui/preferences-dialog.c: added a toggle for the new option.
* app/gui/menus.[ch]: added menus_get_new_image_factory() as
temporary solution. Will add a GimpMenuFactory which creates the
item factories soon.
* app/display/gimpdisplayshell.c: add the menu bar if requested.
Changed widget packing slightly for the menu bar case.
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
Currently there is no right-click popup menu when we have a menu
bar. This will change soon.
* app/gui/file-dialog-utils.c
* app/gui/gui.c: use gimp_item_factories_set_foo().
* app/gui/channels-commands.c
* app/gui/dialogs-commands.c
* app/gui/dialogs-constructors.c
* app/gui/drawable-commands.c
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/image-commands.c
* app/gui/layers-commands.c
* app/gui/plug-in-commands.c
* app/gui/select-commands.c
* app/gui/tools-commands.c
* app/gui/vectors-commands.c
* app/gui/view-commands.c: per-display item factories pass the
GimpDisplay as user_data to callbacks, not a Gimp. Changed all
return_if_no_foo() macros to handle both cases.
Cleaned up the plug-in menu stuff:
* app/plug-in/plug-in-types.h: removed PlugInMenuEntry type.
* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_add() as
counterpart to plug_ins_proc_def_remove(). Added
plug_ins_locale_domain() as counterpart to plug_ins_help_path().
Remember the locale domains just as the help paths. Changed
plug-in initialization so that their menus can be created multiple
times.
* app/plug-in/plug-in.[ch]: use plug_ins_proc_def_add() instead of
doing it manually.
* app/gui/plug-in-menus.[ch]: added plug_in_menus_init() which
just registers the locale domains. Changed plug_in_make_menu() to
take a list of proc_defs, not plug_ins_defs so it can be used
after plug-in query.
2002-12-06 Sven Neumann <sven@gimp.org>
* app/paint/gimppaintcore.c: no need to include app_procs.h here.
* app/display/gimpdisplay-foreach.c (gimp_displays_dirty)
(gdisplays_check_valid): don't use the global the_gimp. Removed
inclusion of app_procs.h.
2002-12-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c (render_image_tile_fault):
removed useless assignments.
* plug-ins/common/aa.c: removed wrong assertions that caused the
plug-in to crash on images with odd width or height (#100344).
Added support for RGB images as well as alpha channel while I was
on it.
2002-12-03 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolorbutton.c: named the menu separator
"/fg-bg-separator", not just "/---".
* app/widgets/gimpcolorpanel.[ch]: added a GimpContext pointer to
get FG/BG from. Don't use "the_gimp" and don't include
"app_procs.h". Added gimp_color_panel_set_context(). Hide the
FG/BG menu entries if we have no context.
* app/gui/channels-commands.c
* app/gui/preferences-dialog.c
* app/gui/qmask-commands.c
* app/display/gimpdisplayshell.c: set the color_panel's context.
2002-11-30 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: no need to include "appenv.h"
* app/tools/gimpinktool.c: pass InkOptions as user_data to the
ink_type_update() callback so we don't need to get them from
"the_gimp". Removed inclusion of "app_procs.h".
2002-11-25 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.[ch]: added gimp_config_diff()
which returns the difference beween two GimpConfig objects
as a GList of GParamSpecs.
* app/config/gimpconfig-params.c (gimp_param_color_cmp): compare
the colors as integers to get rid of rounding foobar.
* app/config/gimpconfig-serialize.c: use gimp_config_diff().
* app/display/gimpdisplayshell-handlers.c: only need to call
gimp_display_shell_scale_setup() on resolution change if the
display is not in dot-for-dot mode.
* app/display/gimpdisplayshell.c: changed a separator in the
padding color menu.
* app/gui/dialogs.c: made the prefs dialog a singleton again.
* app/gui/preferences-dialog.c: Should be fully functional again:
Apply GIMP_PARAM_CONFIRM properties on "OK". Save gimprc on "OK".
Parse a temporaty GimpRc on dialog creation to get the current
GIMP_PARAM_RESTART values. Use gimp_config_diff() for all config
comparisons.
2002-11-24 Michael Natterer <mitch@gimp.org>
* app/config/gimpdisplayconfig.c: removed GIMP_PARAM_RESTART from
"marching-ants-speed".
* app/display/gimpdisplayshell-selection.[ch]: removed the "speed"
parameter from the constructor and get the speed from
GimpDisplayConfig when starting the ants.
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
* app/display/gimpdisplayshell-handlers.c: connect to
notify::marching-ants-speed and restart the ants in the handler.
* app/gui/preferences-dialog.c: Added an own frame for the
canvas padding color. Even more cleanup.
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/preferences/image-title.png: new image
for the new page. copied image-windows.png
2002-11-23 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.[ch]: removed
gimp_config_values_equal().
* app/config/gimpconfig-serialize.c
* app/config/gimpconfig.c: use g_param_values_cmp() instead so
our registered compare methods are used.
* app/config/gimpdisplayconfig.[ch]: added "canvas_padding_mode"
and "canvas_padding_color" properties.
* app/display/display-enums.[ch]: added enum GimpDisplayPaddingMode
which can be one of { theme, light check, dark check, custom }.
* app/display/gimpdisplay.h
* app/display/gimpdisplay-handlers.c: removed cached monitor
resolution values...
* app/display/gimpdisplayshell.[ch]: ...and added them here. Added
padding state as in GimpDisplayConfig. Added utility function
gimp_display_shell_set_padding() which hides all the details.
Added the new padding modes to the padding color button's context
menu.
* app/display/gimpdisplayshell-callbacks.[ch]: don't fiddle
with colors manually but use gimp_display_shell_set_padding()
in realize() and in the color button callbacks.
* app/display/gimpdisplayshell-handlers.c: connect to
notify::monitor-[xy]resolution and
notify::canvas-padding-[mode|color] and update accordingly.
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_color_button_new().
* app/widgets/gimpdialogfactory.[ch]: added
gimp_dialog_factories_session_clear() (unimplemented).
* app/gui/preferences-dialog.c: added widgets for padding mode and
color. Removed some callbacks by connecting the functions they
called directly. Cleanup.