2008-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scale.[ch]:
Rename gimp_display_shell_scale_setup() to
gimp_display_shell_update_scrollbars_and_rulers(), because that's
exactly what that function does.
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-scroll.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-callbacks.c: Adapt to new name.
svn path=/trunk/; revision=26484
2008-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scroll.[ch]: It makes more sense
for gimp_display_shell_get_scaled_image_size() to be moved from
here to
* app/display/gimpdisplayshell-draw.[ch]: here, and rename it to
gimp_display_shell_draw_get_scaled_image_size().
* app/display/gimpdisplayshell.c: Adapt to name change.
svn path=/trunk/; revision=26479
2008-08-10 Martin Nordholts <martinn@svn.gnome.org>
Put functions to center the image in the display shell where they
belong, and give them proper names.
* app/display/gimpdisplayshell-scale.[ch]: Get rid of functions
and use the new names.
* app/display/gimpdisplayshell-scroll.[ch]: Put the functions here
and call them gimp_display_shell_scroll_center_image() and
gimp_display_shell_scroll_center_image_on_next_size_allocate().
* app/display/gimpdisplayshell.c:
* app/display/gimpdisplayshell-handlers.c: Use the new names.
svn path=/trunk/; revision=26470
2008-08-03 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new): Center
the image after connecting to it. This is required if the image we
connect to is smaller than the initial canvas size.
svn path=/trunk/; revision=26356
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-13 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell-scale.[ch]
(gimp_display_shell_center_image): Allow to choose what axes to
center on.
(gimp_display_shell_scale_fill)
(gimp_display_shell_scale_fit_in): Explicitly center on both axes.
* app/display/gimpdisplayshell.c (gimp_display_shell_fill): Center
the image in the filled display shell. Rather hackish, but seems
to work fine.
svn path=/trunk/; revision=26185
2008-07-13 Martin Nordholts <martinn@svn.gnome.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_fill): Don't
ask gimp_display_shell_set_initial_scale() for display size, we
don't care anyway.
svn path=/trunk/; revision=26167
2008-07-12 Martin Nordholts <martinn@svn.gnome.org>
The following change is conceptually based on a patch by
Alexia Death and implements the core functionality for
bug #362915.
* app/display/gimpdisplayshell-scroll.[ch]
(gimp_display_shell_scroll_clamp_offsets): Clamp the offsets in
such a way that allows to scroll beyond the image border.
(gimp_display_shell_setup_hscrollbar_with_value)
(gimp_display_shell_setup_vscrollbar_with_value): Put common
scrollbar range setup code here.
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_setup): Use above helper functions for
setting up scrollbar range.
* app/display/gimpdisplayshell-callbacks.c: Handle adjustment of
the scrollbar range when they are about to change value.
* app/display/gimpdisplayshell.c: Always keep the scrollbar
steppers sensitive to user input.
svn path=/trunk/; revision=26166
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-05-26 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpruler.[ch]
* libgimpwidgets/gimphruler.[ch]
* libgimpwidgets/gimpvruler.[ch]: added ruler widgets. These are
mostly copied from GTK+ and work as a drop-in replacement for
GtkRuler and friends.
* libgimpwidgets/gimpwidgets.def: updated.
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-scale.c
* app/dialogs/resolution-calibrate-dialog.c
* plug-ins/imagemap/imap_preview.c
* plug-ins/gfig/gfig-preview.c: use the GimpRuler widgets.
svn path=/trunk/; revision=25820
2008-04-29 Sven Neumann <sven@gimp.org>
* app/display/gimpscalecombobox.[ch]: added signal
"entry-activated".
* app/display/gimpstatusbar.c (gimp_statusbar_new): connect to
the
new signal and move the focus to the canvas.
* app/display/gimpdisplayshell.c (gimp_display_shell_new):
comment.
svn path=/trunk/; revision=25549
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-04-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplay.[ch]: added new function
gimp_display_close() which decides if gimp_display_delete() or
gimp_display_empty() needs to be called.
* app/display/gimpdisplay-foreach.[ch]: added new function
gimp_displays_close() and removed the 'do_quit' parameter from
gimp_displays_delete().
* app/gui/gui.c (gui_exit_callback): changed accordingly.
* app/display/gimpdisplayshell-close.c: removed
gimp_display_shell_really_close() and call gimp_display_close()
instead.
* app/display/gimpdisplayshell.c (gimp_display_shell_empty):
moved
code to update the ui managers here.
* app/actions/file-commands.c (file_save_cmd_callback)
(file_close_cmd_callback)
* app/dialogs/file-save-dialog.c (file_save_dialog_response)
* app/dialogs/quit-dialog.c (quit_close_all_dialog_response):
close displays instead of deleting them.
* app/gui/gui-vtable.c (gui_display_delete): call
gimp_display_close().
svn path=/trunk/; revision=25377
2008-03-30 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c
(gimp_display_shell_scale_changed):
never set the dest_inc and src_dec variables to zero.
svn path=/trunk/; revision=25313
2008-03-30 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-cursor.[ch]: added new function
gimp_display_shell_unset_cursor().
(gimp_display_shell_real_set_cursor): deal with cursor_type -1
and
change the cursor to the default desktop cursor. Fixes warnings
on
image load.
* app/display/gimpdisplayshell.c (gimp_display_shell_empty):
use gimp_display_shell_unset_cursor().
svn path=/trunk/; revision=25312
2008-03-27 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
added an arbitrary number to the minimum height.
svn path=/trunk/; revision=25259
2008-03-27 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.c: make sure that the statusbar frame
requests enough space to hold it's children, also the invisible ones.
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
don't add 1 pixel here, this spacing is gone.
svn path=/trunk/; revision=25258
2008-03-27 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.[ch]: derive GimpStatusbar from
GtkStatusbar. Use the normal statusbar label for statusbar
messages and only show the progressbar when progress is active.
* app/display/gimpdisplayshell.c (gimp_display_shell_new): removed
spacing from the main vertical box.
svn path=/trunk/; revision=25257
2008-03-26 Michael Natterer <mitch@gimp.org>
* app/display/gimpcanvas.[ch]: improve wilber scaling and remove
the drop zone layout.
* app/display/gimpdisplayshell.c: add a tooltip instead.
svn path=/trunk/; revision=25241
2008-03-25 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.[ch]: added gimp_statusbar_peek(), a
method to access the contents of the statusbar.
* app/display/gimpdisplayshell.c
(gimp_display_shell_window_state_event): when the iconfied state
changes, call gimp_display_shell_progress_window_state_changed().
* app/display/gimpdisplayshell-progress.[ch]: when the image
window is iconified, display the progress message in the window
title so that it appears in the task bar.
* app/menus/plug-in-menus.c: formatting.
svn path=/trunk/; revision=25224
2008-03-25 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.[ch]: remove the window
state callback here...
* app/display/gimpdisplayshell.c: ...add it here and turn it into
a GtkWidget::window_state_event() implementation instead of a
signal callback.
svn path=/trunk/; revision=25223
2008-03-25 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.[ch]:
* app/display/gimpdisplayshell.c (gimp_display_shell_init): moved
handling of window state events to a separate callback.
svn path=/trunk/; revision=25221
2008-03-25 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
fix to work without menubar, don't reset GDK_HINT_USER_POS.
svn path=/trunk/; revision=25217
2008-03-25 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new): center
the empty image window on first startup.
svn path=/trunk/; revision=25214
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new): use the
right GimpDisplayOptions to set the initial visibility of the
shell's widgets.
svn path=/trunk/; revision=25183
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.c: implement GtkWidget::size_request()
and also consider the children which can be invisible when the
display is empty.
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
set the minimum height of the display to menubar + statusbar
height.
svn path=/trunk/; revision=25182
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-21 Sven Neumann <sven@gimp.org>
* app/core/gimptemplate.[ch]: moved defines to the header file
and
changed to 640x400 which is actually almost the golden mean as
claimed by the comment.
* app/display/gimpdisplayshell.c: use the defines here.
svn path=/trunk/; revision=25165
2008-03-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_fill_idle):
gtk_window_present() the image window to make sure that images
aren't opened into a minimized image window.
svn path=/trunk/; revision=25161
2008-03-20 Sven Neumann <sven@gimp.org>
* app/gui/gui.c (gui_restore_after_callback): create the empty
display before the other windows.
* app/display/gimpdisplayshell.c (gimp_display_shell_new): center
the empty window and create additional image windows under the
mouse cursor. Just an experiment ...
svn path=/trunk/; revision=25143
2008-03-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new): make it
work when called with display->image == NULL. Use a randomly
picked canvas size for now, more later.
(gimp_display_shell_fill): add missing call to
gimp_display_shell_scale_changed().
* app/gui/gui.c (gui_restore_after_callback): create an empty
display.
svn path=/trunk/; revision=25141
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/gimpdisplayshell.c (gimp_display_shell_empty): use
the desktop default cursor for the empty display.
svn path=/trunk/; revision=25134
2008-03-19 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_empty): the
code to reset the cursor got lost when introducing this function.
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_dnd_init): remove redundant casts.
svn path=/trunk/; revision=25133
2008-03-19 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_expose): return FALSE so that the
default drag highlighting works.
* app/display/gimpdisplayshell-dnd.c: only set the canvas as
drop
target, not the whole shell.
* app/display/gimpdisplayshell.c: delay the call to
gimp_display_shell_dnd_init() until after the canvas has been
created.
svn path=/trunk/; revision=25127
2008-03-19 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpstatusbar.[ch]: hide/show the cursor label and
the unit and scale combo-boxes.
svn path=/trunk/; revision=25125
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-19 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_update_icon):
deal with NULL image and unset the icon.
* app/display/gimpdisplay.c (gimp_display_set_image): unset the
icon when no image is set.
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): use GIMP_NAME as the window
title when no image is set. Append GIMP_ACRONYM otherwise.
svn path=/trunk/; revision=25115
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