2004-10-27 Philip Lafleur <plafleur@cvs.gnome.org>
* app/display/gimpdisplayshell-preview.c: Really fixed all cases
of the perspective tool preview breaking with certain orientations by
using triangles instead of quads.
2004-10-27 Philip Lafleur <plafleur@cvs.gnome.org>
* app/display/gimpdisplayshell-preview.c: Hopefully fixed all cases
of the perspective tool preview breaking with certain orientations.
2004-10-25 Michael Natterer <mitch@gimp.org>
Don't store human readable and translatable enum/flag strings in
GEnumValue's and GTypeValue's fields but attach them to their
GType using separate structs and utility functions:
* tools/gimp-mkenums: added params and perl voodoo to support
generating a second array of values, which is used by the
Makefiles below to create and register arrays of value
descriptions.
* libgimpbase/gimpbasetypes.[ch]: added API to attach/retreive
arrays of translatable strings to/from enum and flags types. Added
structs GimpEnumDesc and GimpFlagsDesc for that purpose.
* libgimpbase/gimputils.[ch]: changed existing enum utility
functions, added new ones and added a symmetric API for flags.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am: changed *-enums.c generation rules
accordingly.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c: regenerated.
* app/widgets/gimpenumstore.c
* app/widgets/gimpenumwidgets.c
* app/widgets/gimptemplateeditor.c
* libgimpwidgets/gimppreviewarea.c: follow the enum utility
function API changes.
2004-10-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: added utility function
gimp_ui_manager_get_action() which takes "group_name" and
"action_name".
* app/display/gimpdisplayshell-close.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: use it.
2004-10-14 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.[ch]: added "message" function to the
GimpProgress interface. Call gimp_message() if it is unimplemented.
* app/plug-in/plug-in-progress.[ch]: added new function
plug_in_progress_message() that passes the message to the current
proc_frame's progress.
* app/widgets/gimpthumbbox.c: implement GimpProgress::message.
Just do nothing in the implementation. We don't want to see
messages from file plug-ins that we use to create the thumbnails.
* tools/pdbgen/pdb/message.pdb
* app/pdb/message_cmds.c: if there's a current plug-in, dispatch
the message by calling plug_in_progress_message().
* app/display/gimpdisplayshell-close.c: fixed wrong types in
function calls.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpmessagedialog.[ch]: added a simple message
dialog to avoid code duplication.
* app/widgets/gimpmessagebox.c: set the border width to 12 pixels.
* app/dialogs/file-save-dialog.c
* app/dialogs/quit-dialog.c
* app/display/gimpdisplayshell-close.c
* app/widgets/gimperrordialog.c
* app/widgets/gimphelp.c
* app/widgets/gimpactionview.c: use the new GimpMessageDialog.
2004-10-13 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay-foreach.c: keep the container of dirty
images up to date.
* app/dialogs/quit-dialog.c: fixed model/view behavior here, too.
(both are still far from perfect)
2004-10-12 Sven Neumann <sven@gimp.org>
* app/dialogs/info-window.[ch]: fixed unit handling. Right-align
the labels displaying the cursor position. Renamed the "Extended"
tab to "Cursor". Renamed the API accordingly.
* app/display/gimpdisplayshell-cursor.c: changed accordingly.
2004-10-08 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_real_scaled)
(gimp_display_shell_flush)
* app/gui/gui-vtable.c (gui_display_create): always pass a
GimpDisplay, not a GimpDisplayShell as "data" to
gimp_ui_manager_update().
* app/actions/actions.c (action_data_get_*): removed checks if the
passed data is a GimpDisplayShell and temporarily added g_assert()
to be sure. The assertions will be removed before 2.2.
2004-10-07 Simon Budig <simon@gimp.org>
* app/actions/view-commands.c: fill in the formula... :-)
untabbified.
* app/display/gimpdisplayshell-scale.c: Micro-Cleanup, untabbified.
2004-10-06 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.c (file_revert_confirm_callback):
removed the code which sets the new image on all contexts where
the old image was set...
* app/display/gimpdisplay-foreach.c (gimp_displays_reconnect):
...and added it here so it happens for all calls of this function,
also from the PDB. Fixes bug #154638.
2004-10-06 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: store the time when the image is first
dirtied.
* app/display/gimpdisplayshell-close.c: tell the user what time
period of changes will be lost when the image is not saved.
2004-10-04 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added gimprc option "show-help-button".
* app/dialogs/preferences-dialog.c: added a GUI for it.
* app/dialogs/file-save-dialog.c
* app/dialogs/image-new-dialog.c
* app/dialogs/quit-dialog.c
* app/display/gimpdisplayshell-close.c
* app/widgets/gimphelp-ids.h: don't set help-ids on confirmation
dialogs.
* libgimpbase/gimpprotocol.[ch]
* libgimp/gimp.[ch]: added boolean "show_help_button" to the
config message.
* app/plug-in/plug-in-run.c: pass the new preference to the plug-in.
* libgimpwidgets/gimpdialog.[ch]: added new function that allows to
set whether new dialogs should get a help button added.
* app/gui/gui.c
* libgimp/gimpui.c: call gimp_dialogs_show_help_button() according
to the gimprc settings.
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.
2004-09-26 Michael Natterer <mitch@gimp.org>
Ported GimpNavigationView to use actions for its buttons:
* app/menus/menus.c (menus_init): register a <GimpNaviagaionEditor>
UI manager containing the "view" action group.
* app/actions/actions.c (action_data_get_foo): handle "data" being
a GimpNavigationEditor.
* app/actions/view-actions.c (view_actions): added tooltips for
the actions used in the editor.
(view_actions_update): use action_data_get_display() instead of
checking the type of "data" manually.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): use
a GtkToggleButton instead of GimpButton for GtkToggleActions.
* app/display/gimpnavigationeditor.[ch]: added a GimpMenuFactory
parameter to the public constructor and removed all other
parameters. Simplified gimp_navigation_editor_new_private() and
use gimp_editor_add_action_button() instead of just add_button()
for creating the buttons. Made gimp_navigation_view_set_shell()
private. Update the UI manager when the shell zooms or scrolls.
* app/dialogs/dialogs-constructors.c (dialogs_navigation_view_new):
pass the menu_factory to gimp_navigation_editor_new().
Removed #includes which are not needed any more.
2004-09-25 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-close.c: changed mnemonic so that
you can close an image w/o saving it by using Ctrl-W Alt-W.
2004-09-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-qmask.h: added comment about not changing the
silly "Qmask" string because it is used to identify the Quick Mask
in the XCF.
* app/core/gimpchannel.c: implement GimpViewable::get_description()
and return "Quick Mask" if it's the Quick Mask.
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c
* app/core/core-enums.[ch]
* app/core/gimpimage-qmask.c
* app/display/gimpdisplayshell.c: s/QuickMask/Quick Mask/.
2004-09-13 Sven Neumann <sven@gimp.org>
* plug-ins/common/jpeg.c (save_dialog): make the "Save EXIF data"
toggle insensitive when no EXIF data is present (bug #140042).
* app/display/gimpdisplayshell-close.c: as suggested by the HIG,
ask the user to save the image when the last display is being
closed. Addresses some issues raised in bug #106726.
2004-09-11 Simon Budig <simon@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: Added boolean parameter to
gimp_dialog_factories_toggle to make it possible to ensure a visible
toolbox.
* app/actions/dialogs-commands.c: Use the new parameter to ensure
toolbox visibility after the last image window closes.
* app/display/gimpdisplayshell-callbacks.c: Changed accordingly.
Fixes bug #137057 (the discussion is in bug #152285)
2004-09-07 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-draw.c
(gimp_display_shell_draw_grid): #define the constant crosshair
size for the INTERSECTION grid style instead of using an eeky
"const gint".
2004-09-03 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpchecks.[ch] added gimp_checks_get_shades().
* app/base/temp-buf.c
* app/display/gimpdisplayshell-render.c
* libgimpwidgets/gimppreviewarea.c: use the new function instead
of replicating these numbers in three different places.
2004-09-02 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c (check_combos): light and
dark check color were swapped for GIMP_CHECK_TYPE_GRAY_CHECKS.
* libgimpwidgets/gimppreviewarea.[ch]: added "check-size" and
"check-type" properties and draw the checkerboard accordingly.
2004-09-01 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.c
* app/widgets/gimpprogressdialog.c: gracefully handle progress
calls after the widget is destroyed. Re-fixes bug #150194.
* app/widgets/gimpnavigationpreview.c
* app/widgets/gimpnavigationpreview.h: renamed these files to ...
* app/widgets/gimpnavigationview.c
* app/widgets/gimpnavigationview.h: to these.
And renamed the GimpNavigationPreview type to GimpNavigationView.
Hopefully, this is the last change in file names for the Preview->View
renaming process.
* app/display/gimpnavigationeditor.c
* app/widgets/Makefile.am
* app/widgets/widgets-types.h: Changed accordingly.
* app/display/gimpnavigationview.c
* app/display/gimpnavigationview.h: renamed these files to...
* app/display/gimpnavigationeditor.c
* app/display/gimpnavigationeditor.h: ... these files, and of course
changed GimpNavigationView to GimpNavigationEditor since it is really
inherited from GimpEditor anyway.
This will leave the gimp_navigation_view namespace for the renaming
from gimp_navigation_preview.
* app/display/Makefile.am
* app/display/display-types.h
* app/display/gimpdisplayshell-callbacks.c
* app/gui/dialogs-constructors.c: Changed accordlingly.
2004-08-25 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): print bad '%' sequences
literally instead of warning (g_warning() is for programming
errors only and must never be triggered by bad or intermediate
user input). Fixes bug #150676
2004-08-24 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.c: put the icon to the right for RTL
layouts.
* app/display/gimpdisplayshell-close.c
* app/gui/quit-dialog.c: use a GimpMessageBox.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-blend.c
* app/core/gimpprogress.c: some progress cleanup.
* app/display/gimpstatusbar.c (gimp_statusbar_progress_start): no
need to warn if there is already a progress active, just silently
return NULL as all other GimpProgressInterface implementors.
* app/plug-in/plug-in-progress.c: several progress fixes.
It's still a mess.
* plug-ins/common/url.c: don't show progress depending on
run_mode. Run the actual file plug-in with the same run_mode we
were invoked with.
2004-08-10 Michael Natterer <mitch@gimp.org>
Redid the whole internal progress stuff: don't pass around
progress_callback and progress_data; instead, provide a
pointer to a GimpProgressInterface which can be implemented
by a variety of backends.
Addresses (but not yet fixes) bugs #6010, #97266 and #135185.
* app/display/Makefile.am
* app/display/gimpprogress.[ch]: removed the old progress hack.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpprogress.[ch]: implement GimpProgressInterface.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressdialog.[ch]: the standalone progress
dialog as widget implementing GimpProgressInterface.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.[ch]
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpthumbbox.[ch]: added GimpProgressInterface
implementation to these classes.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: replaced the old progress vtable entries
by two new to create and destroy a GimpProgressDialog in case
no other progress is available.
* app/pdb/procedural_db.[ch]
* app/plug-in/plug-in-run.[ch]
* tools/pdbgen/app.pl: pass a GimpProgress to all PDB wrappers and
all plug-ins.
* app/plug-in/plug-in.[ch]
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-progress.c: handle the case there the
plug-in was crated with a progress as well as the case where it
wasn't.
* app/app_procs.c
* app/batch.c
* app/xcf/xcf.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: changed accordingly.
* app/core/gimpimagefile.[ch]
* app/display/gimpdisplayshell-dnd.c
* app/gui/file-open-dialog.c
* app/gui/file-open-location-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: pass a GimpProgress to all file
related functions. Embed the progress in the file dialog where
possible.
* app/core/gimpdrawable-blend.[ch]
* app/core/gimpdrawable-transform.[ch]
* app/core/gimpimage-convert.[ch]
* app/core/gimpimage-flip.[ch]
* app/core/gimpimage-resize.[ch]
* app/core/gimpimage-rotate.[ch]
* app/core/gimpimage-scale.[ch]
* app/core/gimpitem-linked.[ch]
* app/core/gimpitem.[ch]
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimplayer.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c: replaced callback/data by GimpProgress.
* app/tools/gimpblendtool.c
* app/tools/gimptransformtool.c
* app/gui/convert-dialog.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/actions/image-commands.c
* app/actions/layers-commands.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: changed callers accordingly.
* app/pdb/*_cmds.c: regenerated.
2004-08-05 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.c: make the cursor coordinates label
insensitive when displaying out-of-image coordinates.
2004-07-31 Hans Breuer <hans@breuer.org>
* app/display/makefile.msc app/widgets/makefile.msc : build
but *dont link* display-enums.obj, widget-enums.obj and
gimpdisplayoptions.obj. They must be in the dll
* app/makefile.msc : build gimp.exe and gimp-console.exe both
using the same gimp-core.dll
* app/gimpcore.def : new file, exports for gimp-core.dll
* app/Makefile.am : added to EXTRA_DIST
* cursors/makefile.msc : new file to create gimp-tool-cursors.h
* cursors/Makefile.am : added to EXTRA_DIST
* **/makefile.msc : updated
* app/main.c app/app_procs.c : moved code to close the console
from the former to the later. It only is to be used if The Gimp
is not build as console app.
* plug-ins/gfig/gfig.c : dont gimp_drawable_detach() the same
drawable twice
* plug-ins/gfig-dialog.c() : added a g_return_if_fail() to avoid
crashing on File/Import
2004-07-29 Michael Natterer <mitch@gimp.org>
Replaced the concept of having a boolean indicating if an undo
step dirties the image by a bitfield indicating which parts
of the image are dirtied:
* app/core/core-enums.[ch]: reordered two values in enum
GimpUndoType, added GIMP_DIRTY_IMAGE_SIZE to enum GimpDirtyMask.
The values of GimpDirtyMask are still questionable and will
probably change...
* app/core/gimpimage.[ch]: removed signal "undo_start" and added
a GimpDirtyMask parameter to the "dirty" and "clean" signals.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): replaced
"gboolean dirties_image" by "GimpDirtyMask dirty_mask" and pass
it to gimp_image_dirty().
(gimp_image_undo_group_start): added *ugly* code which tries to
figure GimpDirtyMask from the group's GimpUndoType and store it in
the GimpUndoGroup. Call gimp_image_dirty() instead of the removed
gimp_image_undo_start(). This means the undo group now dirties the
image just like one of its undo steps, but that's no problem since
undoing cleans it in the same way.
* app/core/gimpundo.[ch]: s/dirties_image/dirty_mask/g
(gimp_undo_pop): emit clean/dirty signals *before* performing the
actual undo step so listeners can detach from the image before it
is changed by undo.
* app/core/gimpimage-undo-push.c (gimp_image_undo_push_*): pass a
GimpDirtyMask instead of TRUE/FALSE to gimp_image_undo_push().
* app/core/gimpimagemap.[ch]: removed "gboolean interactive"
because it makes no sense to use GimpImageMap noninteractively.
Don't freeze()/thaw() undo while the image_map is active which
fixes many ways of trashing the image's undo state but probably
introduces new ways of doing evil things.
* app/display/gimpdisplay-foreach.c
* app/display/gimpdisplayshell-handlers.c: changed according
to the GimpImage::clean()/dirty() signal changes. Small fixes
in the quit dialog's dirty image container.
* app/tools/gimptoolcontrol.[ch]: added member and API to
set/get the dirty_mask.
* app/tools/gimpcroptool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.c: whenever setting "preserve" to
FALSE, also set a "dirty_mask" which specifies on which image
changes the tool wants to be canceled.
* app/tools/tool_manager.c: removed "undo_start" connection and
connect to both "dirty" *and* "clean" to check if the active_tool
needs to be canceled. Cancel the tool only if the dirty_mask
passed in the signal has common bits with the tool's dirty_mask.
Fixes bug #109561 and probably opens some new ones...
2004-07-29 Michael Natterer <mitch@gimp.org>
Added support for motion event history as provided by some input
device drivers. If you have a tablet driver supporting this,
please try and report back.
* app/display/gimpdisplayshell.h (struct GimpDisplayShell): added
member "guint32 last_motion_time".
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_tool_events): remember the last_motion_time on
button_press() and after motion() and ask the current device for
its motion history; in motion(), if the active_tool asks for exact
motions, check if the input device recorded a motion history and
process the history instead of the motion event.
(gimp_display_shell_get_time_coords): new utility function which
gets GimpCoords from a GdkTimeCoord struct as used by the motion
history.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_reconnect):
emit "reconnect" *before* emitting scale and scroll events so
listeners (the navigation view) can switch to the new image at the
right time.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h: added still unused flags type
GimpDirtyMask.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimpthumb/Makefile.am: changed calls to gimp-mkenums to
support GTypeFlags and to make the value arrays private to the
get_type() functions.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c: regenerated.