[haiku-development] Re: ShowImage patch

  • From: Stephan Aßmus <superstippi@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 02 Mar 2009 22:23:18 +0100

Christian Packmann schrieb:
I've looked at the ShowImage zoom routines, and a clean implementation of better zooming isn't as easy as it seemed at first glance. Not that hard, but I don't have the time for it right now. I'll look into this later, but probably only after I implemented a SSE2 version of the ScaleBilinear function, which is far too unrealtime for my taste.

Before you do that, please have a look at the bilinear scaling routine in src/servers/app/drawing/Painter/Painter.cpp. Accelerate that one instead. I think the inner loop of that routine is as fast as it gets with C++, unless I am missing a nice trick. And if you can accelerate that, make ShowImage use the filter option when drawing bitmaps (there is a new BView::DrawBitmap() version in Haiku that takes more options). This work will benefit MediaPlayer as well then. Thanks a lot!


I will implement the interface changes, though. Before we go to the changes, a list of the current behavior (I omitted File and Edit operations) just for reference:

         Direct key commands
Enter: next image
Backspace: previous image
+, =: zoom in
-: zoom out
Space: toggle slideshow
Esc: stop slideshow + exit fullscreen + cancel selection
Del: delete image
Cursor: move image

         Shortcuts
Alt f: fullscreen mode
Alt +: zoom in
Alt -: zoom out
Alt Up/Down: next/previous image
Alt Left/Right: multi-image navigation: prev/next page (for TIFF?)
Shift Alt Left/Right: multi-image navigation: first/last page
Alt [: rotate counterclockwise
Alt ]: rotate clockwise

    Mouse
LMB: select region
MMB: move image
RMB: popup menu / move selected region
Wheel: scroll image vertically



The planned changes are:

         Direct key commands
Down/Right: next image
Up/Left: previous image

New behavior I would recommend:
Shift+Cursor: move image
Alt+Return: toggle fullscreen (learned behavior from some Windows programs - maybe other platforms, too?)

    Shortcuts
I strongly recommend changing the Rotate shortcuts; on German keyboards Alt+[ and Alt+] are unselectable (unless I'm doing something wrong here or it's VMWare). This also goes for Alt+{, Alt+} and Alt+\; all these keys are accessed with the right Alt key, but this prevents selection with the left Alt key. This information should go into a UI style guide, I think.
Anyway, my proposal:
Alt r: rotate clockwise
Alt Shift r: rotate counter-cw
(If there's disagreement about the proper direction for plain rotation with "Alt r", please just the votes - I'll count 'em & the majority has it.)

    Mouse
LMB, MMB, RMB: unchanged
Wheel: zoom image; wheel up zooms in, down zooms out
+Shift: scroll vertical
+Alt or Ctrl: scroll horizontal


I hope I didn't miss anything. I'll implement the changes when the votes are in and any possible discussions have quieted down.

All these sound perfect. Except maybe I would like to toss the idea to have Alt-Left/Right rotate the image. Ideally, we'd have an icon tool bar for the hidden features to be less hidden... :-)

Best regards,
-Stephan



Other related posts: