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.
2002-11-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: keep a pointer to the
nav_ebox in the GimpDisplayShell struct.
* app/display/gimpdisplayshell-handlers.c: connect to
notify::navigation-preview-size and set the button insensitive for
GIMP_PREVIEW_SIZE_NONE. Also destroy an existing nav_popup so it
will be automatically re-created on the next click. Connect to
notify::image-title-format and notify::image-status-format and
update them accordingly.
* app/display/gimpnavigationview.c: don't try any voodoo in
gimp_navigation_view_init(). Removed the notify handler.
Set the popup's size in gimp_navigation_view_new_private().
* app/gui/preferences-dialog.c: removed the #if 0'ed combo boxes
and added an own sub-page for the image title and status format.
Select the possible values using a GtkTreeView. Some more
cleanup.
2002-11-21 Sven Neumann <sven@gimp.org>
* app/config/gimpdisplayconfig.[ch]
* app/config/gimpguiconfig.[ch]: moved navigation_preview_size to
GimpDisplayConfig.
* app/gui/preferences-dialog.c: offer the full choice of
GimpPreviewSizes for the navigation preview size.
* app/display/gimpnavigationview.c: multiply the preview size by 3
to get reasonable values. Added some broken code that connects to
notify::navigation-preview-size.
* etc/gimprc.in: updated accordingly.
2002-11-21 Michael Natterer <mitch@gimp.org>
* app/base/tile-cache.[ch]: added tile_cache_init() and
tile_cache_exit() as public functions.
* app/base/base.c: call them. Connect to GimpBaseConfig's
notify::tile-cache-size.
* app/core/gimpimage.c: connect to notify::transparency-type and
notify::transparency-size and call
gimp_image_invalidate_layer_previews() in the callback.
* app/display/gimpdisplay-foreach.[ch]: removed
gdisplays_expose_full().
* app/display/gimpdisplayshell-handlers.c: connect to
notify::transparency-type and notify::transparency-size and expose
the shell in the callback.
* app/display/gimpdisplayshell-render.[ch]: added render_init()
and render_exit() functions and connect to
notify::transparency-type and notify::transparency-size for
setting up the render buffers.
* app/gui/gui.c: call the new functions instead of render_setup().
Connect to notify::show-tool-tips.
* app/gui/preferences-dialog.c: copy values between the global
config object and its local clone only when they have changed.
Wrap setting of lots of values in g_object_[freeze|thaw]_notify().
Added lots of mnemonics.
* app/gui/resolution-calibrate-dialog.c: added mnemonics.
* app/widgets/gimppropwidgets.c: g_object_set() the values edited
by the gimp_prop_coordinates() much less often by remembering the
old values and setting them only when they have changed.
2002-11-02 Sven Neumann <sven@gimp.org>
* app/display/gimpprogress.c (gimp_progress_update): force an update
of the progress bar (#97459, reported by Akkana).
2002-10-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-filter.[ch]: removed the
ColorDisplayNode struct entirely. GimpDisplayShell->filters is now
just a GList of GimpColorDisplay objects.
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-render.c: changed accordingly.
2002-10-20 Michael Natterer <mitch@gimp.org>
Ported module loading to GTypeModule, getting rid of all own
module registering/bookkeeping stuff for color selectors and
display filters. The modules now simply register GimpColorSelector
and GimpColorDisplay subclasses, the list of registered subclasses
can then be obtained calling g_type_children() on the abstract
base classes.
This is work in progress and just the first working state after I
started breaking everything...
* app/gui/color-select.[ch]
* libgimp/gimpcolordisplay.h
* libgimp/gimpcolorselector.h: removed.
* app/gui/Makefile.am
* libgimp/Makefile.am: changed accordingly.
* libgimp/gimpmodule.h: massively simplified. All voodoo is gone.
* libgimpwidgets/gimpcolordisplay.[ch]
* libgimpwidgets/gimpcolorselector.[ch]: new abstract base classes
which need to be subclassed by modules.
* libgimpwidgets/gimpcolorselect.[ch]: the built-in color selector
from app/gui/color-select.* ported to be a GimpColorSelector
subclass.
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetsmarshal.list
* libgimpwidgets/gimpwidgetstypes.h: changed accordingly.
* app/core/gimpmoduleinfo.[ch]: made it a GTypeModule subclass
* app/core/gimpmodules.c: changed accordingly.
* app/core/gimpcontainer.c
* app/core/gimplist.c: HACKED around to allow GimpLists of
GObjects (not GimpObjects). This is EEKy, so I will either make
gimp->modules a simple GList and revert this bit of change, or
allow GObjects all over the place in GimpContainer land...
* app/display/gimpdisplayshell-filter.[ch]
* app/gui/color-notebook.c: removed all module stuff and use
g_type_children() to get the list of available color_selectors
and display_filters.
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-render.c
* app/gui/module-browser.c: changed accordingly.
* app/gui/gui.c: ref the built-in color selector's class before
the modules are queried so it appears first in the list of
GimpColorSelector's children.
* modules/Makefile.am: build the water color selector again.
* modules/cdisplay_gamma.c
* modules/cdisplay_highcontrast.c
* modules/colorsel_triangle.c
* modules/colorsel_water.c: ported them all to the new API.
* modules/gimpmodregister.[ch]: removed the old EMX module hack.
2002-10-14 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplay.[ch]: added convenience function
gimp_display_coords_in_active_drawable().
* app/tools/gimpcurvestool.c: indicate the possibility to pick color
values from the image by showing a color picker cursor. Made the
file selection dialog transient for the tool shell.
* app/tools/gimplevelstool.c: made the file selection dialog
transient for the tool shell.
2002-09-27 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: added new signal "reconnect"
which is emitted when the underlying image changes (happens on
"Revert"). Set the sensitivity of the new "Toggle QuickMask" menu
item. Don't configure the QMask button in gimp_display_shell_new().
* app/display/gimpdisplayshell-handlers.c (gimp_display_shell_connect):
configure the QMask button here so it's consistent after "Revert".
* app/display/gimpnavigationview.c: connect to the shell's
"reconnect" signal and update accordingly.
2002-09-02 Michael Natterer <mitch@gimp.org>
DND cleanup part 1:
* app/widgets/gimpdnd.[ch]: changed all gimp_dnd_*_dest_set() and
_unset() functions to _dest_add() and _dest_remove(). Switch from
using static arrays of GtkTargetEntries to dynamic GtkTargetLists.
The _add() and _remove() functions configure the drag dest
automatically if not already done, so there is no need to call
gtk_drag_dest_set() on the widget any more. Drag source cleanup
will follow...
Renamed silly function names gimp_gtk_* to gimp_dnd_*
* app/display/gimpdisplayshell.c
* app/tools/gimpblendtool.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimplistitem.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimppreview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptoolbox-color-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptoolbox.c
* app/gui/about-dialog.c
* app/gui/color-select.c
* app/gui/device-status-dialog.c
* app/gui/tool-options-dialog.c: changed accordingly. Removed
all calls to gtk_drag_dest_set() and their GtkTargetEntry tables.
* app/widgets/gimpchannellistitem.c: enabled some commented out
dnd code (which will not work since dnd needs more love...)
* app/widgets/gimpitemlistview.[ch]: added a third
"gboolean interactive" parameter to GimpItemNewFunc.
* app/gui/channels-commands.[ch]
* app/gui/layers-commands.[ch]
* app/gui/vectors-commands.[ch]: if the new_item_func is called
with "interactive == FALSE", don't pop up a dialog but silently
create a new item of the image's size.
* app/widgets/gimpdrawablelistview.c: use the new feature to allow
color and pattern drops to the "New" button, which creates a new
layer/channel filled with the color/pattern.
(special feature for drc ;-)
* app/widgets/gimppaletteeditor.c: fixed event handling so we see
the context menu again. Also, don't redraw on "expose", since
GtkPreview does that for us.
2002-08-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-render.c: allocate all temporary
render bufs and check bufs large enough for GIMP_PREVIEW_MAX_SIZE
(which is 1024). Fixes crashes with too large navigation previews.
2002-06-27 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.[ch]: removed gdisp->scale,
gdisp->dot_for_dot, the scaling marcos and the
gdisplay_[un]transform[_f]() functions.
* app/display/gimpdisplayshell.[ch]: added them here. Named the
transform functions gimp_display_shell_[un]transform_xy[_f]().
Made the gimp_display_shell_[un]transform_coords() functions copy
all values of the GimpCoords struct, not just x and y.
* app/display/gimpstatusbar.[ch]: keep a pointer to
GimpDisplayShell, not GimpDisplay.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c
* app/display/gimpdisplayshell-selection.c
* app/display/gimpnavigationview.c
* app/gui/image-commands.c
* app/gui/info-window.c
* app/gui/select-commands.c
* app/gui/view-commands.c
* app/tools/gimpbezierselecttool.c
* app/tools/gimpcroptool.c
* app/tools/gimpdrawtool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmagnifytool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimppathtool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpvectortool.c: changed accordingly.
* app/gui/layers-commands.c: if(gimage->selection_mask) is always
TRUE, use if(!gimp_image_mask_is_empty(gimage)) instead.
* app/tools/gimpfuzzyselecttool.[ch]: moved global variables
to the object struct.
2002-06-19 Michael Natterer <mitch@gimp.org>
Fix for #85202:
Updating the active tool's modifier state on GTK_ENTER_NOTIFY and
GTK_LEAVE_NOTIFY was a bad idea because this only works with
focus-follows-mouse. Instead, update it during the whole time the
canvas can receive key events, namely from FOCUS_IN until
FOCUS_OUT. As an ugly side condition, click-to-focus leads to
GDK_BUTTON_PRESS arriving before GDK_FOCUS_CHANGE(in).
* app/display/gimpdisplayshell-callbacks.[ch]: removed the
separate focus_in and focus_out callbacks and handle them in
gimp_display_shell_canvas_tool_events(). Moved tool state updating
from the ENTER/LEAVE code to FOCUS_CHANGE. Added an ugly static
variable "button_press_before_focus" and take care of the side
condition mentioned above.
* app/display/gimpdisplayshell.c: changed accordingly.
2002-06-08 Sven Neumann <sven@gimp.org>
* app/base/Makefile.am
* app/paint-funcs/Makefile.am: automake-1.6 seems to use yet another
variable to pass flags to the assembler (bug #84514). Define
AM_CCASFLAGS like AM_ASFLAGS to satisfy all versions of automake.
* configure.in
* all Makefiles: removed STRIP_BEGIN and STRIP_END since it's a
GNU make extension that we don't really need and newer versions of
automake don't seem to like it.
2002-05-24 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: copied some code from
gtk+/gtk/gtkmenubar.c:window_key_press_handler() which pops up the
<Image> menu on F10 (or whatever is configured in GtkSettings).
2002-05-15 Michael Natterer <mitch@gimp.org>
New feature: pressing <space> in the image window temporary
switches to the move tool (so that releasing <space> switches back
to the old tool).
* app/display/gimpdisplayshell.[ch]: added booleans
shell->space_pressed and shell->space_release_pending. Connect
more events to gimp_display_shell_events() so they can be blocked
there if needed.
* app/display/gimpdisplayshell-callbacks.c: beautified and
uglified at the same time:
beauty:
- moved the checks if gimp is busy or button1 is down to
gimp_display_shell_events() so they don't clutter
gimp_display_shell_canvas_tool_events().
- factored tool modifer updating out to a separate function.
- indentation/spacing cleanup.
ugly:
- added more static variables to track the state of <space>
- added the actual move tool toggling code.
2002-05-13 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.c commented out a warning in
initial_sub_region and a g_error() in combine_sub_region which
didn't expect to get chunks of pixels with a width of > 128
passed. I guess it was an assertion to ensure the integrity of
some higher level code (see gimpdisplay.c:
gimp_display_idlerenderer_callback()). The assertion went off
whenever we wanted to render a preview with a width of > 128,
which is however handled absolutely correctly by the two
functions. (fixes#26072)
* app/core/gimpcontext.c (gimp_context_get_by_type): unref objects
before returning them. Fixes our biggest memleak (whole images).
* app/display/gimpdisplay-handlers.c: commented out debugging
g_print()s which track the image's refcount.
2002-05-13 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: set the view's display to NULL
in "destroy". Fixes crash on closing the navigation dialog.
* app/gui/dialogs-constructors.c
* app/gui/menus.c: use GIMP_STOCK_NAVIGATION instead of
GIMP_STOCK_TOOL_MOVE. Use the new GIMP_STOCK_WARNING (see below)
for the error console.
* themes/Default/images/*.png
* themes/Default/images/tools/*.png: renamed all stock icons to
have the pixel size instead of "button" or "menu" in the name.
(e.g. stock-menu-scale.png -> stock-scale-16.png).
* libgimpwidgets/gimpstock.[ch]
* themes/Default/gtkrc
* themes/Default/imagerc
* themes/Default/images/Makefile.am: changed accordingly.
2002-05-11 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: connect to size allocations of
the navigation preview's parent container and resize it so it
takes all available space.
* app/widgets/gimppreview.[ch]: replaced magic values by public
#defines of GIMP_PREVIEW_MAX_SIZE and GIMP_PREVIEW_MAX_POPUP_SIZE.
Increased the maximum preview size to 1024. Don't call the virtual
get_size() function if preview->viewable is NULL but call
gimp_preview_real_get_size() directly.
* app/widgets/gimpbufferpreview.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpcontainermenu.c
* app/widgets/gimpdrawablepreview.c
* app/widgets/gimpimagepreview.c
* app/widgets/gimplistitem.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimpnavigationpreview.c: replaced magic values by
the new costants.
2001-05-11 Hans Breuer <hans@breuer.org>
* app/makefile.msc : add appconfig.lib. Statically
link libgimptool/gimptool.lib.
* app/main.c : use gimp_locale_directory()
* app/config/gimpconfig-utils.c : <string.h>
* app/config/makefile.msc : add gimpscanner
* app/core/gimpimagefile.c : some G_OS_WIN32 mess to get
mkdir() and chmod()
* app/display/gimpdisplayshell.c
app/plug-in/plug-in-progrss.c
app/tool/gimpcolorpickertool.c
app/tool/gimpcroptool.c
app/tool/gimpmeasuretool.c
app/tool/gimpperspectivetool.c
app/tool/gimprotatetool.c
app/tool/gimpscaletool.c
app/tool/gimpsheartool.c
app/tool/gimptransformtool.c
app/widgets/gimpcolormapeditor.c
app/widgets/gimpcolorpanel.c
app/widgets/gimptoolbox-color-area.c
add #ifdef __GNUC__ to avoid breaking on non standard
pragma #warning
* app/tools/makefile.msc : add gimptoolcontrol remove
tools-enum
* app/tools/tool_manager.c : need to include
libgimptool/gimptoolcontrol.h after core includes
otherwise we would compile without prototypes or
break miserably
* app/gui/plug-in-menus.c : replace LOCALEDIR with
gimp_locale_directory ()
* app/gui/preferences-dialog.c (prefs_notebook_append_page) :
only try to gdk_pixbuf_new_from_file() with a valid filename.
It should simply return NULL otherwise, but fails if the
filename is an empty string.
* app/paint-funcs/makefile.msc : add -FImsvc_recommended_pragmas.h
* app/widgets/gimpcolormapeditor.c : the 'row'
allocated needs to be 'xn * cellsize * 2' (to avoid
accessing unowned memory) not only width, which has
become allocation.width by someone commenting out
the correct size calculation
* app/widgets/gimpdialogfactory.c : varargs to macros
are GCCism or at least non standard. #define DEBUG
to g_print or nothing - without arguments - does fix
it somewhat dirty as the compiler needs to tolerate
the '(blah, foo, bar);' statement than
* app/widgets/makefile.msc : updated
* app/xcf/makefile.msc : add -FImsvc_recommended_pragmas.h
* etc/gimprc.win32 : use ';' to separate theme-path
* libgimpbase/gimpenv.c : #include <stdio.h>
for sprintf()
* app/widgets/gimpdnd.c (gimp_dnd_set_file_data) :
the passed in vals chunk is not always null-terminated
(at least not on win32). Use the length parameter too
to avoid reading junk filenames.
* libgimp/gimp.def : export gimp_image_get_name()
* libgimpbase/gimpbase.def : export gimp_locale_directory()
* libgimpbase/gimpenv.[ch] : added gimp_locale_directory ()
* libgimpbase/makefile.msc : define DATADIR and SYSCONFDIR
to empty string to let gimp find its files in the common
place (win32: relative to the top level gimp dir)
* plug-ins/common/pixelize.c : <string.h>
* plug-ins/flame/cmap.c : #include <glib.h> for g_random_int()
* plug-ins/makefile.msc : -FImsvc_recommended_pragams.h
and a little hack to give imagemap the prototypes it
desires without changing the lexed source
* themes/Default/images/makefile.msc : now added (see below)
* themes/Default/images/stock-button-reset.png : made it binary
2002-05-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.c: added a read-only property for the
display's image, so it can be retreived by the core, which
treats displays as simple GimpObjects.
* app/core/gimpcontext.c: made context->display an object
property, not just gpointer. Connect to the "remove" signal of
gimp->displays to get notified of disappearing displays. Removed
the EEKWrapper and get the display's gimage with g_object_get().
* app/widgets/gimpimagedock.[ch]: added image_dock->display_container
and require it being passed in the constructor. Do voodoo things
in the "image_changed" and "display_changed" callbacks to ensure
that the dock doesn't end up with no display even if the active
image has one. Added a style property for the image menu's preview
size.
* app/gui/dialogs-commands.c (dialogs_menu_update): set the
"View as List" and "View as Grid" items insensitive if the
other view type doesn't exist. Hide them if the view cannot
be classified as "list" or "grid" at all. Also hide the
"Preview Size" submenu if it's pointless for the view.
* app/gui/dialogs-constructors.c: added a special tab for the
navigation dialog. Will propbaby add dockable->stock_id to
generalize this kind of tab. Pass gimp->displays to
gimp_image_dock_new().
* app/gui/menus.c: reordered the "<Dialogs>" factory entries,
added more stock icons, cleanup.
* etc/gtkrc_user
* themes/Default/gtkrc: document usage of GimpImageDock's
"menu_preview_height" property.
2002-05-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: pack the preview's alignment
into the inner frame, not around it, so it looks like the other
dockables. Fixed popup window positioning. Tried to get rid of
insane scale_label allocation computation but failed. Left the
EEKy code there for further investigation.
2002-05-08 Michael Natterer <mitch@gimp.org>
Started to get rid of the gdisplays_foo() functions in
app/display/gimpdisplay-foreach.[ch]. Work in progress...
* app/core/gimp.[ch]: added the display list to the Gimp object
(as a GimpList of GimpObjects). This way we get more independent
from whether there is GUI or not, as gimp->displays will simply
be an empty list for the --no-interface case.
* app/display/gimpdisplay.[ch]: Removed the global "display_list"
and "display_num" variables. Use gimp->displays instead.
* app/display/gimpdisplay-foreach.[ch]: renamed most functions
from gdisplays_foo() to gimp_displays_foo() and pass them a Gimp
pointer.
* app/core/gimpimage.[ch]: added a "flush" signal.
* app/display/gimpdisplay-handlers.c: connect to "flush" and call
gimp_display_flush() in the callback.
* tools/pdbgen/pdb/display.pdb: use gimp_displays_flush(gimp)
here and only here.
* app/pdb/display_cmds.c: regenerated.
* app/app_procs.c
* app/gui/gui.c
* app/gui/preferences-dialog.c:
s/gdislays_foo()/gimp_displays_foo(gimp)/
* app/image_map.c
* app/undo_history.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-dnd.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell-scale.c
* app/gui/channels-commands.c
* app/gui/colormap-editor-commands.c
* app/gui/convert-dialog.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/offset-dialog.c
* app/gui/qmask-commands.c
* app/gui/select-commands.c
* app/gui/vectors-commands.c
* app/paint/gimpairbrush.c
* app/tools/gimpbezierselecttool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimpinktool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimplevelstool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimpposterizetool.c
* app/tools/gimprectselecttool.c
* app/tools/gimptexttool.c
* app/tools/gimpthresholdtool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpbufferview.c
* app/widgets/gimpchannellistview.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpdrawablelistitem.c
* app/widgets/gimpdrawablelistview.c
* app/widgets/gimpimageview.c
* app/widgets/gimpitemlistitem.c
* app/widgets/gimpitemlistview.c
* app/widgets/gimplayerlistitem.c
* app/widgets/gimplayerlistview.c
* app/widgets/gimpvectorslistview.c: replaced gdisplays_flush()
with calls to gimp_image_flush(gimage). Removed inclusion of
"display/gimpdisplay-foreach.h" from most files.
2002-05-08 Michael Natterer <mitch@gimp.org>
* app/core/gimp.h: removed unused commented out prototype.
* app/core/gimpimage.c (gimp_image_set_tattoo_state): fixed it
again after I have b0rked it when using vectors instead of paths.
* app/display/gimpdisplay.c: some comments and one more
g_return_val_if_fail().
* app/widgets/gimpimagedock.c: more fixes for the subtle
active_image <-> active_display difference.
* tools/pdbgen/pdb/display.pdb (gimp_display_delete): call
gimp_display_delete() instead of just destroying it's shell (eek).
* app/pdb/display_cmds.c: regenerated.
Added a special view type for the image list so we can implement
stuff like deleting images which are left over from crashed
plug-ins:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimageview.[ch]: new widget: a view on the image
container.
* app/gui/Makefile.am
* app/gui/images-commands.[ch]: new callbacks for it's context menu.
* app/gui/dialogs-constructors.c: use the new widget instead of
plain GimpContainerViews.
* app/gui/menus.c: added an item_factory for it.
2002-05-07 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/nav_window.[ch]: removed.
* app/display/Makefile.am
* app/display/display-types.h
* app/display/gimpnavigationview.[ch]: new widget partially based
on the removed nav_window.
* libgimpproxy/gimpproxytypes.h: regnenerated.
* app/display/gimpdisplay-foreach.[ch]: removed
gdisplays_nav_preview_resized(). The new config system will allow
us to get notified of changes.
* app/display/gimpdisplayshell.[ch]: added "scaled" and "scrolled"
signals.
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c: emit "scaled" and
"scrolled" appropriately. Removed nav_window stuff.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c
* app/gui/menus.c: made the navigation dialog dockable.
* app/gui/view-commands.c: changed the nav_dialog callback accordingly.
* app/gui/preferences-dialog.c
* app/gimprc.[ch]
* app/config/gimpguiconfig.[ch]: removed "nav_window_per_display"
as it's now a dockable and it's state is saved in sessionrc.
* app/widgets/gimpnavigationpreview.[ch]: added context sensitive
mouse cursors.
* app/widgets/gimpimagedock.c: made it capable of holding
display-related dialogs (like GimpNavigationView) by connecting
to the context's "display_changed" signal.
* app/widgets/widgets-types.h: removed inclusion of
"display/display-types.h".
* app/widgets/gimpbufferview.c
* app/widgets/gimpchannellistview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpdrawablelistitem.c
* app/widgets/gimpdrawablelistview.c
* app/widgets/gimpitemlistitem.c
* app/widgets/gimpitemlistview.c
* app/widgets/gimplayerlistitem.c
* app/widgets/gimplayerlistview.c
* app/widgets/gimppreview.c
* app/widgets/gimpvectorslistview.c: warn about inclusion of
"display/display-types.h".
2002-05-05 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimphelp.[ch]: removed...
* app/widgets/Makefile.am
* app/widgets/gimphelp.[ch]: ...and added here.
* app/widgets/widgets-enums.[ch]: added GimpHelpBrowserType here
as registered enum. Added an evil hack with GimpCursorType so
app/config/gimpguiconfig.h can include this file.
* app/widgets/gimpcursor.c: added an assertion because of the
changed GimpCursorType.
* app/config/gimpguiconfig.[ch]: added a property for the help
browser type.
* app/gimprc.c
* app/libgimp_glue.c
* app/gui/preferences-dialog.c
* tools/pdbgen/pdb/help.pdb
* app/pdb/help_cmds.c: regenerated.
Some nav_window cleanup before chopping:
* app/nav_window.[ch]: removed the old preview code and use
GimpNavigationPreviews only. Namespaceified all functions. Speak
in terms of GimpDisplayShell, not GimpDisplay. Lots of internal
cleanup.
* app/gui/gui-types.h: removed NadiagtionDialog here...
* app/display/display-types.h: ...and added it here.
* app/display/gimpdisplayshell-callbacks.[ch]: added a callback
for the navigation button and call nav_window_show_popup() from there.
* app/display/gimpdisplayshell.c: free shell->nav_dialog
unconditionally, connect to the new callback.
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c
* app/gui/view-commands.c: changed accordingly.
* app/widgets/gimppreview.c (gimp_preview_set_viewable): the
assertion introduced recently was too tight, breaking
GimpNavigationPreview. Changed it to do an "is a" check, not exact
preview type matching.
* app/widgets/gimpimagepreview.c: added quick-hack support for
xres != yres.
* app/widgets/gimpnavigationpreview.[ch]: made
gimp_navigation_preview_grab_pointer() public so the nav_window
can call it.
Unrelated:
* app/display/gimpdisplay.c: removed the gui/ dependency from this
file by removing info_window stuff.
* app/display/gimpdisplayshell.c (gimp_display_shell_flush): update
the info_window here.
* app/gui/dialogs-constructors.c (dialogs_indexed_palette_new): call
gimp_dockable_set_context() like all other constructors.
* app/undo.c
* app/paint/gimppaintcore.h: some more include cleanup.
2002-04-14 Michael Natterer <mitch@gimp.org>
Use UTF-8 encoded escaped URIs for GimpImage and GimpImageFile.
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/file/file-utils.[ch]: port everything to using URIs, removed
file_open_absolute_filename() and added file_utils_filename_to_uri()
instead.
* app/core/gimpimage.[ch]: added gimp_image_[get|set]_uri() which
works like the old gimp_image_[get|set]_filename().
Changed gimp_image_[get|set]_filename() to call uri conversion
functions.
* app/app_procs.c: removed lots of code and use the new uri
functions to open images passed on the command line.
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c: changed accordingly.
* app/nav_window.c
* app/undo_history.c
* app/display/gimpdisplayshell.c
* app/gui/info-window.c
* app/gui/palette-import-dialog.c
* app/tools/gimpbycolorselecttool.c
* app/widgets/gimpcontainerview-utils.c:
s/gimp_image_get_filename()/gimp_image_get_uri()/g. Need to add
a utility function which returns the basename in unescaped UTF-8.
* app/gui/file-commands.c
* app/widgets/gimpdocumentview.c: use "uri", not "filename" as
variable name where appropriate.
* app/gui/menus.c: some broken code for the "Open Recent" items,
will be fixed soon...
* app/widgets/gimpdnd.c: evil (!!!) hackery to convert dropped
filenames to uris.
* tools/pdbgen/pdb/fileops.pdb: changed accordingly. Clarified
the meaning of the "raw_filename" parameter.
* tools/pdbgen/pdb/message.pdb: use g_message("%s", message),
*not* g_message(message).
* app/pdb/fileops_cmds.c
* app/pdb/message_cmds.c
* libgimp/gimpfileops_pdb.c: regenerated.
2002-04-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-crop.c: reordered some lines, no logic
changed.
* app/core/gimplayer.[ch]: made gimp_layer_pick_correlate()
return a gboolean, not gint.
* app/display/gimpdisplayshell.c
* app/gui/layers-commands.[ch]
* app/gui/menus.c: added "<Image>/Layers/Crop Layer" which resizes
the active layer to the current selection's bounds, just as
"<Image>/Image/Crop Image"
2002-03-20 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.[ch]: badly chopped into the new files below.
Pass around much more "PlugIn" and "Gimp" pointers instead of
using "current_plug_in" and "the_gimp". Needs much more hacking
though... :(
* app/plug-in/Makefile.am
* app/plug-in/plug-in-def.[ch]
* app/plug-in/plug-in-params.[ch]
* app/plug-in/plug-in-progress.[ch]
* app/plug-in/plug-ins.[ch]: new files.
* app/gui/Makefile.am
* app/gui/plug-in-commands.[ch]
* app/gui/plug-in-menus.[ch]: ditto.
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-types.h: changed accordingly.
* app/pdb/procedural_db.c: changed procedural_db_destroy_args()
so it can be used from plug_in_args_destroy(). Fixed a parasite
memory leak (or introduced a new SEGV, we'll see...).
* app/display/Makefile.am: another "truly ugly hack" until the
plug-in menu stuff is chopped even more...
* app/gui/commands.[ch]: removed filters_repeat_cmd_callback() here,
it is now in plug-in-commands.[ch].
* app/widgets/gimpitemfactory.[ch]: removed all gimp_menu_item_*()
hacks. We have a GimpItemFactory available in most cases we used
to call this functions, and can use gimp_item_factors_from_path()
in all other cases. The item factory stuff needs more work
anyway...
* app/app_procs.c
* app/gimphelp.c
* app/display/gimpdisplayshell.c
* app/gui/file-dialog-utils.c
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]
* app/gui/gui.c
* app/gui/menus.c
* app/gui/paths-dialog.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly (includes,
renamed functions and gimp_menu_item_*() removal).
* app/pdb/fileops_cmds.c
* app/pdb/help_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
2002-03-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: pass an additional "Gimp"
pointer to gimp_display_shell_set_menu_sensitivity() so we can
correctly set the state of some items even without a display.
Set the sensitivity of much more items. Never set submenus
insensitive so the user can always browse the whole menu
(according to the GNOME HIG).
* app/image_map.c
* app/display/gimpdisplay.c
* app/gui/gui.c: changed accordingly.
* app/gui/view-commands.[ch]: added a callback for the display
filters dialog because display releted dialogs are going to
be handled different soon.
* app/gui/menus.c: use the new callback.
2002-03-19 Michael Natterer <mitch@gimp.org>
* app/tools/tools-types.h: added enum GimpMotionMode which can be
one of { EXACT, HINT, COMPRESS }.
* app/tools/gimptool.[ch]: removed tool->perfectmouse and added
tool->motion_mode. Default to GIMP_MOTION_MODE_HINT.
* app/tools/gimpinktool.c
* app/tools/gimppainttool.c: set GIMP_MOTION_MODE_EXACT.
* app/tools/gimpfuzzyselecttool.c: set GIMP_MOTION_MODE_COMPRESS.
* app/tools/gimpeditselectiontool.[ch]: ditto. Removed
gtkutil_compress_motion().
* app/display/gimpdisplayshell-callbacks.c: look at
active_tool->motion_mode and perform pointer grabbing and motion
compression accordingly. Also, don't request motion hints from
XInput devices because the wacom driver sends crap (fixes#6901).
This change also brings hints and ordinary motions back in sync
albeit compression, so IMHO it also fixes#68542 and #22375, but
this needs further investigation.
2002-03-17 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.[ch]: new function to set the sensitivity
of an option_menu.
* app/base/base-enums.[ch]: register and describe GimpHistogramChannel.
* app/core/Makefile.am
* app/core/core-enums.[ch]: build with gimp-mkenums, added core-enums.c
to CVS, added descriptions for GimpPreviewSize.
* app/display/Makefile.am
* app/display/display-enums.[ch]: build with gimp-mkenums, added
display-enums.c to CVS, added descriptions for GimpCursorMode.
* app/gui/preferences-dialog.c: more GimpEnumMenus.
* app/tools/gimpcurvestool.c
* app/tools/gimphistogramtool.c
* app/tools/gimplevelstool.c: use a GimpEnumMenu for the Channel menu.
Allow alpha channel in HistogramView. These tools needs more work...
2002-03-16 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-filter-dialog.c: treeviewized
and undeprecated.
* app/widgets/Makefile.am
* app/widgets/gimpconstrainedhwrapbox.[ch]: removed this hack.
* app/widgets/gimpcontainergridview.[ch]: added "rows" and
"columns" fields, connect to the viewport's "size_allocate" signal
and set the size_request of the wrap_box in the callback.
2002-03-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: renamed shell->cd_list to
shell->filters and shell->cd_ui to shell->filters_dialog.
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-filter.c
* app/display/gimpdisplayshell-render.c
* app/gui/dialogs-constructors.c: changed accordingly.
* app/display/gimpdisplayshell-filter-dialog.c: cleaned up the GUI.
Still deprecated GtkCLists around...
* app/widgets/gimpeditor.[ch]: added gimp_editor_new().
* app/gui/image-commands.[ch]
* app/gui/menus.c: added "<Image>/Image/Crop Image" because i was
sick of clicking 20 times just to crop to the current selection.
* themes/Default/gtkrc: removed "gimp-dock-style" and changed
"gimp-gtk-icons" to "gimp-default-style". Set our widget class
style property defaults there.
2002-03-14 Michael Natterer <mitch@gimp.org>
Re-enabled the display filters. They work exactly the same way
as before except for the color_area pseudo-display. More stuff
to come...
* app/display/Makefile.am: build them again.
* app/display/gimpdisplayshell-filter-dialog.[ch]
* app/display/gimpdisplayshell-filter.[ch]: changed to the new
namespace, work on GimpDisplayShell instead of GimpDisplay.
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell.[ch]: changed accordingly.
* app/gui/dialogs-constructors.c: enabled the dialog constructor.
* app/gui/gui.c: call the init() function.
* app/gui/menus.c: enabled the menu entry, but moved it to
<Image>/View. Moved "Undo History..." to <Image>/Image.
* modules/Makefile.am: build and install the modules.
* modules/cdisplay_gamma.c
* modules/cdisplay_highcontrast.c: made them compile with minimal
changes.
Unrelated:
* app/undo_history.c: connect to the image's "disconnect", not
"destroy" signal.
* app/tools/gimpselectiontool.c: mask out the irrelevant parts of
the "state" passed to the modifier_key() func, so tool_options
button toggling works with other modifiers (e.g. num_lock)
pressed.
2002-03-14 Michael Natterer <mitch@gimp.org>
* app/core/gimptoolinfo.c: g_strdup() the stock_id passed to
gimp_tool_info_new() because the caller's memory may disappear
after registering the tool (tool modules).
Made a GimpDock out of the toolbox:
* app/gui/Makefile.am
* app/gui/color-area.[ch]
* app/gui/indicator-area.[ch]
* app/gui/toolbox.[ch]: removed...
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimptoolbox-color-area.[ch]
* app/widgets/gimptoolbox-indicator-area.[ch]
* app/widgets/gimptoolbox.[ch]: ...and added here.
* app/widgets/gimpdock.[ch]: don't set a minimal width. Added a
"destroy_if_empty" boolean so we can prevent destruction of the
toolbox if it's last dockable is removed. Added gimp_dock_construct()
which is called from GimpImageDock and GimpToolbox.
* app/widgets/gimpimagedock.[ch]: Default to not showing the image
menu, set a minimal width here, misc. minor cleanup.
* app/widgets/gimpdockbook.c: some more GIMP_IS_IMAGE_DOCK()
checks, fixed dnd widget creation.
* app/widgets/gimpdialogfactory.[ch]: changed
gimp_dialog_factories_toggle() to take just the toolbox_factory as
parameter. When restoring the session use the created dock's
dialog factory to create dockables, not the the factory we
created the dock from (for the toolbox).
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
* app/gui/dialogs.[ch]: create an own dialog factory for the toolbox
and set dialogs_toolbox_new() as it's new_dock_func.
* app/gui/dialogs-constructors.[ch]: changed dialogs_toolbox_get()
accordingly.
* app/gui/dialogs-commands.[ch]: added dialogs_show_toolbox(), ckeck
if a dock is really a GimpImageDock before casting.
* app/gui/gui.c
* app/gui/menus.c
* app/widgets/gimppaletteeditor.c: changed accordingly.
* app/gui/color-notebook.c
* app/gui/color-select.c
* app/gui/colormap-dialog.c
* app/gui/palette-editor-commands.c: removed useless inclusion of
"gui/color-area.h".
* themes/Default/gtkrc: set "gimp-dock-style" for GimpToolbox widgets.
2002-03-02 Sven Neumann <sven@gimp.org>
* app/core/gimptoolinfo.c
* app/widgets/gimptoolinfopreview.c: allow RGB previews and do proper
blending for RGBA. This is wasted effort since we will change the
GimpPreview system anyway, but I couldn't stand the awful look any
longer.
* app/display/gimpdisplayshell.c
* app/gui/file-save-dialog.c: added linebreaks to messages.
2002-02-28 Michael Natterer <mitch@gimp.org>
Sven Naumann <sven@gimp.org>
* configure.in
* themes/Default/images/Makefile.am
* themes/Default/images/preferences/Makefile.am: new directory
for themeable preferences icons.
* themes/Default/images/preferences/default-comment.png
* themes/Default/images/preferences/display.png
* themes/Default/images/preferences/environment.png
* themes/Default/images/preferences/folders.png
* themes/Default/images/preferences/help-system.png
* themes/Default/images/preferences/image-windows.png
* themes/Default/images/preferences/interface.png
* themes/Default/images/preferences/monitor.png
* themes/Default/images/preferences/new-image.png
* themes/Default/images/preferences/session.png
* themes/Default/images/preferences/tool-options.png: added some
GPL icons from Jimmac's site (http://jimmac.musichall.cz/).
* app/gui/gui.[ch]: added gui_themes_get_theme_dir() so we can find
icons which are loaded on demand.
* app/gui/preferences-dialog.c: added the icons to the tree and
the notebook page headers. Cleaned up and reduced the code a lot
by adding utility functions prefs_table_new() and
prefs_check_button_new().
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-callbacks.[ch]: added a "Default"
menu entry to the display's color button context menu so we can
reset the padding color to the theme's bg color.
2002-02-23 Michael Natterer <mitch@gimp.org>
General undo cleanup:
* app/undo.[ch]: made all undo structs private. Changed all
undo_push_foo() functions to take useful parameters instead of
"gpointer foo_ptr" and create the undo structs internally.
Renamed lots of functions so they are more self-explanatory
(like undo_push_gimage_mod -> undo_push_image_size). Added some
undo functions (channel reordering is undoable now). Never pass
in a UndoType, as they are reseved for groups now (see below).
Lots of cleanup and stuff...
* app/undo_types.h: is a private header now which defines "enum
UndoImplType" which is reserved for actual undo operations.
All enum values are named "FOO_UNDO".
* app/core/core-types.h: added the "UndoType" enum here and don't
include "undo_types.h" any more. The UndoType values are all
named "FOO_UNDO_GROUP" and are reserved for undo groups.
The ID space of actual undo operations and undo groups
is now strictly disjunct.
* app/core/gimpchannel.h
* app/core/gimpimage.h
* app/core/gimplayer.h
* app/core/gimplayermask.h
* app/paint/gimppaintcore.h
* app/tools/gimptransformtool.h: removed undo stuct definitions.
* app/undo_history.c
* app/path_transform.h
* app/core/gimpchannel.c
* app/core/gimpdrawable-transform.c
* app/core/gimpedit.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-mask.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-qmask.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-scale.c
* app/core/gimpimage.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/display/gimpdisplayshell-dnd.c
* app/gui/channels-commands.c
* app/gui/image-commands.c
* app/gui/layers-commands.c
* app/gui/paths-dialog.c
* app/paint/gimppaintcore.c
* app/tools/gimpbezierselecttool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.c
* tools/pdbgen/pdb/guides.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/undo.pdb: changed accordingly.
* app/pdb/guides_cmds.c
* app/pdb/layer_cmds.c
* app/pdb/undo_cmds.c: regenerated.
* app/core/gimpimage.[ch]: added infrastructure for holding a
GimpList of GimpVectors objects. The API is the same as for layers
and channels. Not used yet.
2002-02-17 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: made
gimp_display_shell_update_icon() public, removed the update_icon
signal handler and idle function.
* app/display/gimpdisplayshell-handlers.c: added the update_icon
stuff here so it get's properly dis- and reconnected.
2002-02-17 Michael Natterer <mitch@gimp.org>
Fixed#34633 (wheel mouse zooming leaves straigth-line helpline on
image) and maybe some other stuff caused by the misbehaviour
described below:
* app/tools/tools-types.h
* app/tools/tool_manager.c (tool_manager_control_active):
Removed the "PAUSED" ToolState.
The possible state transitions were INACTIVE <-> ACTIVE <-> PAUSED,
where the ACTIVE <-> PAUSED transition was done only in the
tool_manager, causing the tools's control() never to be called
when the tool was INACTIVE.
The GimpPaintTool however wants to draw on the display when it's
INACTIVE, and of course wants to be suspended/resumed correctly
while fiddling with display repainting/scaling/...
The PAUSED state was also redundant information, since
(tool->paused_count > 0) is the same information (only more
correct and independent of tool activity).
* app/display/gimpdisplayshell-scale.[ch]: suspend/resume the
active tool around _all_ changes to the display's "scale" and
"offset" fields. Added new function
gimp_display_shell_scale_by_values() which does that and is called
from all places which need to change these values.
* app/tools/gimpmagnifytool.c: changed accordingly.
Unrelated stuff:
* app/paint/gimpairbrush.c: added a #warning FIXME.
* app/tools/gimpdrawtool.c: made a warning more verbose.
* app/tools/gimppainttool.c: put one more drawable offset
calculation in { .. }, will make a utility function out of it...
2002-02-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-handlers.c: added back the handler
which invalidates the display_title on dirty/clean. Removing it
was simply wrong.
* app/display/gimpdisplayshell-scale.c: don't call
gimp_display_shell_update_title() directly but set
shell->title_dirty to TRUE before calling gdisplays_flush().
* app/paint/gimppaintcore.[ch]: added gimp_paint_core_constrain()
which does the "snap to 15 degrees" stuff formerly done in
GimpPaintTool. Call gimp_brush_select_brush() in
gimp_paint_core_paint() if paint_state == MOTION, not in several
other places. Reordered functions, added some comments and
documentation.
* app/paint/gimpairbrush.c
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimperaser.c
* app/paint/gimppaintbrush.c
* app/paint/gimppencil.c
* app/paint/gimpsmudge.c:
s/CORE_CAN_HANDLE_CHANGING_BRUSH/CORE_HANDLES_CHANGING_BRUSH/g,
minor cleanup.
* app/pdb/pdb-types.h: include "paint/paint-types.h"
* app/tools/gimppainttool.[ch]: use gimp_paint_core_constrain(),
removed paint_tool->state because it's not needed any more,
lots of cleanup.
* tools/pdbgen/app.pl: another eeky special case for "paint/".
* tools/pdbgen/pdb/paint_tools.pdb: include stuff from "paint/",
not "tools/".
* app/pdb/paint_tools_cmds.c: regenerated.
2002-02-13 Michael Natterer <mitch@gimp.org>
* app/gui/menus.c: moved "Merge Layers" and "Flatten Image" from
"Layer/" to "Image/", removed them from the "<Layers>" menu
entirely, moved "Merge Down" after "Anchor Layer" in both menus.
* app/gui/image-commands.[ch]: moved callbacks from here...
* app/gui/layers-commands.[ch]: ...to here.
* app/gui/layers-commands.[ch]
* app/display/gimpdisplayshell.c: changed menu_update functions
accordingly.
2002-02-11 Michael Natterer <mitch@gimp.org>
* app/gimprc.[ch]
* app/config/gimpdisplayconfig.[ch]
* app/gui/preferences-dialog.c: made the string which appears in
the display's statusbar configurable separately from the title
string. They still both have the same default value.
* app/display/gimpdisplayshell.c: changed accordingly.
Also added lots of new % expansions which implement all stuff
mentioned in #5843. Didn't apply the original patch because it is
overly complicated (the same can be acheived using %D and %C).
Instead, applied a changed version of gimp-quinet-000618-0.patch.
Added %Cx, which expands to 'x' if the image is clean.
* docs/gimprc-1.3.5.in
* etc/gimprc.in
* etc/gimprc.win32: added documentation for the new stuff.
2002-02-10 Michael Natterer <mitch@gimp.org>
* app/undo.c: removed #if 0'ed old display update hackery. Don't
flush the displays here at all and include nothing from
"display/".
* app/undo_history.c
* app/gui/edit-commands.c: call gdisplays_flush() if undo_pop() or
undo_redo() return TRUE.
* app/core/gimpimage-contiguous-region.[ch]: allow a contiguous
transparent region to be selected/filled (#71058).
* app/core/gimpdrawable-bucket-fill.[ch]
* app/core/gimpimage-mask-select.[ch]: take a boolean
fill_transparent/select_transparent parameter and pass it to the
contiguous region funcion.
* app/display/gimpdisplayshell-dnd.c: pass
fill_transparent == FALSE to bucket_fill_full because we fill the
whole drawable anyway here.
* app/tools/gimpbucketfilltool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/selection_options.[ch]: added toggle buttons to the
tool options and pass the value to the fill and select core
functions.
* tools/pdbgen/pdb/misc_tools.pdb
* tools/pdbgen/pdb/selection_tools.pdb: hardcode
"select_transparent" to FALSE to get the old behaviour. Should
export the new feature to plug-ins however.
* app/pdb/misc_tools_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
2002-02-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-new.[ch]: renamed the image size utility
functions from foo_size_bar() to foo_memsize_bar(), use "gsize"
instead of "gdouble". Also take the selection mask into account
for the initial image size.
* app/display/gimpdisplayshell.c
* app/gui/file-new-dialog.c: changed accordingly.
* app/display/gimpdisplayshell-handlers.c: connect to "undo_event",
not "dirty" and "clean" to dirty the image title.
* app/tools/gimpmovetool.c: factored common code out to
gimp_move_tool_start_guide(), also set a useful cursor there.