2003-03-26 Sven Neumann <sven@gimp.org>
* app/gui/tool-options-dialog.c (tool_options_dialog_restore_callback):
reset the tool-options before loading the user settings. Don't warn if
loading fails.
2003-03-26 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: removed cut'n'paste-duplicated
accelerators from the new font selection menu entries.
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-23 Sven Neumann <sven@gimp.org>
* app/core/gimplayer.c
* app/gui/image-menu.c
* app/gui/layers-menu.c: there doesn't seem to be a good reason to
disallow the creation of layer masks on indexed images.
2003-03-22 Sven Neumann <sven@gimp.org>
* app/gui/layers-commands.c: always flush the image when applying
or discarding a layer mask. The active drawable may change and
make a menu update necessary (fixes bug #108958).
* app/widgets/gimplayertreeview.c: call gimp_image_flush() when
switching between layer and mask editing so the menus get updated.
2003-03-20 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-new.c (gimp_image_new_values_new): default
the fill_type to GIMP_BACKGROUND_FILL (as in gimp_initialize()).
* app/gui/file-commands.c
* app/gui/file-new-dialog.c: made more dialogs transient for their
parent window.
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpimageeditor.c
* app/widgets/gimpundoeditor.c: simplified a little bit.
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-18 Michael Natterer <mitch@gimp.org>
Added an API for image colormap manupulation and made colormap
changes undoable (fixes bug #25963).
* app/core/Makefile.am
* app/core/gimpimage-colormap.[ch]: new files implementing
colormap getters/setters. The setters push undos using the
new function below.
* app/core/core-enums.[ch]: added GIMP_UNDO_IMAGE_COLORMAP.
* app/core/gimpimage-undo-push.[ch]: added
gimp_image_undo_push_image_colormap(). Use GimpItemUndo even more
often. Cleanup.
* app/core/gimpimage.[ch]: removed gimp_image_get_colormap() here.
* app/core/gimpimage-convert.c
* app/gui/colormap-editor-commands.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimptoolbox.c
* tools/pdbgen/pdb/image.pdb: use the new API.
* app/pdb/image_cmds.c: regenerated.
* plug-ins/common/vinvert.c: removed the comment about the bug,
cosmetic cleanup.
Unrelated:
* app/gui/splash.c: added a frame around the splash. Please eek
if it doesn't please you.
2003-03-16 Sven Neumann <sven@gimp.org>
* app/gui/file-save-dialog.c (file_save_overwrite): set the dialog
transient to the file selection dialog (see bug #61092).
2003-03-16 Sven Neumann <sven@gimp.org>
* app/gui/info-dialog.c: set a window type hint of
GDK_WINDOW_TYPE_HINT_UTILITY for info windows (fixes bug #92175).
* app/tools/gimpcolorpickertool.c: give the color area more space.
2003-03-16 Michael Natterer <mitch@gimp.org>
Added GtkTreeView versions of layers/channels/vectors:
* app/core/core-enums.[ch]: renamed GIMP_UNDO_GROUP_LAYER_PROPERTIES
to GIMP_UNDO_GROUP_ITEM_PROPERTIES.
* app/core/gimpcontainer.c (gimp_container_reorder): don't try
to reorder containers with num_children == 1.
* app/core/gimpmarshal.list: added VOID: STRING, UINT marshaller.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpchanneltreeview.[ch]
* app/widgets/gimpdrawabletreeview.[ch]
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimplayertreeview.[ch]
* app/widgets/gimpvectorstreeview.[ch]: new widgets.
* app/widgets/gimpcellrenderertoggle.c: draw the frame only if the
cell is prelit.
* app/widgets/gimpcellrendererviewable.[ch]: added "clicked"
signal, unref the renderer in finalize(). Set the renderer's
border color to black if the cell is not selected (a hack that
saves tons of code in GimpLayerTreeView).
* app/widgets/gimpcomponenteditor.c: no need to gtk_list_store_set()
stuff we just got from the store.
* app/widgets/gimpcontainertreeview.[ch]: added lots of state used
by the new subclasses to the GimpContainerTreeView struct. Create
the GtkListStore/GtkTreeView in GObject::constructor() and only
collect parameters in init() so subclasses can modify store/view
creation. Do most of the button_press_event stuff manually and
return TRUE from the handler.
* app/widgets/gimpcontainerview.c: cleanup.
* app/widgets/gimpitemlistview.h
* app/widgets/gimpvectorslistview.h: temp hacks before they die.
* app/widgets/gimppreviewrenderer.[ch]: added
gimp_preview_renderer_update_idle() which idle-emits "update"
without invalidating.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: added constructors for the new dialogs.
* app/gui/channels-commands.c
* app/gui/channels-menu.c
* app/gui/layers-commands.c
* app/gui/layers-menu.c
* app/gui/vectors-commands.c
* app/gui/vectors-menu.c: accept tree views as callback data.
2003-03-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpitemfactory.c (gimp_item_factory_translate_func):
simplified.
* app/gui/image-menu.c: some minor menu cleanups.
2003-03-13 Sven Neumann <sven@gimp.org>
* app/gui/channels-commands.c: don't expose the internal term
"component", use "channel" instead.
2003-03-13 Sven Neumann <sven@gimp.org>
* POTFILES.in
* de.po: updated.
2003-03-13 Sven Neumann <sven@gimp.org>
* app/core/core-enums.h: made the GimpPreviewSize enum values a
little bit smaller. What used to be small is now called medium.
* app/config/gimpcoreconfig.c
* app/gui/dialogs.c: changed accordingly.
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-12 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: added descriptions to the
GimpChannelType enum.
* app/core/gimpimage.[ch]: added gimp_image_get_component_index()
utility function which does the GIMP_RED_CHANNEL -> RED_PIX etc.
mapping. Use it in all component getters/setters.
* app/widgets/gimpcomponenteditor.[ch]: new widget implementing
the component list using GtkListStore/GtkTreeView. Still a bit
ugly because it uses the standard check instead of the eye icon.
* app/widgets/gimpcomponentlistitem.[ch]: removed.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpvectorslistview.c: changed accordingly.
* app/widgets/gimpchannellistview.[ch]: create a GimpComponentEditor
and removed the old GtkList based stuff.
* app/widgets/gimpitemlistview.[ch]: keep around a pointer to the
GimpMenuFactory passed to the constructor.
* app/gui/channels-menu.c (channels_menu_update): do the right
thing if "data" is a GimpComponentEditor.
* app/gui/channels-commands.[ch]: ditto. Implemented duplicating
of components and component to selection (bug #61018).
2003-03-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_init): set a window type hint
of GDK_WINDOW_TYPE_HINT_UTILITY for dock windows (fixes bug #94669).
* app/gui/splash.c (splash_create): set a window type hint of
GDK_WINDOW_TYPE_HINT_SPLASHSCREEN.
2003-03-12 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel.[ch]: added gimp_channel_new_from_component()
which creates a new GimpChannel from an image's color component.
* app/gui/channels-commands.[ch]: added
channels_duplicate_component_cmd_callback().
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: added code to extract a color
component from a PixelRegion (untested!).
* plug-ins/common/checkerboard.c: cosmetics.
2003-03-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_create_thumbnail),
(gimp_imagefile_save_thumbnail)
* app/gui/file-open-dialog.c (file_open_create_thumbnails): don't
create thumbnails if core_config->layer_previews is FALSE
(bug #107242).
* app/file/file-save.c (file_save_as): call
gimp_imagefile_save_thumbnail() unconditionally since it does all
the needed checks itself.
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 Sven Neumann <sven@gimp.org>
* app/config/gimpscanner.[ch]: removed gimp_scanner_parse_string_list()
since the format it read wasn't proper s-expressions syntax.
* app/config/gimpconfigwriter.c: a couple of minor cleanups.
* app/gui/color-history.[ch]
* app/gui/session.c
* app/widgets/gimpdialogfactory.[ch]: use GimpConfigWriter to
write the sessionrc. Had to do some minor changes to the file
format.
2003-03-10 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.[ch]: added GimpData::duplicate()
implementation so read-only palettes can be edited again by
duplicating them first.
* app/gui/dialogs-constructors.c: pass the <Palettes>, not the
<Gradients> menu identifier to the palette grid and tree view
constructors (spotted by Tigert).
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-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-06 Sven Neumann <sven@gimp.org>
* app/core/gimpparasitelist.c: fixed parasite serialization that
I broke yesterday.
* app/widgets/gimpenummenu.c: added support for mnemonics.
* app/core/core-enums.h: removed the inverted variants from the
GimpAddMaskType enum. Registered the enum with the type system.
* app/core/gimplayer.c: changed accordingly.
* app/gui/layers-commands.c (layers_add_mask_query): use an enum
frame and added a check button that allows to invert the inital
layer mask.
* tools/pdbgen/pdb/layer.pdb: updated documentation for the
gimp-layer-create-mask PDB function.
* plug-ins/script-fu/siod-wrapper.c: removed new enum values from
the compatibility defines.
* app/core/core-enums.c
* app/pdb/layer_cmds.c
* libgimp/gimpenums.h
* libgimp/gimplayer_pdb.c
* plug-ins/pygimp/gimpenums.py
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
2003-03-05 Manish Singh <yosh@gimp.org>
* configure.in: require GTK+ 2.2. The 2.0.x series is no longer
maintained, and there are some very real bugs that won't go away.
* app/gui/about-dialog.c
* app/widgets/gimppreviewrenderer.c
* app/widgets/gimptoolbox-color-area.c
* plug-ins/common/uniteditor.c: remove special casing for GTK+ 2.0
vs. 2.2
* app/widgets/gtkwrapbox.[ch]
* app/widgets/gtkhwrapbox.[ch]
* app/widgets/gtkvwrapbox.[ch]: remove deprecated functions
* app/gui/gui.c: free return value of gdk_get_display ()
* app/widgets/gimpcontainertreeview.c: use gtk_list_store_move_before () for reordering.
2003-03-05 Michael Natterer <mitch@gimp.org>
* app/file/file-save.[ch]: added GError reporting, removed
g_message() stuff.
* app/gui/file-commands.c
* app/gui/file-save-dialog.c: g_message() here if file_save_*()
returns an error.
* app/file/file-open.c: use the G_FILE_ERROR quark and the
GFileError enum for reporting errors. Removed g_message() if the
passed in GError** pointer is NULL (passing NULL as error return
location should never mean "show the error message yourself").
* app/app_procs.c
* app/gui/file-commands.c
* app/gui/file-open-dialog.c
* app/widgets/gimpdnd.c
* app/widgets/gimpdocumentview.c: g_message() here if file_open_*()
returns an error.
2003-03-05 Sven Neumann <sven@gimp.org>
* plug-ins/common/compose.c
* plug-ins/common/decompose.c
* plug-ins/fp/fp.c
* plug-ins/rcm/rcm.c: moved these plug-ins to the Filters menu
(fixes bug #107587).
* app/gui/image-menu.c (image_menu_entries): removed a menu
separator which is not needed any longer.
2003-03-04 Sven Neumann <sven@gimp.org>
Based on suggestions by Michael J. Hammel <mjhammel@graphics-muse.org>:
* app/gui/preferences-dialog.c: use US english spelling, fixed a
typo.
* app/config/gimprc-blurbs.h: rephrased some blurbs so they fit
better as tooltips.
2003-03-04 Michael Natterer <mitch@gimp.org>
* app/file/file-save.[ch]: added new function file_save_as() which
always uses the uri and file_proc parameters passed and never
looks at the image's uri and file_proc. Renamed "gboolean set_uri"
to "set_uri_and_proc" and always set them both if the save
succeeded. Fixes bug #97835. Removed most parameters from
file_save() and made it a small wrapper around file_save_as().
* app/gui/file-commands.c (file_save_cmd_callback): changed
accordingly.
* app/gui/file-save-dialog.c: call file_save_as(), renamed
"set_uri" variables to "set_uri_and_proc".
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-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: removed the constructors
with a GimpViewable parameter and always create renderers from
viewable types only. Made gimp_preview_renderer_update() emit only
the "update" signal and added the new function
gimp_preview_renderer_invalidate() which does what the old
_update() did (invalidating and adding an idle function which
emits "update"). Added gimp_preview_renderer_remove_idle() so
renderer updating can be fully controlled using public functions.
* app/widgets/gimppreviewrendererbrush.[ch]: no need to remember
the widget for the brushpipe animation, simply call
gimp_preview_renderer_update() in the animation timeout.
* app/widgets/gimppreview.[ch]
* app/widgets/gimpcontainertreeview.c: changed accordingly. Call
gimp_preview_renderer_remove_idle() after setting the initial
viewable because we will be updated anyway by the first expose.
* app/widgets/gimppreview.[ch]: Added a size_request()
implementation. Removed gimp_preview_update(). Added new
constructor gimp_preview_new_full_by_types() to make the
constructor API symmetric. Removed code duplication by calling the
_by_types() constructors from the ones taking GimpViewable
parameters.
* app/gui/palette-import-dialog.c
* app/widgets/gimppropwidgets.c
* app/widgets/gimpselectioneditor.c: changed accordingly.
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 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig-serialize.c (gimp_config_serialize_properties):
don't insert an extra line-break after a serialized property.
* app/config/gimpconfig-serialize.c
* app/config/gimpconfig-dump.c
* app/gui/tips-parser.c: use g_string_truncate (str, 0) instead of
assigning an empty string.
* app/tools/gimptextoptions.c: override the serialize and
deserialize methods of the GimpConfig interface and save/restore
the associated GimpText object instead of GimpTextOptions.
* app/tools/tool_options.c (gimp_tool_options_build_filename):
don't append ".default" if no extension is given.
2003-02-26 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.[ch]: added a writeable field to GimpData and
set it from gimp_data_set_filename().
* app/gui/brushes-menu.c
* app/gui/gradients-menu.c
* app/gui/palettes-menu.c
* app/gui/patterns-menu.c
* app/widgets/gimpbrushfactoryview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpgradienteditor.c: look at data->writeable when
setting widgets sensitivity.
* app/gui/user-install-dialog.c (user_install_dialog_create): reduce
some of the dialog clutter by not showing the directories created for
plug-ins.
* app/core/gimpviewable.[ch]: added a default_stock_id to
GimpViewableClass so we don't need to hold a copy in each instance.
Added accessor functions to set and get the stock_id.
* app/core/gimptoolinfo.c
* 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/gimpcellrendererviewable.c
* app/widgets/gimppreview.c
* app/widgets/gimptoolbox.c: use gimp_viewable_get_stock_id().
* app/text/gimptextlayer.c: set a text icon as default stock_id.
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 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.