History log of /haiku/src/apps/showimage/ShowImageView.cpp
Revision Date Author Comments
# 20e18366 25-Aug-2023 Augustin Cavalier <waddlesplash@gmail.com>

ShowImage: Use layouts for the main view area.

The main window itself is still not using them,
due to incompatibilities with the toolbar animation.

Fixes #18547.


# 55403e4b 23-Jun-2023 Humdinger <humdingerb@gmail.com>

ShowImage: avoid trigger screen saver in full screen

ShowImage hides the mouse pointer when in full screen. This change
additionally avoids triggering the screen saver in that case, using
the same method as MediaPlayer, i.e. setting the current mouse
coordinates.

Change-Id: I151be209f02a2b8d3033766f2b7469655a5c8b61
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6639
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 87d8b177 29-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

ShowImage: Use BControlLook::ComposeIconSize.

Also use BBitmap::ImportBits instead of a manual copy, while at it.


# cae52ead 07-Apr-2015 Janus <janus2@ymail.com>

Showimage: Add zoom level to StatusBar.

* Improve StatusBar graphics (Same style as StyledEdit).
* Resize the StatusBar to best fit.
* Fixes #7394.


# e1e77df2 29-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Make gcc4 happy.


# 554e2073 28-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

ShowImage: add feature to force original size.

* This is enabled by shift+click on the Original Size toolbar button.
* The button stays pressed as long as the feature is enabled. Clicking
it again disables it.
* When this is enabled, all images will be shown at original size,
instead of being scaled up or down to fit the window.
* This is not persistent, and only affects the current session/window.


# 9494b43a 28-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert attempt to fix stretch-to-window.

Turns out the option shouldn't do what I need. Let's add another option.


# 2bd9c8a5 27-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

ShowImage: fix scale-to-fit behavior

* Fix the condition so that big images are fitted to the window on first
time only if the option is set.
* Small images are never stretched to the window size, as this isn't
very useful.

The interaction of this global setting with the zoom buttons is a bit
confusing. Should they be merged?


# 0a2382e3 07-Mar-2014 John Scipione <jscipione@gmail.com>

ShowImage: Scroll horizontally with control

...instead of command.

See http://www.freelists.org/post/haiku-commits/haiku-hrev46304-srckitsinterface,18


# 5b6c94c5 07-Mar-2014 John Scipione <jscipione@gmail.com>

ShowImage: Style fixes related to scrolling


# fa392c2a 05-Mar-2013 Ryan Leavengood <leavengood@gmail.com>

Remove unused ShowImage Undo code.


# a9589518 04-Mar-2013 Ryan Leavengood <leavengood@gmail.com>

Change the cursor hiding so it isn't done constantly when enabled.


# 74e14f5c 06-Feb-2013 Janus <janus2@ymail.com>

Fix #8781. Display rotated images with alpha channel properly

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 03352b04 30-Nov-2012 Janus <janus2@ymail.com>

Fix #7736. Avoid memory corruption

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 537a273c 24-Jun-2012 Humdinger <humdingerb@gmail.com>

Coding style changes, no functional change.
Hope all's OK, Filter.h is still mostly untouched as it's quite messy with
many exessive commenting.


# ccae01d4 23-Jun-2012 Humdinger <humdingerb@gmail.com>

Fixed issue when auto-showing toolbar in fullscreen mode.

If you've zoomed in fullscreen mode and moved the mouse to the top of the
screen, the toolbar didn't appear. You had to scroll up to the top of zoomed
image first. Using the screen coords instead of the view coords fixes this.


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 281ad93c 24-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Make the zoom "sticky" at 1.0 for about half a second when zooming with the mousewheel.

It might be a bit annoying, not sure yet.

Implements #7253.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42311 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f06b3de 24-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Changing the order of function calls in SelectAll() causes the selection rect
size to show up correctly in the status bar.

Fixes #7710.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42310 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0227dce 24-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

In fullscreen mode, hide and show the toolbar based on the mouse's position,
not just any mouse movement. When the mouse reaches the top 15 pixels, show the
toolbar, otherwise hide it.

Implements #7735.

On a related note, the animation for toolbar showing and hiding which Stephan
implemented is really nice. We need more animation in Haiku!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07fb28e3 18-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Delete the cursors in the view destructor. Thanks Axel!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42237 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 828a3e95 18-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Account for quickly repeated double clicks when toggling fullscreen mode. If
done fast enough the click count can reach 7 pretty easily.

Fixes #7591.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42233 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c4be36f 17-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Use grabbing cursor when moving image with the mouse.

Fixes #7592.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42232 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8445a945 17-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Make the delete key clear the selection in selection mode, trash the file otherwise.

Fixes #6772.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eaa910c5 27-May-2011 Axel Dörfler <axeld@pinc-software.de>

* We obviously need to relayout manually, as it looks like the view is not
layouted correctly after the resize. This fixes bug #7577. Ingo, is this
the desired behaviour of the layout engine, and if so, what's the rationale
behind it?
* Removed extraneous FitToBounds() call in ShowImageView::SetHideIdlingCursor();
it doesn't belong there.
+alpha


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94fd9498 08-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

* The window uses layout management in principle. This was necessary
to get the main menu bar to report the correct minimum size. My
previous commit with regards to setting the correct minimum window
size introduced a regression that the window could not shrink below
it's initial size because of some backwards compatibility behavior
of BMenuBar (IIRC).
* Inserted a content view to hold the tool bar and the show image
views. This one does not use layout management, so that everything
pretty much works as before.
* Showing/Hiding the tool bar is now animated.
* When the tool bar is enabled in principle, it will automatically
show in full screen mode when the user moves the mouse. When the
mouse is not above the tool bar, it is hidden after a delay.
* Added a right-aligned "Leave full screen" icon to the tool bar.
* Improved the workings of the slide show icon. As before, it automatically
triggers full screen mode. It is now pressed when the slide show is
running. Clicking it again just stops the slide show without affecting
the full screen mode (i.e. also not when the user left full screen mode
meanwhile).

There are some problems with images not being automatically sized to
the full screen size as would be expected. This needs to be fixed, yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41202 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf9f46bc 21-Mar-2011 Axel Dörfler <axeld@pinc-software.de>

* Double click now toggles full screen, as in the MediaPlayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65763c97 04-Mar-2011 Axel Dörfler <axeld@pinc-software.de>

* Fit image to the view bounds again after a rotation (it's quite annoying when
you suddenly only see part of the image). This could be improved by only doing
so if the image was fit before, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebd792d8 20-Feb-2011 Axel Dörfler <axeld@pinc-software.de>

* Made the minimum zoom depend on the actual zoom factor, too. This fixes the
wrong resizing as observed by humdinger.
* I did not remove the limit altogether, because it's a bit odd to be able to
zoom out until you only see a pixel from the original image... Maybe someone
has a better idea on how to go about this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40582 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b820451 19-Feb-2011 Stephan Aßmus <superstippi@gmx.de>

Fixed a typo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80589ff3 09-Jan-2011 Ryan Leavengood <leavengood@gmail.com>

Remove hack introduced in r36806 to offset the context menu due to our
previously bad menu handling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40179 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4aa63633 09-Jan-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed the slide show code from ShowImageView, and reimplemented them in
ShowImageWindow using a BMessageRunner.
* Note, this is completely untested, as it turns out my Haiku installation on
this box is too old to run it. It compiles, at least, and shouldn't break
anything else.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40178 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43d3fdf3 28-Dec-2010 Ryan Leavengood <leavengood@gmail.com>

CID 6925: Use snprintf. Also sizeof(size) is kind of funny.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40008 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 876a4a3c 25-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Also call FitToBounds() when you disable stretching, and the image is
currently zoomed in. This closes #6857.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39631 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d0405baf 19-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed #3042 as suggested by Stippi (looks like I'm quickly following Ingo's
great example at getting senile - at least he told me about this solution
before; the same trick is already used in SetZoom()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2069723 14-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the "shrink to window" option. Instead, there is now a "Fit to window"
menu item that just does that. Additionally, the image is always fit to the
window size when first shown, or if the full screen mode switches.
That also fixes #6765, and #6810.
* The ImageCache now also passes a referenced BitmapOwner object, and bitmaps
are now actually freed when it's allowed to.
* Pressing the zoom button will cause ShowImage to enter full screen again. For
some reason this has been removed as part of r19540.
* The progress window is now visible again, although not that often, as you will
only see it for images that were not in the queue already. The window is now
known to the ShowImageWindow instead of the ShowImageView.
* Moved most constants out of ShowImageConstants.h to where they belong.
* Dropping an image now opens it in another window.
* Removed EntryMenuItem as it's no longer used anywhere.
* Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39431 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9767a83 08-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* The ImageFileNavigator is now only for navigation, it doesn't load any images
anymore.
* Moved the new ImageCache into its own source file.
* The cache is now used within ShowImage. There is no read-ahead caching being
done yet, though, but you can quickly return to previous images, and you can
also skip images faster than before.
* Improved separation between the ShowImageStatusView and the rest;
ShowImageWindow no longer has a getter for the image view.
* The status view is now using the private BDirMenu which implements enhancement
ticket #6778.
* Made a few more methods private/protected in ShowImageWindow.
* Fixed bug #6797.
* The bitmap is currently only owned by the ImageCache, but we need to have a
separate referenceable object owning it. Added a TODO comment for this.
* The ProgressWindow is currently not being used anymore, added a TODO comment
for this as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 328932ac 05-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Work in progress on implementing asynchronous image retrieval with a
read-ahead cache. Not yet done or used.
* Added deleting images via delete key again. The only difference to before is
that it will open the previous image if the last image in a folder was
removed, and only close ShowImage if there is no image left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba3217ee 03-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Moved the Tracker navigation logic into its own class, TrackerNavigation.
* Added a new class FolderNavigation that implements the same for folders
without a Tracker window.
* ImageFileNavigator is now using either one depending on whether it got a
valid tracker messenger.
* Removed some unused/unneeded methods.
* Made entry_ref a reference at some more methods, as it's not really optional.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39292 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd6b5cde 01-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Completed stippi's work on the ImageFileNavigator.
* ShowImageWindow is now using such a navigator.
* Removed navigation support from ShowImageView.
* Prepared everything to support asynchronous image loading (which is not yet
implemented, though).
* Note, this commit brings some regressions I intend to fix in the next few
days, namely deleting files won't work anymore, and dropping images onto
ShowImage. There might be more I don't know about, though :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39259 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6db01936 24-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Added a selection mode that can currently only be enabled via the menu
(should be part of an optional tool bar in the future). Now the primary, and
the tertiary mouse button pan the image. You still get the selection when
using alt or ctrl and the primary mouse button, even outside of the selection
mode. In selection mode, the primary button changes the selection.
* Renamed {Shrink|Stretch}ToBounds() to comply to our coding style, thanks Ingo.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39132 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fd570d3 24-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed another pet peeve of mine: you can now always zoom, no matter if you
have enabled the shrink/stretch option.
* Renamed "zoom to window" to "stretch to window".
* Readded the shrink/stretch options to the full screen context menu only.
* Renamed GetShrinkToBounds() to ShrinkToBounds() as it's a simple getter.
* Changed how and when the shrink/stretch options come into play. Shrinking is
now only set once, when the image is first shown.
* Added snapping in ZoomIn(), and ZoomOut(): they will now always choose 1.0,
and the "fit to window" zoom level when they are close.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b517fc43 24-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed typo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32c22143 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* The shrink/zoom to window options aren't available anymore from the context
menu. I plan to allow zooming always, so they won't be needed that often
anymore.
* Removed all selection copy/move/cut code. This just doesn't belong into an
image viewer.
* Selections are now changed using the tertiary mouse button, or when you press
the command or control modifiers. Instead, the image will now be moved around
with the left button.
* If you drop an image file to ShowImage, it will now open it instead of pasting
it as selection.
* Reworked the scrolling/selection code to never poll, and never use GetMouse().
Instead properly use the asynchronous API (ie. B_NO_POINTER_HISTORY).
* I plan to remove the scaling code as well: the results aren't as good as they
could be (bilinear scaling isn't the solution for everything), and the
interface is pretty awkward, anyway. IMO, this kind of functionality should
be left to apps that are actually thought for image editing. Another solution
would be a Tracker add-on that resizes (multiple) images.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39105 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d164619e 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the delayed scaler code - it's no longer needed (and was trying rather
stupid things like creating a 50000x40000 pixel bitmap if you zoomed in).
* Removed dithering in CMAP8 mode. Please use 32 bit mode instead :-)
* Cleaned up ShowImageWindow.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39098 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1076d97b 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the ability to invert an image. If you really need that feature,
you'll now have to open an image editing application instead.
* Removed the black border around the image.
* Removed the B_PANEL_BACKGROUND_COLOR background in non-full screen mode - it's
now always black.
* Made zoom level changes exponential.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39095 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6046b973 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Implemented zooming to the current mouse position. Thanks to stippi for the
invalidate trick to prevent the app_server to scroll.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39079 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 62776696 18-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

Removed one liner function that was only called from one place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37166 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0df61fa3 17-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Moved selection box handling into a separate class SelectionBox. Mouse hooks
of that class are not yet used. Invalidation of the view could also work
via listener mechanism.
* Made image <-> view conversion and constraint methods public.
* Sorted .cpp files in Jamfile alphabetically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37164 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b525d7 16-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

Previously misunderstood what fMovesBitmap means, renamed _MoveBitmap() also
so these two match up again and refer scrolling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37160 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fa7e62e 16-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Coding style cleanup
* Some cleanup in member sorting
* Some renaming of members for improved clarity
* Removed _HasSelection() and use fHasSelection directly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5ab8434c 12-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Fixed storage of image data in the system clipboard. According to the
comments in the code, different programs do it differently. However, I
believe we should follow the BeBook documentation. This is the method which
WonderBrush uses as well, and that one had been tested with other apps like
Refraction. Potentially, copy&paste could work across GoBe Productive now
also, but I didn't test.
* Handle the case where the selection bitmap that gets restored from the
clipboard has a bounds rectangle with an offset. Use this offset as an
alternative to the "be:location" hack.
* Fix the drag bitmap to be semi-transparent on Haiku. B_OP_SELECT does not
affect the alpha channel on Haiku like it apparently did on BeOS, though
I am not inclined to change that behavior.
* Fixed some coding style violations, but tried to mix as little cleanup as
possible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d0a2818e 10-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Do not use the Scaler anymore for asynchronous bilinear filtering, but pass
B_FILTER_BITMAP_BILINEAR to DrawBitmap(). There is virtually no delay at all.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0a37632 13-May-2010 Ryan Leavengood <leavengood@gmail.com>

Use a 2 pixel offset instead of 5 for the ShowImage context menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77982ded 12-May-2010 Ryan Leavengood <leavengood@gmail.com>

Fix #5808. I'm not completely happy with this solution, but it fixes the
problem without a bunch of refactoring. I intend to do more refactoring of
ShowImage after developing an automated test suite.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 016233a9 12-May-2010 Ryan Leavengood <leavengood@gmail.com>

Fix #5809 by making the context menu sticky and also offsetting the open point
by 5 pixels. Add a check so that multiple context menus aren't opened.

Also don't draw a 0 x 0 selection rect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36799 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eb0cbb0 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 905c8c8c 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22719833 06-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen, modified by myself to remove translations of BView
names and localization unfriendly string composition. Closes ticket #5563,
thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36647 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35982ed8 17-Jan-2010 Karsten Heimrich <host.haiku@gmx.de>

* Fix can't cut and drag a piece of picture from ShowImage to Desktop, ticket #4874.
* Set the current image mime as first in the translators list, thus on drag&drop with
left mouse button the same image type is created as the currently loaded in ShowImage.

Still this does more hide than fix the real problem, beeing ICO translator the first in
the generated translator list due to the high capabilitys values and a limited set of
output sizes it can handle. I attached a further fix to the ticket, still i would like
to get some other opinions on it before commiting.


By default the transla


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35139 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7974d3dc 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bce3b09a 17-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Idefix that fixes bug #4730 by removing the iterate over
directory functionality without Tracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34103 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1adcc578 30-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* The new Command-[Shift-]'R' shortcut for rotation is annoyingly unhandy; added
'[' and ']' to rotate without having the Command key held.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33846 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a74004c 15-Aug-2009 Ryan Leavengood <leavengood@gmail.com>

- Added back code for scrolling with the cursor keys, this time only when Shift
is pressed.

- Took Humdinger's excellent advice from #4190 to open the Backgrounds
preferences from ShowImage instead of setting the background manually. This
required some tweaks to the Backgrounds preferences to accept RefsReceived in
the application and forward that to the view. In addition the placement is
set to scaled since otherwise it will keep the old placement. How this is
done is sort of hacky, but I'm going to call it an "internal protocol." This
also allowed me to remove the BackgroundImage code from ShowImage which was
just copied from Tracker (yuck.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32424 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 037e5cee 14-Aug-2009 Ryan Leavengood <leavengood@gmail.com>

Implemented pretty much all of #4190. The Enter key was actually already set as
a shortcut for fullscreen, but I guess the view was processing it first. So I
just removed B_ENTER as an option for next image. Also Shift plus primary mouse
was already working for moving the image.

Also I know it was discussed at length but I still wonder if all these options
for next and previous image are overkill. Now there is no way to scroll with
the keyboard. And there isn't an easy way to go to the next image with the
mouse (menus are a pain.) So I still think some more UI tweaking is needed to
avoid constant shifting between mouse and keyboard.

Finally I also added Command-1 as a shortcut for Original Size, but it does not
work. Anyone know why?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32343 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd952aef 13-Aug-2009 Ryan Leavengood <leavengood@gmail.com>

Started cleaning up these monsters:

- Add underscore to private methods.
- Use class member initializer syntax.
- Make sure all class members are initialized, use same order as headers.
- Header reordering.
- A few other small things.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32342 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9467d144 04-Nov-2008 Jérôme Duval <korli@users.berlios.de>

fix a style violation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28507 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d034a4c9 10-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* traverse the entry so that symlinks to files can be opened as well



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27957 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18c9bf55 10-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* cleanup



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27956 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32b9f1f7 11-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

patch by Andrea Anzani:
* fix a rounding problem when layouting the image
Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23427 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c233a5b7 11-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

Remove debugging printf.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c9f7b3b7 11-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

The zoom level needed to be reset to 1.0 after loading an image, otherwise it
would keep the zoom level of the previous image in some cases.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5878fb79 17-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

Changed the progress monitor protocol to path a basic message that will be sent back
instead of having a fixed message code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20746 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a58eacec 11-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

Implemented a progress window: it will be shown after one second in case the translator
supports it - currently, only the RAW image translator does this (as it needs about 10
seconds to open a 6 mio. pixel RAW image on a 2.6 GHz P4).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20650 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f5fd23f 29-Jan-2007 Ryan Leavengood <leavengood@gmail.com>

The size of the selection rectangle is now shown in the status bar. Useful for
cropping an image to a certain size or taking similar sized croppings from
various images (as I need to do.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20012 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 880be331 28-Jan-2007 Ryan Leavengood <leavengood@gmail.com>

General changes:
- Fixed some formatting in the recently added resizing code.
- Changed the operation name for rotating counterclockwise to use that name
instead of anticlockwise. This makes the code consistent with the GUI.
- Reformatted the constants header to use an enum. Also removed the empty
constants cpp file.
- The QuitRequested handler in the app did not ask the windows to close, which
could cause modified images to be closed without prompting the user. Now it
does, which makes ShowImage more user friendly.

Changes to the image view:
- Added a member for keeping track of the type of image. This is mostly used in
properly updating the window's status bar when the image is changed (flipped,
rotated, etc.) This removes some hacky code I added before :)
- Removed the status parameter in the Notify method since it was only used for
the above image type status updating.
- Removed a redundant if in the mouse up handler.
- The key down handlers for moving to the next and previous image did not
properly prompt the user if the image had changed. I fixed this by sending a
message to the window where the prompting code resides. When adding this I
also created a few helper methods for sending messages to the window, which
removed some (small) repeated code through-out the class.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19994 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a9ab9d2c 19-Jan-2007 DarkWyrm <darkwyrm@gmail.com>

Removed "Stippled Zooming" item and made dithering automatic in 8-bit screen mode
"Keep Proportions" in resizing window became "Keep Original Proportions", which was suggested by korli and is the best suggestion IMO
Bilinear scaling is on by default
I like ShowImage's menus now. :^)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3963402c 28-Dec-2006 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Fixed selection handling bug if zoom level is not 1.0. Zoom factor has to be calculated in Setup() otherwise the selection rectangle uses the wrong zoom level.
Bug was introduced in revision 19253.
@Ryan: Can you please verify that this fix does not introduce another bug?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19648 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 19742321 20-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Changed the delay on hiding the cursor in fullscreen to 2 seconds (much
better...not sure what I was thinking with 5 seconds before.) I also fixed a
few other issues related to this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19578 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6346c894 19-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Implemented Stephan's previous TODO (in an svn commit message) to hide the
cursor after a delay when in fullscreen mode. I set the delay to 5 seconds. In
addition I make sure the ShowImage window is the active window before trying to
hide the cursor, because otherwise there is a lot of cursor flickering if you
change workspaces.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19569 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65040013 19-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Added support to ShowImage for sending an image to the Trash by scripting
Tracker. For now it only works when the delete key is pressed. I suppose a menu
item might be useful, but I can do that later if people really want it :)

When the image is trashed the next image in the directory is opened. If the
trashed image is the last in the directory the window is closed.

The code seems pretty solid as I even tested it with Tracker not running. It
also works fine in R5 (in fact that is where I tested it.)

As shown I would prefer to use the Tracker headers rather than redefining the
constant used for the trashing message. I'm already using Tracker's app MIME
type from the private headers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9f6762d 17-Dec-2006 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Integrated "resize" feature from Zetas version of ShowImage, however used our bilinear scaler instead of Zetas implementation and made ResizerWindow font sensitive and removed the radio buttons with predefined sizes. Kudos to Bernd Korz for providing the ShowImage Zeta source code under MIT license.
Moved menu item "As Desktop Background" into "Image" menu from "View" menu.
Removed unused metod ShowImageWindow::Zoom(...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19540 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 252f4767 12-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Added some needed stdio.h includes. I don't know what magic was used to compile
these for other people, but they wouldn't compile for me when building the
app_server test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76d115d8 11-Nov-2006 Ryan Leavengood <leavengood@gmail.com>

Several ShowImage changes:

- Changed the hotkey for the zoom to be = instead of + so that no shifting is necessary.
- Fixed the bitmap alignment code to solve some problems when zooming.
- Removed all references to alignment in the view since the image was already always centered. This greatly simplified the bitmap alignment.
- Removed the redundant fScaleX and fScaleY members of the view since they were always the same as fZoom.
- Removed all code related to having a border in the view.
- Fixed a bug where the type of file would disappear in the status area when zooming (this fix is a little hackish.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19253 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69eee339 25-Apr-2006 Ryan Leavengood <leavengood@gmail.com>

More changes to ShowImage:

1. The newly renamed "Flip Sideways" and "Flip Upside Down" have been renamed again to "Flip Left To Right" and "Flip Top To Bottom". This was after some feedback indicating a preference for the new names.

2. When dragging a selection the standard outlined rectangle is used for the dragging image instead of the alpha-blended bitmap of the selected part of the image if the selection rectangle is larger than 400x400 (taking into account scaling of the image.) This mimics the original ShowImage with the exception of the minimum size. The choice of 400x400 was fairly arbitrary. I may see about turning that value into some kind of hidden option.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61ddc257 20-Apr-2006 Ryan Leavengood <leavengood@gmail.com>

Fixes to ShowImage:

1. Renamed the Image menu items "Mirror Vertical" and "Mirror Horizontal" to "Flip Sideways" and "Flip Upside Down", respectively. This also involved changing the code to match the new names, for consistency.
2. Fixed a bug where zooming in and out would result in the image moving off center. This was due to the bitmap width and height not being recalculated after applying the zoom factor and therefore throwing off the calculations to find the rect for the center.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17182 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a932a97b 07-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* Mabye I should do better testing of what I "fix"; absolute paths didn't work
anymore from the command line all of a sudden...
* Made the caption background slightly less translucent to allow the text to
be read even with very checkered images.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c70cd577 06-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Made the caption in full screen mode a bit easier to look at (boring yes, but some
people out there just aren't colour blind :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16279 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 009cd106 06-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* No longer hides the mouse cursor when the pop up menu is shown.
* Removed the superfluous "Cancel" item from the pop up menu.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efa8b4f3 06-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed various issues:
* ArgvReceived() did not work with relative paths.
* Simplified quitting (no more CanQuit() and overriding BWindow::Quit()).
* Updated signature.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16260 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 93d1b9f4 09-Jan-2006 Stephan Aßmus <superstippi@gmx.de>

* quick fix for when fBitmap has been recomposed
partly, fDisplayBitmap is not correctly re-established...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15887 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37a3ed92 09-Jan-2006 Stephan Aßmus <superstippi@gmx.de>

* quick hack to hide the cursor in fullscreen
(TODO: do this after a time out)
* quick hack to display bitmaps containing an
alpha channel with a checker background
(TODO: rework filters to be alpha channel
aware and compose the checker background
independently of the filter)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc5ca95d 13-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

fixed alignment and image layout, esc exits fullscreen mode, black background for fullscreen, zooming window toggles fullscreen, can still browse even if current image has been deleted, space toggles slideshow, swapped next/previous menu items (more logical)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13101 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a85b923 13-Feb-2005 Matthew Wilber <mwilber@nowhere.fake>

Fixed page changing, simplified entry_ref usage in SetImage()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11366 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0cd4ecd8 29-Sep-2004 Stephan Aßmus <superstippi@gmx.de>

cosmetical improvements to status view, it also shows the image size now


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2041038a 19-Jun-2004 Matthew Wilber <mwilber@nowhere.fake>

Re-Added directory based Next/Previous file functionality. Now, if tracker scripting is unavailable, user will still be able to use Next/Previous file commands and the slideshow feature


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efc10d5e 07-May-2004 Matthew Wilber <mwilber@nowhere.fake>

Implemented rewind functionality so that slide show no longer stops when it reaches the last file in the directory


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7453 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92fd3356 10-Mar-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed to check if refs are directories and to error properly if they are


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 134d6076 20-Jan-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Use Tracker Scripting to find next/previous image.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7e78e3b 17-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed file saving code so that it is only in one place, (instead of two) and fixed File-->Save As so that it now writes out the type attribute


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 869e256d 17-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Added feature where a file dropped from the Tracker becomes the current selection


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6121 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8138a6e 10-Jan-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Bug fixed: ignore user zoom setting in automatic zoom modes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6000 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01c931e6 03-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed bug in FindNextImage where -1 is returned instead of false


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5895 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64d3ef5f 03-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed bug which occured when the Next or Previous image command was used with an image that failed to translate. Changed Next/Previous image behavior to skip past images that fail to translate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5894 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 491eb383 24-Dec-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Fixed access to invalid bitmap bug.
Refactored code a little bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5746 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6574ee07 23-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed some debug print statements, set the maximum allowed Zoom to 1600%


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5744 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16b663b7 21-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Disable the Invert menu item for B_CMAP8 bitmaps because they are currently unsupported by the invert algorithm.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5721 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f54b971 21-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Cleared the Undo buffer when actions that are reversable are performed. Disabled Invert command for B_CMAP8 bitmaps, as they are not properly inverted


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5720 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75238186 21-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Fixed Edit-->Clear to leave behind a white box if the selection box is not moved after it is made, added Undo capability for Cut and Clear actions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7598450e 17-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Added initial implementation of Undo for OBOS ShowImage! Now, users can Undo/Redo merge/paste operations. Still need to enhance Undo further so that other operations can be undone, also need to account for image rotations and similar operations.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5693 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 55f2e33b 11-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed Paste/DragDrop code so that a clip does not have to be pasted entirely within the bounds of the background bitmap


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5654 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 169c19d6 11-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Implemented drag/drop from one ShowImage window to another


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5653 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 664c5b69 10-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed unneeded calls to Invalidate(), changed minimum size for selection rectangle so that users can click in an empty section of the window to unselect the selection


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf84ef88 28-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed Keydown handler code that invoked the creation/removal of the thumbnail icons


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee7b4f39 28-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added checking for modified document and prompt the user if they try to close a document without saving.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5509541 27-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Fixed bug in conversion from image coordinates to view coordinates are vice versa.
- Change the size of the image being dragged to size of the selection in the view coordinate system.
- Experimental: delay start of filtering thread(s) for some tenth of a second. This allows faster update during resizing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f62b22a 27-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed Cut behavior to match Be's version so that if the user Cuts a selection before moving it, the selection is cut, and a white rectangle is left in its place. If the selection is dragged before the Cut command is used, a white rectangle is not drawn.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8fc7138 25-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Implemented Floyd Steinberg dithering algorithm.
- Remembers "orientation" state (rotated, mirrored or inverted) in file attribute of image.
- Update recent documents menu every time the menu is opened.
- Bug fix and optimization in Filter.cpp.
- Moved image manipulation code from ShowImageView.cpp to Filter.cpp. So it can take advantage of multiple CPUs.
- Experimental: Write/remove thumbnail to/from file icons.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5480 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5e427b6a 22-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Made some settings persistent: Slide Show Delay, Scale Bilinear, Shrink/Zoom to Window, Show Caption in Full Screen Mode and PrintOptions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1021ea17 21-Nov-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

Rollback to original/way better constrated captions colors.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5437 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1967709a 19-Nov-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

Ooops, forget to match caption rect size and position there too...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5420 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c60a8d8c 19-Nov-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

Including Clipboard.h could help.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3046f7d 19-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Made some settings persistent: Slide Show Delay, Scale Bilinear, Shrink/Zoom to Window, Show Caption in Full Screen Mode and PrintOptions persistent.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5415 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51964605 18-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Implemented Cut and Paste. Still need to implement Undo and check for a dirty document when the window or app is closed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5414 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 19c76de4 18-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Rewrote bilinear scaling algorithm. The version that uses fixed point calculations is at least two times faster than the version that uses floating point calculations!
- Fixed off by one bugs.
- Replace "Fit to Window" with "Shrink to Window" and "Zoom to Window".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8ad30bcf 17-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added code to merge selection with background image; removed Select None item, replaced it with Clear as Select None was behaving like Be ShowImage's Clear anyway; properly enabled/disabled Edit menu items when selection is made or cleared. Still no undo yet, but I'm planning to do that after Paste is implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5403 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9eec20bc 16-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed fpBitmap to the more Be-ish notation of fBitmap, added code to allow the user to drag the bitmap selection around like in Be's ShowImage. However, no changes can be made yet to the underlying image. Need to resolve resize flickering of selected image and allow the user to modify the underlying image.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e93ae51 16-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Drag selection code can now move the selection inside the view, fixed selection drag code so that unwanted MouseUps don't affect the selection box movement. Though, drag selection code is not done yet, it is not yet copying the bitmap from where the selection was dragged from, it is just moving the selection rectangle. Dragging a selection to outside of the window still works the same.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5391 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d5be3100 15-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Fixed caption hiding method so that whenever any kind of scrolling is done, the caption is hidden in full screen mode. Previously, the caption would only hide during click-and-drag scrolling and using other scrolling would cause the caption to be painted in various places on top of the image.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5384 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89d164de 15-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added comments to MouseWheelChanged function which explains how B_MOUSE_WHEEL_CHANGED behaves.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5376 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 868de40a 15-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Fixed issue where view scrolls to the left when mouse wheel is used, changed to scroll faster if the wheel is scrolled multiple clicks per B_MOUSE_WHEEL_CHANGED message, increased the scroll speed


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5375 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 50d78f98 13-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Bug fixed: virtual function must not be called in destructor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 938629a7 13-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Bug fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81b9c776 12-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- scale bilinear (experimental: scaled image is too small by one pixel)
- bug fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da87390f 12-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Scrolling with mouse wheel
- Moving image with third mouse button pressed
- Added pop up menu with contents of View menu of menu bar
- Center image in full screen mode
- Added Select None menu item
- To avoid flickering, disabled caption during moving image with mouse- Added key bindings:
- Cursor keys: moves image
- Enter or space bar: next file
- Backspace: previous file
- Escape: Stops slide show
- SHIFT + first mouse button: simulate third mouse button
- CONTROL + first mouse button: simulates second mouse button


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 780d8a62 10-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added printing support
- added zoom in and out
- next/previous file sorts directory entries by itself; does not rely on file system
- added shortcuts to the first 10 menu items of Go To sub menu


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5299 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c305411 09-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added Go To Page submenu so the user can directly go to the page that they want. Also fixed a typo.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5290 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6a50d9c 09-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- renamed and restructured menu bar
- show dialog box when image can not be opened
- added optional caption in full screen mode
- moved/removed code from ShowImageApp to ShowImageView


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d10d5947 09-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added recent documents sub menu
- added resize window to image size when file is opened
- added drag and drop selection
- added copy selection to clipboard


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad13f387 06-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added full screen mode
- added dia show
- added rotate image clockwise, anti-clockwise, mirror image vertical or -horiztonal and invert image
- added myself to about dialog and copyright holders


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7eca0987 04-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added option resize image to window size
- added show next/previous file using Command + Cursor Up/Down key
- rewrote selection code
- added marching ants
- renamed member variables to start with capital letter after field prefix


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5255 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a3144ad 18-Oct-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed selection box to use a checkered pattern, closer to what Be's ShowImage uses. Stopped using inversion to clear old selections, drawing the bitmap over them instead. Fixed the rect used in setting the view bitmap.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5090 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af2002bf 18-Oct-2003 Matthew Wilber <mwilber@nowhere.fake>

Implemented preliminary selection box skeleton code. Need to add marching ants and connect selection box status to Edit menu.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5083 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d592070 03-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

removed (page x of y) from status text, (page info should come from the identify string of translators that support multiple pages) added a border around the image (like Be's ShowImage has), added disabling of Page menu for single page images


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03839579 02-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Added multi-page support (as in OBOS TIFFTranslator). Made many changes to the way the app, window and view objects interface with each other. Still could use some polish.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdb89ebb 02-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Change to have a more consistent coding style, eliminated unused / unessecary code, added MIT license notice, prevented image window from closing when a save panel is open, prevented the user from opening multiple save panels for a single image window, etc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81f20b17 02-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed selection box code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc0a275b 01-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed Save AS sub menu to only show the available destination types for bitmap images, implemented Save As feature


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4181 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13afa642 22-Jul-2002 Phil Greenway <sikosis@gmail.com>

Initial Checkin. Coded by Fernando Francisco de Oliveira.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@388 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cae52eadaceea0a3be3cbaba24cfb6df250a3039 07-Apr-2015 Janus <janus2@ymail.com>

Showimage: Add zoom level to StatusBar.

* Improve StatusBar graphics (Same style as StyledEdit).
* Resize the StatusBar to best fit.
* Fixes #7394.


# e1e77df2f3d97ae9a8cf5bef9e68853076e94f7d 29-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Make gcc4 happy.


# 554e2073842e023e35e1523fba025f30574fe137 28-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

ShowImage: add feature to force original size.

* This is enabled by shift+click on the Original Size toolbar button.
* The button stays pressed as long as the feature is enabled. Clicking
it again disables it.
* When this is enabled, all images will be shown at original size,
instead of being scaled up or down to fit the window.
* This is not persistent, and only affects the current session/window.


# 9494b43adcaf0d0da58f85d6bc0425de4718a07a 28-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert attempt to fix stretch-to-window.

Turns out the option shouldn't do what I need. Let's add another option.


# 2bd9c8a5f90cd5eccc0d956dab9c18f13676b250 27-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

ShowImage: fix scale-to-fit behavior

* Fix the condition so that big images are fitted to the window on first
time only if the option is set.
* Small images are never stretched to the window size, as this isn't
very useful.

The interaction of this global setting with the zoom buttons is a bit
confusing. Should they be merged?


# 0a2382e3736b944cd18277ec2ed3c49263b8a43d 07-Mar-2014 John Scipione <jscipione@gmail.com>

ShowImage: Scroll horizontally with control

...instead of command.

See http://www.freelists.org/post/haiku-commits/haiku-hrev46304-srckitsinterface,18


# 5b6c94c591ac80d0580d9c803b005aae2f3aa66a 07-Mar-2014 John Scipione <jscipione@gmail.com>

ShowImage: Style fixes related to scrolling


# fa392c2a24c12e160de5d29fadf8a4a52deb5804 05-Mar-2013 Ryan Leavengood <leavengood@gmail.com>

Remove unused ShowImage Undo code.


# a95895186d31c350fb8a67b030e062c946e852ca 04-Mar-2013 Ryan Leavengood <leavengood@gmail.com>

Change the cursor hiding so it isn't done constantly when enabled.


# 74e14f5c701c73f1367548e8e7d72ba6434830a2 06-Feb-2013 Janus <janus2@ymail.com>

Fix #8781. Display rotated images with alpha channel properly

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 03352b04c579d15b65c6a7cc1ed3648c8911a1bd 30-Nov-2012 Janus <janus2@ymail.com>

Fix #7736. Avoid memory corruption

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 537a273cced14e2da799ae1e4c3474a9fd74d663 24-Jun-2012 Humdinger <humdingerb@gmail.com>

Coding style changes, no functional change.
Hope all's OK, Filter.h is still mostly untouched as it's quite messy with
many exessive commenting.


# ccae01d421db5f197e39ab834adf8e5c141629f5 23-Jun-2012 Humdinger <humdingerb@gmail.com>

Fixed issue when auto-showing toolbar in fullscreen mode.

If you've zoomed in fullscreen mode and moved the mouse to the top of the
screen, the toolbar didn't appear. You had to scroll up to the top of zoomed
image first. Using the screen coords instead of the view coords fixes this.


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 281ad93ce7d923d10bae466916aa4decbcb1f3a1 24-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Make the zoom "sticky" at 1.0 for about half a second when zooming with the mousewheel.

It might be a bit annoying, not sure yet.

Implements #7253.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42311 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f06b3de2a7af7f218fc7c162b01d2c9444891d3 24-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Changing the order of function calls in SelectAll() causes the selection rect
size to show up correctly in the status bar.

Fixes #7710.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42310 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0227dce5ccd4e8791f02d2f2e61aed692d3473d 24-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

In fullscreen mode, hide and show the toolbar based on the mouse's position,
not just any mouse movement. When the mouse reaches the top 15 pixels, show the
toolbar, otherwise hide it.

Implements #7735.

On a related note, the animation for toolbar showing and hiding which Stephan
implemented is really nice. We need more animation in Haiku!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07fb28e3df52309f2c118d29519c997645870c90 18-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Delete the cursors in the view destructor. Thanks Axel!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42237 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 828a3e955822727707603d3026d9e9888e4aedf3 18-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Account for quickly repeated double clicks when toggling fullscreen mode. If
done fast enough the click count can reach 7 pretty easily.

Fixes #7591.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42233 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c4be36fa63066246170635a50b855a1b5393a10 17-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Use grabbing cursor when moving image with the mouse.

Fixes #7592.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42232 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8445a9451522615ceab3d081e6621fad3a092ce2 17-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Make the delete key clear the selection in selection mode, trash the file otherwise.

Fixes #6772.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eaa910c505ebad0449955c62daff9eb954b730f5 27-May-2011 Axel Dörfler <axeld@pinc-software.de>

* We obviously need to relayout manually, as it looks like the view is not
layouted correctly after the resize. This fixes bug #7577. Ingo, is this
the desired behaviour of the layout engine, and if so, what's the rationale
behind it?
* Removed extraneous FitToBounds() call in ShowImageView::SetHideIdlingCursor();
it doesn't belong there.
+alpha


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94fd94986adbcfbc84cde243a338aa3f53a16004 08-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

* The window uses layout management in principle. This was necessary
to get the main menu bar to report the correct minimum size. My
previous commit with regards to setting the correct minimum window
size introduced a regression that the window could not shrink below
it's initial size because of some backwards compatibility behavior
of BMenuBar (IIRC).
* Inserted a content view to hold the tool bar and the show image
views. This one does not use layout management, so that everything
pretty much works as before.
* Showing/Hiding the tool bar is now animated.
* When the tool bar is enabled in principle, it will automatically
show in full screen mode when the user moves the mouse. When the
mouse is not above the tool bar, it is hidden after a delay.
* Added a right-aligned "Leave full screen" icon to the tool bar.
* Improved the workings of the slide show icon. As before, it automatically
triggers full screen mode. It is now pressed when the slide show is
running. Clicking it again just stops the slide show without affecting
the full screen mode (i.e. also not when the user left full screen mode
meanwhile).

There are some problems with images not being automatically sized to
the full screen size as would be expected. This needs to be fixed, yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41202 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf9f46bc60be5aa95a1e2a42b839d80746d0fbe9 21-Mar-2011 Axel Dörfler <axeld@pinc-software.de>

* Double click now toggles full screen, as in the MediaPlayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65763c9728a4728b99d938ae0b5972353e55c9fe 04-Mar-2011 Axel Dörfler <axeld@pinc-software.de>

* Fit image to the view bounds again after a rotation (it's quite annoying when
you suddenly only see part of the image). This could be improved by only doing
so if the image was fit before, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebd792d8c1599be1377e48c1cc50cf94d82b8905 20-Feb-2011 Axel Dörfler <axeld@pinc-software.de>

* Made the minimum zoom depend on the actual zoom factor, too. This fixes the
wrong resizing as observed by humdinger.
* I did not remove the limit altogether, because it's a bit odd to be able to
zoom out until you only see a pixel from the original image... Maybe someone
has a better idea on how to go about this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40582 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b820451e9f0bcfc5eba21606e5714d408f9c7cb 19-Feb-2011 Stephan Aßmus <superstippi@gmx.de>

Fixed a typo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80589ff3d4150d0c8272831c027e8b2addbffba9 09-Jan-2011 Ryan Leavengood <leavengood@gmail.com>

Remove hack introduced in r36806 to offset the context menu due to our
previously bad menu handling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40179 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4aa636331fa38f0756b862567fe93e321de6e234 09-Jan-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed the slide show code from ShowImageView, and reimplemented them in
ShowImageWindow using a BMessageRunner.
* Note, this is completely untested, as it turns out my Haiku installation on
this box is too old to run it. It compiles, at least, and shouldn't break
anything else.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40178 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43d3fdf3b1acb89d1d1b5233353d237fb613e335 28-Dec-2010 Ryan Leavengood <leavengood@gmail.com>

CID 6925: Use snprintf. Also sizeof(size) is kind of funny.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40008 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 876a4a3cae55f623b85d5427eb69e8bf35120741 25-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Also call FitToBounds() when you disable stretching, and the image is
currently zoomed in. This closes #6857.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39631 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d0405baf86117029a9bf4301acf002dc87df523f 19-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed #3042 as suggested by Stippi (looks like I'm quickly following Ingo's
great example at getting senile - at least he told me about this solution
before; the same trick is already used in SetZoom()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2069723097dcded429323414605cd250207d2c0 14-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the "shrink to window" option. Instead, there is now a "Fit to window"
menu item that just does that. Additionally, the image is always fit to the
window size when first shown, or if the full screen mode switches.
That also fixes #6765, and #6810.
* The ImageCache now also passes a referenced BitmapOwner object, and bitmaps
are now actually freed when it's allowed to.
* Pressing the zoom button will cause ShowImage to enter full screen again. For
some reason this has been removed as part of r19540.
* The progress window is now visible again, although not that often, as you will
only see it for images that were not in the queue already. The window is now
known to the ShowImageWindow instead of the ShowImageView.
* Moved most constants out of ShowImageConstants.h to where they belong.
* Dropping an image now opens it in another window.
* Removed EntryMenuItem as it's no longer used anywhere.
* Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39431 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9767a83ed31ef0a0c8f7db0a6ec032f2ce82e7e 08-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* The ImageFileNavigator is now only for navigation, it doesn't load any images
anymore.
* Moved the new ImageCache into its own source file.
* The cache is now used within ShowImage. There is no read-ahead caching being
done yet, though, but you can quickly return to previous images, and you can
also skip images faster than before.
* Improved separation between the ShowImageStatusView and the rest;
ShowImageWindow no longer has a getter for the image view.
* The status view is now using the private BDirMenu which implements enhancement
ticket #6778.
* Made a few more methods private/protected in ShowImageWindow.
* Fixed bug #6797.
* The bitmap is currently only owned by the ImageCache, but we need to have a
separate referenceable object owning it. Added a TODO comment for this.
* The ProgressWindow is currently not being used anymore, added a TODO comment
for this as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 328932ac9edb30c87a3928b6d2a21b126bcaa3d4 05-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Work in progress on implementing asynchronous image retrieval with a
read-ahead cache. Not yet done or used.
* Added deleting images via delete key again. The only difference to before is
that it will open the previous image if the last image in a folder was
removed, and only close ShowImage if there is no image left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba3217eee8fd8e9db38d873d8c0d0225917d681f 03-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Moved the Tracker navigation logic into its own class, TrackerNavigation.
* Added a new class FolderNavigation that implements the same for folders
without a Tracker window.
* ImageFileNavigator is now using either one depending on whether it got a
valid tracker messenger.
* Removed some unused/unneeded methods.
* Made entry_ref a reference at some more methods, as it's not really optional.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39292 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd6b5cde06b9cc9ab9e5aacf03cda9dc853c34e4 01-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Completed stippi's work on the ImageFileNavigator.
* ShowImageWindow is now using such a navigator.
* Removed navigation support from ShowImageView.
* Prepared everything to support asynchronous image loading (which is not yet
implemented, though).
* Note, this commit brings some regressions I intend to fix in the next few
days, namely deleting files won't work anymore, and dropping images onto
ShowImage. There might be more I don't know about, though :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39259 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6db01936fe4d1635ff2deb07ce5890a00613ee06 24-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Added a selection mode that can currently only be enabled via the menu
(should be part of an optional tool bar in the future). Now the primary, and
the tertiary mouse button pan the image. You still get the selection when
using alt or ctrl and the primary mouse button, even outside of the selection
mode. In selection mode, the primary button changes the selection.
* Renamed {Shrink|Stretch}ToBounds() to comply to our coding style, thanks Ingo.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39132 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fd570d3077a142a11ceac82e4f2230fffd3e5c6 24-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed another pet peeve of mine: you can now always zoom, no matter if you
have enabled the shrink/stretch option.
* Renamed "zoom to window" to "stretch to window".
* Readded the shrink/stretch options to the full screen context menu only.
* Renamed GetShrinkToBounds() to ShrinkToBounds() as it's a simple getter.
* Changed how and when the shrink/stretch options come into play. Shrinking is
now only set once, when the image is first shown.
* Added snapping in ZoomIn(), and ZoomOut(): they will now always choose 1.0,
and the "fit to window" zoom level when they are close.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b517fc439309cbfed6738822e18aea2252f171cf 24-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed typo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32c2214392fe93bfdb98ebffa54397fefbdd4abe 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* The shrink/zoom to window options aren't available anymore from the context
menu. I plan to allow zooming always, so they won't be needed that often
anymore.
* Removed all selection copy/move/cut code. This just doesn't belong into an
image viewer.
* Selections are now changed using the tertiary mouse button, or when you press
the command or control modifiers. Instead, the image will now be moved around
with the left button.
* If you drop an image file to ShowImage, it will now open it instead of pasting
it as selection.
* Reworked the scrolling/selection code to never poll, and never use GetMouse().
Instead properly use the asynchronous API (ie. B_NO_POINTER_HISTORY).
* I plan to remove the scaling code as well: the results aren't as good as they
could be (bilinear scaling isn't the solution for everything), and the
interface is pretty awkward, anyway. IMO, this kind of functionality should
be left to apps that are actually thought for image editing. Another solution
would be a Tracker add-on that resizes (multiple) images.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39105 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d164619e7441dd8fb52049bb2a8e4012cf09f493 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the delayed scaler code - it's no longer needed (and was trying rather
stupid things like creating a 50000x40000 pixel bitmap if you zoomed in).
* Removed dithering in CMAP8 mode. Please use 32 bit mode instead :-)
* Cleaned up ShowImageWindow.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39098 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1076d97b5a24d203f87ddcb4f16d1310c06a8856 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Removed the ability to invert an image. If you really need that feature,
you'll now have to open an image editing application instead.
* Removed the black border around the image.
* Removed the B_PANEL_BACKGROUND_COLOR background in non-full screen mode - it's
now always black.
* Made zoom level changes exponential.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39095 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6046b973b67a81738cbefe3c4328a9c870742eb2 23-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Implemented zooming to the current mouse position. Thanks to stippi for the
invalidate trick to prevent the app_server to scroll.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39079 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6277669654a4c66ea78de6f9133706d299dd819e 18-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

Removed one liner function that was only called from one place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37166 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0df61fa3dc5318099eff51c5c1e3262f356642b4 17-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Moved selection box handling into a separate class SelectionBox. Mouse hooks
of that class are not yet used. Invalidation of the view could also work
via listener mechanism.
* Made image <-> view conversion and constraint methods public.
* Sorted .cpp files in Jamfile alphabetically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37164 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b525d735b1b6c64d80ca2205e55da16468551d 16-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

Previously misunderstood what fMovesBitmap means, renamed _MoveBitmap() also
so these two match up again and refer scrolling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37160 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fa7e62e8df815e908b84c22abed544f58bbc198 16-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Coding style cleanup
* Some cleanup in member sorting
* Some renaming of members for improved clarity
* Removed _HasSelection() and use fHasSelection directly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5ab8434cae09854012ca95e01c058179d044c141 12-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Fixed storage of image data in the system clipboard. According to the
comments in the code, different programs do it differently. However, I
believe we should follow the BeBook documentation. This is the method which
WonderBrush uses as well, and that one had been tested with other apps like
Refraction. Potentially, copy&paste could work across GoBe Productive now
also, but I didn't test.
* Handle the case where the selection bitmap that gets restored from the
clipboard has a bounds rectangle with an offset. Use this offset as an
alternative to the "be:location" hack.
* Fix the drag bitmap to be semi-transparent on Haiku. B_OP_SELECT does not
affect the alpha channel on Haiku like it apparently did on BeOS, though
I am not inclined to change that behavior.
* Fixed some coding style violations, but tried to mix as little cleanup as
possible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d0a2818e88442f18640738e39b537ebbd5a2fafa 10-Jun-2010 Stephan Aßmus <superstippi@gmx.de>

* Do not use the Scaler anymore for asynchronous bilinear filtering, but pass
B_FILTER_BITMAP_BILINEAR to DrawBitmap(). There is virtually no delay at all.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0a376325c216673a2a5df3bdc7e4119182342b2 13-May-2010 Ryan Leavengood <leavengood@gmail.com>

Use a 2 pixel offset instead of 5 for the ShowImage context menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77982ded19b7d5180d3faeb2c85b8b01925eff59 12-May-2010 Ryan Leavengood <leavengood@gmail.com>

Fix #5808. I'm not completely happy with this solution, but it fixes the
problem without a bunch of refactoring. I intend to do more refactoring of
ShowImage after developing an automated test suite.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 016233a96c9245040584c48252c57c3115ff3c82 12-May-2010 Ryan Leavengood <leavengood@gmail.com>

Fix #5809 by making the context menu sticky and also offsetting the open point
by 5 pixels. Add a check so that multiple context menus aren't opened.

Also don't draw a 0 x 0 selection rect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36799 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eb0cbb044cf538f18c0d252934a5bcaa33bfd34 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 905c8c8c8accfb3a4cffced18f34f0d219a37d59 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22719833756e66e71d4c5be58771c0e4dee154aa 06-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen, modified by myself to remove translations of BView
names and localization unfriendly string composition. Closes ticket #5563,
thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36647 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35982ed847ba957b43dce9b50620b39601ec1b8c 17-Jan-2010 Karsten Heimrich <host.haiku@gmx.de>

* Fix can't cut and drag a piece of picture from ShowImage to Desktop, ticket #4874.
* Set the current image mime as first in the translators list, thus on drag&drop with
left mouse button the same image type is created as the currently loaded in ShowImage.

Still this does more hide than fix the real problem, beeing ICO translator the first in
the generated translator list due to the high capabilitys values and a limited set of
output sizes it can handle. I attached a further fix to the ticket, still i would like
to get some other opinions on it before commiting.


By default the transla


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35139 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7974d3dcf39ce78e5885b481eee12e561ad6e096 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bce3b09aed879fad4911e9073c24dafe34fb9d5c 17-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Idefix that fixes bug #4730 by removing the iterate over
directory functionality without Tracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34103 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1adcc578599e76313ac44dc92eda77cedd20030e 30-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* The new Command-[Shift-]'R' shortcut for rotation is annoyingly unhandy; added
'[' and ']' to rotate without having the Command key held.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33846 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a74004c6e4f9d9fb2040b63a6ab913820966f1f 15-Aug-2009 Ryan Leavengood <leavengood@gmail.com>

- Added back code for scrolling with the cursor keys, this time only when Shift
is pressed.

- Took Humdinger's excellent advice from #4190 to open the Backgrounds
preferences from ShowImage instead of setting the background manually. This
required some tweaks to the Backgrounds preferences to accept RefsReceived in
the application and forward that to the view. In addition the placement is
set to scaled since otherwise it will keep the old placement. How this is
done is sort of hacky, but I'm going to call it an "internal protocol." This
also allowed me to remove the BackgroundImage code from ShowImage which was
just copied from Tracker (yuck.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32424 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 037e5cee4829aba31914a39548418a7a435d8439 14-Aug-2009 Ryan Leavengood <leavengood@gmail.com>

Implemented pretty much all of #4190. The Enter key was actually already set as
a shortcut for fullscreen, but I guess the view was processing it first. So I
just removed B_ENTER as an option for next image. Also Shift plus primary mouse
was already working for moving the image.

Also I know it was discussed at length but I still wonder if all these options
for next and previous image are overkill. Now there is no way to scroll with
the keyboard. And there isn't an easy way to go to the next image with the
mouse (menus are a pain.) So I still think some more UI tweaking is needed to
avoid constant shifting between mouse and keyboard.

Finally I also added Command-1 as a shortcut for Original Size, but it does not
work. Anyone know why?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32343 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd952aef9b43f8631cd97afc27d12b261d68a917 13-Aug-2009 Ryan Leavengood <leavengood@gmail.com>

Started cleaning up these monsters:

- Add underscore to private methods.
- Use class member initializer syntax.
- Make sure all class members are initialized, use same order as headers.
- Header reordering.
- A few other small things.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32342 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9467d1448c34107a4fad650780e8cd368d09d4b0 04-Nov-2008 Jérôme Duval <korli@users.berlios.de>

fix a style violation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28507 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d034a4c9f79ff0564f217e39f43cab0f1e2961ff 10-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* traverse the entry so that symlinks to files can be opened as well



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27957 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18c9bf557589e2bb7b8cc3bddd4db123c7c07fc8 10-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* cleanup



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27956 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32b9f1f7fc3bceb34d48c1a473790567f1d9d7e0 11-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

patch by Andrea Anzani:
* fix a rounding problem when layouting the image
Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23427 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c233a5b78df296d9de0fba1c591d5481c6d2f275 11-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

Remove debugging printf.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c9f7b3b7d347c83a2a9c2dfcbef378a3f4c36390 11-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

The zoom level needed to be reset to 1.0 after loading an image, otherwise it
would keep the zoom level of the previous image in some cases.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5878fb7998ccacca4647319dd898a9b440dabbba 17-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

Changed the progress monitor protocol to path a basic message that will be sent back
instead of having a fixed message code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20746 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a58eacec3c0fe8ee0043855884bb73627832f0da 11-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

Implemented a progress window: it will be shown after one second in case the translator
supports it - currently, only the RAW image translator does this (as it needs about 10
seconds to open a 6 mio. pixel RAW image on a 2.6 GHz P4).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20650 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f5fd23f6012a9852853f83b61d9236184b8f412 29-Jan-2007 Ryan Leavengood <leavengood@gmail.com>

The size of the selection rectangle is now shown in the status bar. Useful for
cropping an image to a certain size or taking similar sized croppings from
various images (as I need to do.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20012 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 880be3310db507c2aa34f93c86a450d590044638 28-Jan-2007 Ryan Leavengood <leavengood@gmail.com>

General changes:
- Fixed some formatting in the recently added resizing code.
- Changed the operation name for rotating counterclockwise to use that name
instead of anticlockwise. This makes the code consistent with the GUI.
- Reformatted the constants header to use an enum. Also removed the empty
constants cpp file.
- The QuitRequested handler in the app did not ask the windows to close, which
could cause modified images to be closed without prompting the user. Now it
does, which makes ShowImage more user friendly.

Changes to the image view:
- Added a member for keeping track of the type of image. This is mostly used in
properly updating the window's status bar when the image is changed (flipped,
rotated, etc.) This removes some hacky code I added before :)
- Removed the status parameter in the Notify method since it was only used for
the above image type status updating.
- Removed a redundant if in the mouse up handler.
- The key down handlers for moving to the next and previous image did not
properly prompt the user if the image had changed. I fixed this by sending a
message to the window where the prompting code resides. When adding this I
also created a few helper methods for sending messages to the window, which
removed some (small) repeated code through-out the class.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19994 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a9ab9d2c21ecd68f419ea16be2ca6bd708303e19 19-Jan-2007 DarkWyrm <darkwyrm@gmail.com>

Removed "Stippled Zooming" item and made dithering automatic in 8-bit screen mode
"Keep Proportions" in resizing window became "Keep Original Proportions", which was suggested by korli and is the best suggestion IMO
Bilinear scaling is on by default
I like ShowImage's menus now. :^)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3963402ca5642760d86ffcd02d4357fb780daddd 28-Dec-2006 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Fixed selection handling bug if zoom level is not 1.0. Zoom factor has to be calculated in Setup() otherwise the selection rectangle uses the wrong zoom level.
Bug was introduced in revision 19253.
@Ryan: Can you please verify that this fix does not introduce another bug?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19648 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 19742321471d300e273dd31b7a796f32c07b18e7 20-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Changed the delay on hiding the cursor in fullscreen to 2 seconds (much
better...not sure what I was thinking with 5 seconds before.) I also fixed a
few other issues related to this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19578 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6346c8941ce8b434423b0787733e084076d51d6f 19-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Implemented Stephan's previous TODO (in an svn commit message) to hide the
cursor after a delay when in fullscreen mode. I set the delay to 5 seconds. In
addition I make sure the ShowImage window is the active window before trying to
hide the cursor, because otherwise there is a lot of cursor flickering if you
change workspaces.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19569 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65040013021283a6d1ac25bc3783765ccfd170b5 19-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Added support to ShowImage for sending an image to the Trash by scripting
Tracker. For now it only works when the delete key is pressed. I suppose a menu
item might be useful, but I can do that later if people really want it :)

When the image is trashed the next image in the directory is opened. If the
trashed image is the last in the directory the window is closed.

The code seems pretty solid as I even tested it with Tracker not running. It
also works fine in R5 (in fact that is where I tested it.)

As shown I would prefer to use the Tracker headers rather than redefining the
constant used for the trashing message. I'm already using Tracker's app MIME
type from the private headers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9f6762d46c0e7c25d011460bef442ec2d00bfe9 17-Dec-2006 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Integrated "resize" feature from Zetas version of ShowImage, however used our bilinear scaler instead of Zetas implementation and made ResizerWindow font sensitive and removed the radio buttons with predefined sizes. Kudos to Bernd Korz for providing the ShowImage Zeta source code under MIT license.
Moved menu item "As Desktop Background" into "Image" menu from "View" menu.
Removed unused metod ShowImageWindow::Zoom(...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19540 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 252f4767828ef4564f9fcedca981234e26e7bd32 12-Dec-2006 Ryan Leavengood <leavengood@gmail.com>

Added some needed stdio.h includes. I don't know what magic was used to compile
these for other people, but they wouldn't compile for me when building the
app_server test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76d115d893d4a65d805d648778b9d1bf46ebc4d0 11-Nov-2006 Ryan Leavengood <leavengood@gmail.com>

Several ShowImage changes:

- Changed the hotkey for the zoom to be = instead of + so that no shifting is necessary.
- Fixed the bitmap alignment code to solve some problems when zooming.
- Removed all references to alignment in the view since the image was already always centered. This greatly simplified the bitmap alignment.
- Removed the redundant fScaleX and fScaleY members of the view since they were always the same as fZoom.
- Removed all code related to having a border in the view.
- Fixed a bug where the type of file would disappear in the status area when zooming (this fix is a little hackish.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19253 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69eee339bad0aed4b9c4a99226a2cc0f64fb8513 25-Apr-2006 Ryan Leavengood <leavengood@gmail.com>

More changes to ShowImage:

1. The newly renamed "Flip Sideways" and "Flip Upside Down" have been renamed again to "Flip Left To Right" and "Flip Top To Bottom". This was after some feedback indicating a preference for the new names.

2. When dragging a selection the standard outlined rectangle is used for the dragging image instead of the alpha-blended bitmap of the selected part of the image if the selection rectangle is larger than 400x400 (taking into account scaling of the image.) This mimics the original ShowImage with the exception of the minimum size. The choice of 400x400 was fairly arbitrary. I may see about turning that value into some kind of hidden option.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61ddc257d2349c0b83abfad8da467c582939f657 20-Apr-2006 Ryan Leavengood <leavengood@gmail.com>

Fixes to ShowImage:

1. Renamed the Image menu items "Mirror Vertical" and "Mirror Horizontal" to "Flip Sideways" and "Flip Upside Down", respectively. This also involved changing the code to match the new names, for consistency.
2. Fixed a bug where zooming in and out would result in the image moving off center. This was due to the bitmap width and height not being recalculated after applying the zoom factor and therefore throwing off the calculations to find the rect for the center.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17182 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a932a97b525655cad82a123eebc3542d0372d27f 07-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* Mabye I should do better testing of what I "fix"; absolute paths didn't work
anymore from the command line all of a sudden...
* Made the caption background slightly less translucent to allow the text to
be read even with very checkered images.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c70cd5775649775103701ed8c32eb17f23f73a85 06-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Made the caption in full screen mode a bit easier to look at (boring yes, but some
people out there just aren't colour blind :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16279 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 009cd1060a8aec4fca7dad602902c43378ffa0d9 06-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* No longer hides the mouse cursor when the pop up menu is shown.
* Removed the superfluous "Cancel" item from the pop up menu.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efa8b4f3922f0ff26c80078e6d51ebe52cba9735 06-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed various issues:
* ArgvReceived() did not work with relative paths.
* Simplified quitting (no more CanQuit() and overriding BWindow::Quit()).
* Updated signature.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16260 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 93d1b9f406041634633143c20456d2368eb66005 09-Jan-2006 Stephan Aßmus <superstippi@gmx.de>

* quick fix for when fBitmap has been recomposed
partly, fDisplayBitmap is not correctly re-established...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15887 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37a3ed9263137339fbfeb41373c1179c3c0ff756 09-Jan-2006 Stephan Aßmus <superstippi@gmx.de>

* quick hack to hide the cursor in fullscreen
(TODO: do this after a time out)
* quick hack to display bitmaps containing an
alpha channel with a checker background
(TODO: rework filters to be alpha channel
aware and compose the checker background
independently of the filter)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e05fe1042cce6e00d194a147802d4f9be 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc5ca95d01199ef05e072a79ce4bfe827736f097 13-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

fixed alignment and image layout, esc exits fullscreen mode, black background for fullscreen, zooming window toggles fullscreen, can still browse even if current image has been deleted, space toggles slideshow, swapped next/previous menu items (more logical)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13101 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a85b92372fc1b373ed58a9c0076ce7263aa640d 13-Feb-2005 Matthew Wilber <mwilber@nowhere.fake>

Fixed page changing, simplified entry_ref usage in SetImage()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11366 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0cd4ecd8b24054bb29c3fa5a1ebec590eae3823f 29-Sep-2004 Stephan Aßmus <superstippi@gmx.de>

cosmetical improvements to status view, it also shows the image size now


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2041038abec43869499f29ca72e1d94067e2aff4 19-Jun-2004 Matthew Wilber <mwilber@nowhere.fake>

Re-Added directory based Next/Previous file functionality. Now, if tracker scripting is unavailable, user will still be able to use Next/Previous file commands and the slideshow feature


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efc10d5e6add1308e3df2fae8d4ec9d96ea4380d 07-May-2004 Matthew Wilber <mwilber@nowhere.fake>

Implemented rewind functionality so that slide show no longer stops when it reaches the last file in the directory


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7453 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92fd335690aa9535b868b306f7b096dba0c5242a 10-Mar-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed to check if refs are directories and to error properly if they are


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 134d60764764350d5bf693fcbbc49b190426a4ca 20-Jan-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Use Tracker Scripting to find next/previous image.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7e78e3b64b9c5f1e1b9d7f9be76c5603e687ffe 17-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed file saving code so that it is only in one place, (instead of two) and fixed File-->Save As so that it now writes out the type attribute


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 869e256d6721e2db58436392813e5d49f97ca174 17-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Added feature where a file dropped from the Tracker becomes the current selection


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6121 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8138a6e119d08a8d01deb2b83c6bb80d964b5fd 10-Jan-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Bug fixed: ignore user zoom setting in automatic zoom modes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6000 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01c931e6cb7ad480cb1a29c9bc54bfeb83a64198 03-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed bug in FindNextImage where -1 is returned instead of false


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5895 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64d3ef5ff211df57c5260536db1bad7f539b9d27 03-Jan-2004 Matthew Wilber <mwilber@nowhere.fake>

Fixed bug which occured when the Next or Previous image command was used with an image that failed to translate. Changed Next/Previous image behavior to skip past images that fail to translate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5894 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 491eb383e07fde782a13303b12661511983a03f1 24-Dec-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Fixed access to invalid bitmap bug.
Refactored code a little bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5746 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6574ee0747b6046496c49ddf9b8b335a103e1688 23-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed some debug print statements, set the maximum allowed Zoom to 1600%


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5744 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16b663b7ab8f67aa5cf200f07cc411abdb7f38c0 21-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Disable the Invert menu item for B_CMAP8 bitmaps because they are currently unsupported by the invert algorithm.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5721 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f54b9718e1af24fdcdb869eea44705e45733c02 21-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Cleared the Undo buffer when actions that are reversable are performed. Disabled Invert command for B_CMAP8 bitmaps, as they are not properly inverted


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5720 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 75238186d75d8422e6916ad8c6004ab881fe1af8 21-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Fixed Edit-->Clear to leave behind a white box if the selection box is not moved after it is made, added Undo capability for Cut and Clear actions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5719 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7598450e4ffd3795068179c052df63e286bb3d6b 17-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Added initial implementation of Undo for OBOS ShowImage! Now, users can Undo/Redo merge/paste operations. Still need to enhance Undo further so that other operations can be undone, also need to account for image rotations and similar operations.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5693 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 55f2e33b2df61abe243b75cf8b9e8bd2c1b63bc6 11-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed Paste/DragDrop code so that a clip does not have to be pasted entirely within the bounds of the background bitmap


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5654 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 169c19d6f7efaf32e070546a7d575710bc54a98f 11-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Implemented drag/drop from one ShowImage window to another


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5653 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 664c5b6911215b2979b1e87fa79ecd53ae5911e0 10-Dec-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed unneeded calls to Invalidate(), changed minimum size for selection rectangle so that users can click in an empty section of the window to unselect the selection


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf84ef88415adcdb0d456422de8613b61d9b0f05 28-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed Keydown handler code that invoked the creation/removal of the thumbnail icons


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee7b4f3983532ed5f378e33740e3c00458a4fc5c 28-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added checking for modified document and prompt the user if they try to close a document without saving.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a55095419c99078dacb318cb33cccb3349edb2cd 27-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Fixed bug in conversion from image coordinates to view coordinates are vice versa.
- Change the size of the image being dragged to size of the selection in the view coordinate system.
- Experimental: delay start of filtering thread(s) for some tenth of a second. This allows faster update during resizing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f62b22aa02b5e519769a8e3dfad7cdf0945cdf7 27-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed Cut behavior to match Be's version so that if the user Cuts a selection before moving it, the selection is cut, and a white rectangle is left in its place. If the selection is dragged before the Cut command is used, a white rectangle is not drawn.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8fc713847bb28899eca54d19c581895ec324edd 25-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Implemented Floyd Steinberg dithering algorithm.
- Remembers "orientation" state (rotated, mirrored or inverted) in file attribute of image.
- Update recent documents menu every time the menu is opened.
- Bug fix and optimization in Filter.cpp.
- Moved image manipulation code from ShowImageView.cpp to Filter.cpp. So it can take advantage of multiple CPUs.
- Experimental: Write/remove thumbnail to/from file icons.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5480 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5e427b6a8516ef2ffa0832e70509a5201c2e7d23 22-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Made some settings persistent: Slide Show Delay, Scale Bilinear, Shrink/Zoom to Window, Show Caption in Full Screen Mode and PrintOptions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1021ea1790766cae964b7dc5ff43c4ba31b0f0d2 21-Nov-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

Rollback to original/way better constrated captions colors.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5437 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1967709a04d77e785edfaa939363a4d48c3a53b0 19-Nov-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

Ooops, forget to match caption rect size and position there too...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5420 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c60a8d8cbbbea01ecc37946cb2886b759b720576 19-Nov-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

Including Clipboard.h could help.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3046f7d46f0a7e9ceb022b01d62975abfea2b5d 19-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Made some settings persistent: Slide Show Delay, Scale Bilinear, Shrink/Zoom to Window, Show Caption in Full Screen Mode and PrintOptions persistent.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5415 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51964605395a94495df18178d79dba445a3712ad 18-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Implemented Cut and Paste. Still need to implement Undo and check for a dirty document when the window or app is closed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5414 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 19c76de4a069cc23e43426e2c32487732979d9ba 18-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Rewrote bilinear scaling algorithm. The version that uses fixed point calculations is at least two times faster than the version that uses floating point calculations!
- Fixed off by one bugs.
- Replace "Fit to Window" with "Shrink to Window" and "Zoom to Window".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8ad30bcf80e66eadbe0e98554f9ed8dc7a859283 17-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added code to merge selection with background image; removed Select None item, replaced it with Clear as Select None was behaving like Be ShowImage's Clear anyway; properly enabled/disabled Edit menu items when selection is made or cleared. Still no undo yet, but I'm planning to do that after Paste is implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5403 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9eec20bc4a5eef7b7caf3d6bc3355934651fb80b 16-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed fpBitmap to the more Be-ish notation of fBitmap, added code to allow the user to drag the bitmap selection around like in Be's ShowImage. However, no changes can be made yet to the underlying image. Need to resolve resize flickering of selected image and allow the user to modify the underlying image.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e93ae51e96e48caec8c814220a22c3ff4da230b 16-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Drag selection code can now move the selection inside the view, fixed selection drag code so that unwanted MouseUps don't affect the selection box movement. Though, drag selection code is not done yet, it is not yet copying the bitmap from where the selection was dragged from, it is just moving the selection rectangle. Dragging a selection to outside of the window still works the same.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5391 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d5be31007e5eae1be980d7a31e36f54f64df85ad 15-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Fixed caption hiding method so that whenever any kind of scrolling is done, the caption is hidden in full screen mode. Previously, the caption would only hide during click-and-drag scrolling and using other scrolling would cause the caption to be painted in various places on top of the image.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5384 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89d164def7e5e559f3151797b51f0368f0087e7f 15-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added comments to MouseWheelChanged function which explains how B_MOUSE_WHEEL_CHANGED behaves.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5376 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 868de40a8282e575774cdb650577cdb12a96c13f 15-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Fixed issue where view scrolls to the left when mouse wheel is used, changed to scroll faster if the wheel is scrolled multiple clicks per B_MOUSE_WHEEL_CHANGED message, increased the scroll speed


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5375 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 50d78f98e540f0f440b270e3b51829605aee2fb0 13-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Bug fixed: virtual function must not be called in destructor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 938629a7e2a5411802cd90cfabed4d9205e0b60b 13-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Bug fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81b9c776915e9da688dafc4f9097b9213d0be364 12-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- scale bilinear (experimental: scaled image is too small by one pixel)
- bug fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da87390fc5001d74e5bfe1c9587de7d23f2566c4 12-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- Scrolling with mouse wheel
- Moving image with third mouse button pressed
- Added pop up menu with contents of View menu of menu bar
- Center image in full screen mode
- Added Select None menu item
- To avoid flickering, disabled caption during moving image with mouse- Added key bindings:
- Cursor keys: moves image
- Enter or space bar: next file
- Backspace: previous file
- Escape: Stops slide show
- SHIFT + first mouse button: simulate third mouse button
- CONTROL + first mouse button: simulates second mouse button


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 780d8a62d70f1d6cfd6f757f2e87730bece08615 10-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added printing support
- added zoom in and out
- next/previous file sorts directory entries by itself; does not rely on file system
- added shortcuts to the first 10 menu items of Go To sub menu


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5299 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c3054116ed26f244b826d3bd4e06f5c651a44ca 09-Nov-2003 Matthew Wilber <mwilber@nowhere.fake>

Added Go To Page submenu so the user can directly go to the page that they want. Also fixed a typo.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5290 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6a50d9c7b2b53940115b9202f114eca5e6cf6d8 09-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- renamed and restructured menu bar
- show dialog box when image can not be opened
- added optional caption in full screen mode
- moved/removed code from ShowImageApp to ShowImageView


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d10d59475c9216c2d639424014cefcf98bde7271 09-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added recent documents sub menu
- added resize window to image size when file is opened
- added drag and drop selection
- added copy selection to clipboard


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad13f387f9a6989fa4ef067983a51b2d6af8f6e1 06-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added full screen mode
- added dia show
- added rotate image clockwise, anti-clockwise, mirror image vertical or -horiztonal and invert image
- added myself to about dialog and copyright holders


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7eca09874bd34b14ac63e3f28ec455fab810cc77 04-Nov-2003 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

- added option resize image to window size
- added show next/previous file using Command + Cursor Up/Down key
- rewrote selection code
- added marching ants
- renamed member variables to start with capital letter after field prefix


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5255 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a3144ad6bd15fb65b6d84573c8988412e139cbf 18-Oct-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed selection box to use a checkered pattern, closer to what Be's ShowImage uses. Stopped using inversion to clear old selections, drawing the bitmap over them instead. Fixed the rect used in setting the view bitmap.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5090 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af2002bf8c94f4c32fbe7119702c5c52280c0ffa 18-Oct-2003 Matthew Wilber <mwilber@nowhere.fake>

Implemented preliminary selection box skeleton code. Need to add marching ants and connect selection box status to Edit menu.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5083 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d5920700ff1ad48ae474a00a3224c0d09bfb950 03-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

removed (page x of y) from status text, (page info should come from the identify string of translators that support multiple pages) added a border around the image (like Be's ShowImage has), added disabling of Page menu for single page images


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03839579020b2f3c91671fbaa4abf7d260624935 02-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Added multi-page support (as in OBOS TIFFTranslator). Made many changes to the way the app, window and view objects interface with each other. Still could use some polish.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdb89ebbeb5e8a69e54dee9b3daad63f77d9f782 02-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Change to have a more consistent coding style, eliminated unused / unessecary code, added MIT license notice, prevented image window from closing when a save panel is open, prevented the user from opening multiple save panels for a single image window, etc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81f20b17b44b229d4662beeb9d1b7e7a83ff3a51 02-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Removed selection box code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc0a275bdd0246b215b101de5a599172cc2d8ffb 01-Aug-2003 Matthew Wilber <mwilber@nowhere.fake>

Changed Save AS sub menu to only show the available destination types for bitmap images, implemented Save As feature


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4181 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 13afa64231695bfa50edd375d99fa850ece3a156 22-Jul-2002 Phil Greenway <sikosis@gmail.com>

Initial Checkin. Coded by Fernando Francisco de Oliveira.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@388 a95241bf-73f2-0310-859d-f6bbb57e9c96