2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2009-01-10 Sven Neumann <sven@gimp.org>
Bug 471344 – Circular brush strokes are not smooth and have
corners
Bug 127785 – stroking with size linked to pressure sensitivity
should scale the spacing
* app/core/gimpcoords-interpolate.[ch]
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-callbacks.[ch]
* app/display/gimpdisplayshell-coords.[ch]: applied patch from
Alexia Death that introduces a Catmul-Rom splines based event
interpolation and also adapts the brush spacing to brush size.
svn path=/trunk/; revision=27898
2008-11-16 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.h: optimize access to
GimpDisplayShell struct members by placing related and frequently
accessed members like like scale and offset into the same
cacheline.
* app/display/gimpdisplayshell.c (gimp_display_shell_init): resort
initialization accordingly.
svn path=/trunk/; revision=27668
2008-08-17 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell.[ch]
(gimp_display_shell_configure_event): When applying the centering
logic we need to know the size of the new canvas, so instead of
having it here, only make sure that this logic is run on the next
canvas size-allocate.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_size_allocate): If the size-allocate
comes from a top level window resize, apply centering logic.
svn path=/trunk/; revision=26611
2008-07-18 Sven Neumann <sven@gimp.org>
* app/core/core-types.h: removed delta_time, delta_x, delta_y,
distance and random from the GimpCoords struct. These don't need
to be kept here and they can't be properly interpolated.
* app/core/gimpcoords.c: changed accordingly.
* app/xcf/xcf-load.c (xcf_load_vector): the size of the
GimpCoords
struct changed.
* app/display/gimpdisplayshell.[ch] (struct _GimpDisplayShell):
added some members to store values from the last event that are
needed in gimp_display_shell_eval_event() and which are not any
longer part of GimpCoords.
* app/display/gimpdisplayshell-coords.c
(gimp_display_shell_eval_event): changed accordingly.
* app/paint/gimppaintoptions.c: calculate a random number when
one
is needed.
* app/paint/gimpbrushcore.c (gimp_brush_core_interpolate):
GimpCoords doesn't have a "random" field any longer.
svn path=/trunk/; revision=26232
2008-07-12 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell.c: Kill disp_[xy]offset! We now
keep store that information by using negative values in
offset_[xy].
* app/display/gimpdisplayshell-scroll.[ch]
(gimp_display_shell_scroll_clamp_offsets)
(gimp_display_shell_get_scaled_image_viewport_offset): Adjust
accordingly to preserve current behaviour.
(gimp_display_shell_get_disp_offset): New function to get the old
disp_[xy]offset based on the new offset_[xy].
(gimp_display_shell_get_render_start_offset): New function to get
th old offset_[xy] based on the new offset_[xy].
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-render.c: Get rid of
disp_[xy]offset and use
gimp_display_shell_get_render_start_offset() and
gimp_display_shell_get_disp_offset() instead.
svn path=/trunk/; revision=26146
2008-04-28 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpwindow.[ch]: added GimpWindow class and moved
key-press-event handler from GimpDock to this class.
* app/widgets/gimpdock.[ch]:
* app/display/gimpdisplayshell.[ch]: derive from GimpWindow.
svn path=/trunk/; revision=25541
2008-03-23 Michael Natterer <mitch@gimp.org>
Never shrink the empty display when filling it, only grow:
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-scale.[ch]: add "gboolean
grow_only" parameters to shrink_wrap() APIs which restricts
resizing of the window to growing.
* app/display/gimpdisplayshell-scale.[ch]
(gimp_displaY_shell_scale_resize): remove boolean "redisplay"
parameter because is was always passed as TRUE. Add boolean
"grow_only" instead and pass it on to shrink_wrap()
* app/actions/view-commands.c
* app/display/gimpdisplayshell-handlers.c: pass grow_only = FALSE.
* app/display/gimpdisplayshell.c (gimp_display_shell_idle_fill):
pass grow_only = TRUE.
svn path=/trunk/; revision=25178
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/dialogs/dialogs.[ch]: added a dialog factory for displays
and register "gimp-no-image-window" with it.
* app/display/gimpdisplay.[ch]: add a GimpDialogFactory parameter
to gimp_display_new() and pass it on to gimp_display_shell_new().
* app/display/gimpdisplayshell.[ch]: keep the passed
GimpDialogFactory around. When the shell becomes empty, add it to
the dialog factory and resize it to the remembered size; when it
becomes non-empty, remove it from the dialog factory again.
* app/gui/gui-vtable.c: pass the display dialog factory to
gimp_display_new().
svn path=/trunk/; revision=25177
2008-03-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: shrink-wrap the newly filled
empty display in an idle function.
svn path=/trunk/; revision=25138
2008-03-19 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.[ch]: add gimp_display_empty()/fill()
which turns it into an empty display and back.
* app/display/gimpdisplayshell.[ch]: add same api here.
* app/display/gimpdisplayshell-close.c
* app/gui/gui-vtable.c: use the new functions instead of having
the code here.
* app/display/gimpdisplayshell-selection.c
(gimp_display_shell_selection_control): stop the timeout and free
the segments when this function is called on an empty display.
svn path=/trunk/; revision=25124
2008-03-19 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-scale.[ch]: moved
gimp_display_shell_set_initial_scale() to gimpdisplayshell-scale.c.
* app/display/gimpdisplayoptions.c: reverted last change, we want
to keep the status-bar around.
svn path=/trunk/; revision=25119
2008-03-19 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]
(gimp_display_shell_set_initial_scale): factored out this function
which calculates the zoom factor for new images. Also returns the
size of the canvas for that zoom factor.
* app/gui/gui-vtable.c (gui_display_create): use it to set the
initial scale of images loaded into the empty display, but don't
set the display's size yet.
svn path=/trunk/; revision=25118
2008-03-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayoptions.[ch]: add new options object
for the "no image" display appearance.
* app/display/gimpdisplayshell.[ch]: keep one of them around.
* app/display/gimpdisplayshell-appearance.[ch]: use the options
object when the display is empty. Add guards against no image
to some functions. Add gimp_display_shell_appearance_update()
which sets all options according to the current display state
(normal, fullscreen, no image).
* app/actions/view-actions.c: don't allow to configure the GUI
of the empty display.
* app/display/gimpdisplayshell-callbacks.c: use the new appearance
update function instead of doing it all here.
* app/display/gimpdisplayshell-close.c
* app/gui/gui-vtable.c: update the appearance when clearing or
filling the display.
* app/display/gimpdisplayshell-selection.c: forgot some guards
against empty displays.
svn path=/trunk/; revision=25114
2008-03-05 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.h: changed PROJ_ROUND() macros to
use RINT() so they work correctly with negative numbers.
* app/tools/gimpdrawtool.c
(gimp_draw_tool_draw_line)
(gimp_draw_tool_draw_dashed_line)
(gimp_draw_tool_draw_rectangle)
(gimp_draw_tool_draw_arc)
(gimp_draw_tool_draw_boundary): use floating-point coordinate
transform functions again. These functions were changed to use
integer transform functions in 2004 (!!) which broke sub-pixel
precision drawing for stuff like straight-line and blend tool
and also sub-pixel drawing of the brush outline.
Should be backported to 2.4 after it has shown no ill effects in
trunk.
svn path=/trunk/; revision=25036
2008-01-28 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch] (gimp_display_shell_snap_coords):
removed redundant GimpCoords parameter that use to cause valgrind
warnings about overlapping memory regions in memcpy().
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-autoscroll.c: changed accordingly.
svn path=/trunk/; revision=24730
2008-01-14 Sven Neumann <sven@gimp.org>
* app/core/core-types.h
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-coords.[ch]
* app/display/gimpdisplayshell.h
* app/paint/gimpink.[ch]
* app/paint/gimpinkundo.[ch]: applied patch from Alexia Death
that
adds an event evaluation function that decides if an event is
needed or can be discarded. As a side-product some useful
dynamics
parameters like velocity are added to the GimpCoords struct. The
Ink tool is changed to use this information. See bug #508639.
svn path=/trunk/; revision=24607
2007-10-24 Simon Budig <simon@gimp.org>
* app/display/gimpdisplayshell.h: change the PROJ_ROUND macro
to do proper rounding. Seems to work well.
svn path=/trunk/; revision=23936
2007-09-30 Simon Budig <simon@gimp.org>
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-render.c: 64bittified the code so
that the new renderer also works for big images. Slightly
reorganized.
* app/display/gimpdisplayshell-transform.c: Another go at
bug #474509. This even might be fixed now...
svn path=/trunk/; revision=23698
2007-03-14 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]: cache the display scale
factors in the GimpDisplayShell struct and recalculate it in
gimp_display_shell_scale_factor_changed().
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_set_dot_for_dot)
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_resolution_changed_handler)
(gimp_display_shell_monitor_res_notify_handler): update the scale
factors by calling gimp_display_shell_scale_factor_changed().
* app/display/gimpdisplayshell-transform.c
* app/display/gimpnavigationeditor.c: code cleanup.
svn path=/trunk/; revision=22118
2007-03-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-scale.c: only change the
remembered
last scale value if the last change occured more than a second
ago.
* app/tools/gimprectangletool.c: fixed compiler warnings.
svn path=/trunk/; revision=22040
2006-12-12 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new):
slightly increased size of the quick-mask and zoom-mode buttons.
Also changed the style to not displace the icon when the buttons
are pressed.
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-appearance.c: changed "origin_button"
to "origin". Don't draw it as a button but use an event box just
like we do for the navigation icon in the lower right corner.
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): use the viewable description
for the drawable's name. We don't want to see "Qmask" in the
statusbar.
* app/widgets/gimpwidgets-utils.c (gimp_button_menu_position): fix
for the case where button is not really a GtkButton but has it's
own window.
* app/widgets/gimphelp-ids.h: changed help ID, removed unused one.
* libgimpwidgets/gimpstock.c
* themes/Default/images/Makefile.am
* themes/Default/images/stock-quick-mask-off-12.png
* themes/Default/images/stock-quick-mask-off-16.png
* themes/Default/images/stock-quick-mask-on-12.png
* themes/Default/images/stock-quick-mask-on-16.png: cropped empty
space from the quick-mask icon.
2006-10-09 Michael Natterer <mitch@gimp.org>
Added message severities and make sure all messages are routed
through a central function, so redirecting to the error console or
stderr work again:
* app/core/core-enums.[ch]: added enum GimpMessageSeverity { INFO,
WARNING, ERROR }.
* app/core/gimp.[ch] (gimp_message)
(gimp_message_valist): added severity parameter. Changed
"GimpProgress *progress" parameter to "GObject *handler", where
"handler" can be either a GimpProgress, a GtkWidget or NULL.
* app/core/gimp-gui.[ch] (gimp_show_message): ditto. Honor
--console-messages again. Always dispatch to the GUI message
handler first if it exists.
* app/gui/gui-message.[ch]: pass severity parameters around.
(gui_message_error_dialog): if "handler" is a progress, dispatch
the message to it first. If it is a widget (and *not* a progress),
use a GtkMessageDialog on top of that widget's toplevel. Fall
back to the usual GimpErrorDialog otherwise.
* app/core/gimpprogress.[ch] (gimp_progress_message): added
severity parameter. Also added boolean return value to the virtual
function so it can decide to fail if it can't handle the message.
* app/display/gimpdisplay.c: implement GimpProgress::message() and
redirect the message to GimpDisplayShell.
* app/display/gimpdisplayshell-progress.c: implement
GimpProgress::message() and redirect the message to GimpStatusbar
if it is not an error and if the status bar is visible.
* app/display/gimpstatusbar.[ch]: implement GimpProgress::message(),
but fail on messages that contain a newline. Show the right icons
for the message severities (work in progress).
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_message() and its _valist() variant.
* app/widgets/gimperrorconsole.[ch]: show the right icons for the
message severities.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_message):
return TRUE to swallow all messages.
* app/widgets/gimpwidgets-utils.[ch]: removed
gimp_show_message_dialog(). Added gimp_get_message_stock_id().
* app/errors.c
* app/actions/edit-commands.c
* app/actions/error-console-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c
* app/actions/text-editor-commands.c
* app/actions/vectors-commands.c
* app/core/gimpimage-convert.c
* app/core/gimpimagefile.c
* app/dialogs/convert-dialog.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/stroke-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/pdb/gimppdb.c
* app/plug-in/gimpplugin.c
* app/tools/gimpimagemaptool.c
* app/tools/gimptool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/message.pdb
* tools/pdbgen/pdb/palette.pdb: added severity parameter to
gimp_message() calls. Convert all calls to
gimp_show_message_dialog() and gimp_display_shell_message() to
gimp_message(). Also converted some more g_message() calls.
* app/pdb/brush_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/image_cmds.c
* app/pdb/message_cmds.c
* app/pdb/palette_cmds.c: regenerated.
2006-09-28 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]: added
gimp_display_shell_message() and a valist variant and decide here
where the message is shown.
* app/actions/edit-commands.c (edit_paste)
* app/tools/gimptool.c (gimp_tool_message): use the new message API.
2006-09-08 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added function gimp_get_tool_info().
* app/actions/tools-commands.c
* app/actions/vectors-commands.c
* app/tools/gimppainttool.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptoolbox.c: use the new function instead of poking
into gimp->tool_info_list.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: moved code that deals with
the space key into separate functions. Added space_shaded_tool
to GimpDisplayShell instead of using a static variable for it.
* app/tools/tool_manager.c: removed unused include.
2006-03-17 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell.[ch]
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: allow to use red, green or
blue for the selection preview used by the foreground selection tool.
2005-09-25 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.def
* libgimpwidgets/gimpzoommodel.[ch]: added gimp_zoom_model_zoom()
and changed gimp_zoom_model_get_fraction() to take a model instead
of the zoom factor.
* app/display/gimpdisplayshell.[ch]: use a GimpZoomModel for the
display scale factor.
* app/actions/image-commands.c
* app/actions/view-actions.c
* app/actions/view-commands.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpnavigationeditor.c
* app/display/gimpstatusbar.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmagnifytool.c: changed accordingly.
2005-08-06 Sven Neumann <sven@gimp.org>
* app/display/gimpcanvas.c (gimp_canvas_set_custom_gc) do not
drop the reference if the same custom GC is being set again.
* app/display/gimpdisplayshell-draw.[ch]
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.[ch]: added GC and methods to draw
on the canvas with a solid pen.
* app/tools/gimpforegroundselectoptions.[ch]
* app/tools/gimpforegroundselecttool.c: draw using the new pen
functions. Scale the stroke width with the display scale.
2005-07-31 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell.[ch]: removed the overlay again.
This needs to be done differently.
* app/tools/gimpforegroundselecttool.c: changed accordingly.
2005-07-30 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell.[ch]: renamed overlay to mask and
added a different overlay implementation that will be needed to
finish the new foreground-select tool.
* app/tools/gimpforegroundselecttool.c: changed accordingly.
2005-07-30 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell.[ch]: added
gimp_display_shell_set_overlay(); allows to overlay a mask over the
display to visualize a selection.
* app/tools/gimpforegroundselecttool.[ch]: use the new functionality
to display the selection. Escape cancels the tool, Enter applies the
selection.
2005-04-05 Michael Natterer <mitch@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/info-window.[ch]: removed.
* app/actions/view-actions.c
* app/actions/view-commands.[ch]
* menus/image-menu.xml.in: removed its action and menu stuff.
* app/display/gimpdisplayshell-cursor.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpdisplayshell.[ch]: removed info window stuff.
This was the last display -> dialogs dependency.
* app/dialogs/dialogs.c: added ugly hack that references
info_dialog. Otherwise the still existing tools -> dialogs
dependency breaks the build.
2005-01-03 Michael Natterer <mitch@gimp.org>
Implemented "Snap to Canvas Edges" (fixes bug #152971) and
"Snap to Active Path" (half way done):
* app/core/gimpimage-snap.[ch]: added boolean snap_to_canvas and
snap_to_vectors parameters (snap_to_vectors works fine when
snapping to a point, but is unimplemented for snapping to a
rectangle).
* app/display/gimpdisplayshell.[ch] (struct GimpDisplayShell):
added snap_to_canvas and snap_to_vectors booleans.
* app/display/gimpdisplayshell-appearance.[ch]: added API to
get/set them.
* app/actions/view-actions.c
* app/actions/view-commands.[ch]
* app/widgets/gimphelp-ids.h: added actions, callbacks and help IDs.
* menus/image-menu.xml.in: added them to Image->View.
2005-01-02 Michael Natterer <mitch@gimp.org>
* app/display/Makefile.am
* app/display/gimpdisplayshell-autoscroll.[ch]
* app/display/gimpdisplayshell-coords.[ch]: new files factored out
of gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.h (struct GimpDisplayShell): added
"gpointer scroll_info" needed by autoscroll.
* app/display/gimpdisplayshell-callbacks.c: removed the stuff
above. Also removed the static autoscroll struct because it's not
needed any longer.
2004-10-01 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: no need to include
gimpdisplayshell-render.h here.
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-render.[ch]
* app/display/gimpdisplayshell.[ch]: added an API to highlight a
rectangle (specified in image coordinates). Actually it doesn't
highlight but dims the area outside the rectangle.
* app/tools/gimpcroptool.c: use the new functionality to show the
area to be cropped. Fixes bug #93360.