Don't fail when checking for availability of buffers in
gimp_view_render_to_surface(). The buffers will be gone when quitting
GIMP while in s-w-m and we don't want to print a warning every time
that happens.
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
2008-05-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):
reset the translation on the cairo context. Resurrects brush
emblems which were drawn in the wrong position.
* app/widgets/gimpviewrendererbrush.c
(gimp_view_renderer_brush_draw):
formatting.
svn path=/trunk/; revision=25614
2007-12-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcairo-utils.[ch]: addec const qualifiers to
GimpRGB parameters.
* app/widgets/gimprender.[ch]: removed global variables for
checkerboard colors and introduced functions to get the
checkerboard colors as pointers to GimpRGB structs.
* app/actions/view-actions.c
* app/display/gimpdisplayshell-appearance.c
* app/widgets/gimpviewrenderer.c
* app/widgets/gimpcolormapeditor.c: changed accordingly.
svn path=/trunk/; revision=24451
2007-12-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcairo-utils.[ch]: added light and dark
check
color parameters to gimp_cairo_checkerboard_create().
* libgimpwidgets/gimpcellrenderercolor.c
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):
changed accordingly.
svn path=/trunk/; revision=24450
2007-12-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):
if the surface has CAIRO_CONTENT_COLOR_ALPHA, render it on a
checkerboard background.
* app/widgets/gimpviewrenderergradient.[ch]: just draw the
gradient with alpha-transparency instead of doing the blend on
the
checkerboard here.
* app/widgets/gimpcolormapeditor.c: formatting.
svn path=/trunk/; revision=24446
2007-11-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw): use
cairo_save()/cairo_restore() around calling the virtual function
instead of restoring the clipping area manually.
svn path=/trunk/; revision=24148
2007-11-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrenderervectors.c
(gimp_view_renderer_vectors_draw): naive port to Cairo. Somebody
should check if this isn't better done with proper curve_to()
drawing using the original vectors data instead of interpolation.
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw): reset
clipping before drawing the border because a subclass' draw()
might have done additional clipping.
svn path=/trunk/; revision=24147
2007-11-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcairo-utils.h: introduced macros to set a
single
pixel in a Cairo surface without having to worry about
endianness.
* app/widgets/gimpcairo-utils.c
* app/widgets/gimpviewrenderer.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererpalette.c: use the new macros.
svn path=/trunk/; revision=24065
2007-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrendererbrush.c: implement
GimpViewRenderer::draw and draw the overlays with Cairo.
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderervectors.c: minor cleanups.
svn path=/trunk/; revision=24058
2007-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.[ch]: replaced the RGB buffer
with
a Cairo surface.
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* app/widgets/gimpviewrendererpalette.c
* app/widgets/gimpviewrenderervectors.c: changed accordingly.
There
are some loose ends here that will be fixed over the next days.
* app/widgets/gimprender.c: removed gimp_render_temp_buf; it is
not any longer needed.
* app/core/gimpgradient.c (gimp_gradient_get_preview_size):
return
an odd preview height to make the border align with the pixel
grid.
svn path=/trunk/; revision=24056
2007-11-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcairo-utils.[ch]: added utility function to create
a Cairo surface from a GdkPixbuf.
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_create_pattern):
use it from here.
svn path=/trunk/; revision=24043
2007-11-02 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpcairo-utils.[ch]: new files holding Cairo
utility functions.
* app/widgets/gimpviewrenderer.[ch]: ported partly to Cairo
drawing.
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpview.c: removed calls to
gimp_view_renderer_unrealize() which are not needed anymore
because we don't allocate a GC in the renderer any longer.
* app/widgets/gimpcellrendererdashes.c: removed a redundant
cast.
svn path=/trunk/; revision=24039
2007-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw):
removed code that draws a diagonal line across a renderer
without
context. Emit a warning instead; this shouldn't happen any
longer.
svn path=/trunk/; revision=24038
2007-06-08 Sven Neumann <sven@gimp.org>
* app/core/gimpviewable.h: #define GIMP_VIEWABLE_PRIORITY_IDLE,
which is even lower than G_PRIORITY_LOW.
* app/core/gimpundo.c
* app/widgets/gimpviewrenderer.c: create previews with
GIMP_VIEWABLE_PRIORITY_IDLE so that they are run after the
projection has been invalidated.
svn path=/trunk/; revision=22743
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/core/gimpgradient.[ch] (gimp_gradient_has_fg_bg_segments):
new funtion which returns TRUE if any of the gradient's segments
refer to FG of BG.
(gimp_gradient_segment_get_left_color_type)
(gimp_gradient_segment_set_left_color_type)
(gimp_gradient_segment_get_right_color_type)
(gimp_gradient_segment_set_right_color_type): new accessors for
the new GimpGradientColor stuff.
(gimp_gradient_segment_split_midpoint)
(gimp_gradient_segment_range_flip)
(gimp_gradient_segment_range_replicate): split, flip and replicate
the segments' color_types too.
* app/widgets/gimpviewrenderer.[ch]: added virtual functions
::set_context() and ::invalidate() and call them.
* app/widgets/gimpviewrenderergradient.[ch]: implement the virtual
functions. Connect to the context's "foreground-changed" and
"background-changed" signals if the gradient contains FG or BG
colors and invalidate the renderer whenever they change.
* app/core/gimp-gradients.c: removed signal connections which
invalidated the gradients on FG/BG changes of the user context.
2006-08-29 Michael Natterer <mitch@gimp.org>
Changed GimpViewable preview rendering to have a context to get
FG/BG/whatever from. Use the context to enable dynamic FG/BG
colors in gradients. Fixes bug #127676 and bug #352214. Addresses
bug #128367 (doesn't fix it because there's no loading/saving and
no GUI yet).
* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
specifying gradient colors in terms of foreground and background.
* app/core/gimpgradient.[ch]: added color_type members to the
GimpGradientSegment struct and honor them in
gimp_gradient_get_color_at(). Added GimpContext parameters to all
functions which finally call get_color_at().
* app/core/gimp-gradients.c: use the new method to implement the
builtin gradients.
* app/core/gimpviewable.[ch]: added GimpContext parameters to all
get_preview() and get_pixbuf() functions.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-preview.[ch]
* app/core/gimpgradient.c
* app/core/gimpimage-preview.[ch]
* app/core/gimpimagefile.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.[ch]
* app/text/gimpfont.c
* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
and ::get_pixbuf() implementations accordingly.
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.[ch]
* app/dialogs/dialogs-constructors.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/resize-dialog.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/paint/gimppaintoptions.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/actions/gradient-editor-commands.c
* app/widgets/gimpaction.c
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpbufferview.c
* app/widgets/gimpcellrendererviewable.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpclipboard.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpgradientselect.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppaletteeditor.[ch]
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.[ch]
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpview-popup.[ch]
* app/widgets/gimpview.[ch]
* app/widgets/gimpviewablebutton.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderer-frame.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
and parameters, implement GimpDocked::set_context() in many
widgets. Pass these locally remembered contexts to GimpViewable
functions. Did some minor cleanups on the way. There are still
some minor FIXMEs around where the code uses a NULL context (which
is allowed by the APIs)
* app/pdb/drawable_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/image_cmds.c: regenerated.
2004-09-27 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-frame-64.png: added a stock icon
that shows a simple drop shadow but could be exchanged for other
image decorations.
* libgimpwidgets/gimpstock.[ch]: register the new icon.
* app/widgets/Makefile.am
* app/widgets/gimpviewrenderer-frame.[ch]: new file that holds some
ugly code to draw a frame around a preview pixbuf.
* app/widgets/gimpviewrenderer.[ch]: the frame pixbuf is attached
to the GimpViewRenderer class so it can be shared by all renderers.
* app/widgets/gimpviewrendererimagefile.c: use the new functionality
to draw a nice frame around imagefile previews.
* app/widgets/gimpcontainerbox.c: draw imagefile preview w/o a border.
2004-09-27 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c: removed conversion to TempBuf.
Instead implement GimpViewable::get_new_pixbuf by compositing the
thumbnail on a checkerboard.
* app/widgets/gimpviewrenderer.[ch]: renamed the no_view_pixbuf
struct member to pixbuf.
(gimp_view_renderer_real_render): try gimp_viewable_get_pixbuf()
and render the pixbuf before falling back to the TempBuf preview.
(gimp_view_renderer_render_pixbuf): new function that sets a
pixbuf for the renderer and flushes the render_buffer.
* app/widgets/gimpviewrendererimagefile.c
(gimp_view_renderer_imagefile_render): render the pixbuf.
* app/dialogs/dialogs-constructors.c: create the document history
dockable with a zero borderwidth.
2004-07-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_set_viewable): queue an idle update when
setting the viewable to NULL so the view gets cleared correctly.
(gimp_preview_renderer_idle_update): call
gimp_preview_renderer_update() even if renderer->viewable is NULL
so clearing the viewable gets propagated to the GUI.
Moved clearing the viewable and removing the idle from
GObject::finalize() to GObject::dispose() because calling
set_viewable() with a NULL viewable triggers typechecking casts
and queuing idle functions, which is not nice in finalize().
2004-03-13 Simon Budig <simon@gimp.org>
* app/widgets/widgets-enums.h
* app/widgets/gimppreviewrenderer.[ch]: New function
gimp_preview_renderer_set_border_type that takes an enum instead
of an color to set the color of the border.
* app/widgets/gimpcellrendererviewable.c: check for the
current border_type and change it to black when it is white and
the cell is unselected. This should be solved in a better way
later.
Fixes bug #135023.
* app/widgets/gimplayertreeview.c
* app/widgets/gimpcontainergridview.c: changed to use the new
function.
2003-11-17 Sven Neumann <sven@gimp.org>
* app/core/gimpviewable.[ch]: removed the unused GimpViewable
parameter from gimp_viewable_calc_preview_size().
* app/core/gimpbuffer.c
* app/core/gimpimage-preview.c
* app/core/gimpimagefile.c
* app/core/gimpitem-preview.c
* app/core/gimpundo.c
* app/widgets/gimppreview.c
* app/widgets/gimppreviewrendererdrawable.c
* app/widgets/gimppreviewrendererimage.c: changed accordingly.
* app/widgets/gimppreviewrenderer.[ch]: store the viewable_type in
the preview renderer and use its default stock_id if no viewable
is set.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpgradient.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.c: set a default stock_id.
2003-11-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: multihead fix: added
gimp_preview_renderer_unrealize() which destroys the cached
GdkGC. This function must be called whenever the widget owning the
renderer is unrealized.
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppreview.c: implement GtkWidget::unrealize() and
call gimp_preview_renderer_unrealize() on all renderers.
2003-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.c
* app/widgets/gimppreviewrenderervectors.c: simplified drawing
code to a point where it becomes readable again. Draw centered
into the draw_area, using the size of the renderer.
2003-09-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: made draw a virtual method
of GimpPreviewRenderer. Draw the border in the wrapper function.
* app/widgets/gimppreviewrenderervectors.c: implement
GimpPreviewRenderer::draw instead of GimpPreviewRenderer::render.
2003-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-04-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.c (gimp_preview_renderer_create_gc):
lookup the border color in the window's colormap.
2003-04-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreview.[ch]
* app/widgets/gimppreviewrenderer.[ch]: moved background
functionality into the renderer. Removed some GimpPreview
functions that used to wrap GimpPreviewRenderer functionality.
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpnavigationview.c
* app/gui/dialogs-constructors.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimppreview-popup.c
* app/widgets/gimpselectioneditor.[ch]: changed accordingly.
2003-04-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreview.[ch]: made GimpPreview a NO_WINDOW
widget that draws on the parent window. Added an INPUT_ONLY window
for events.
* app/widgets/gimpnavigationpreview.c: take the widget's
allocation into account when rendering the marker and grab the
mouse on the preview's event_window.
* app/widgets/gimppreviewrenderer.[ch]: pass GdkRectangles as const.