#include "DNA_packedFile_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
+#include "DNA_userdef_types.h"
#include "BKE_utildefines.h"
#include "BKE_global.h"
}
}
+void image_viewzoom(unsigned short event)
+{
+ SpaceImage *sima= curarea->spacedata.first;
+ int width, height;
+
+ if(U.uiflag & WHEELZOOMDIR) {
+ if (event==WHEELDOWNMOUSE || event == PADPLUSKEY) {
+ sima->zoom *= 2;
+ } else {
+ sima->zoom /= 2;
+ /* Check if the image will still be visible after zooming out */
+ if (sima->zoom < 1) {
+ calc_image_view(G.sima, 'p');
+ if (sima->image) {
+ if (sima->image->ibuf) {
+ width = sima->image->ibuf->x * sima->zoom;
+ height = sima->image->ibuf->y * sima->zoom;
+ if ((width < 4) && (height < 4)) {
+ /* Image will become too small, reset value */
+ sima->zoom *= 2;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if (event==WHEELUPMOUSE || event == PADPLUSKEY) {
+ sima->zoom *= 2;
+ } else {
+ sima->zoom /= 2;
+ /* Check if the image will still be visible after zooming out */
+ if (sima->zoom < 1) {
+ calc_image_view(G.sima, 'p');
+ if (sima->image) {
+ if (sima->image->ibuf) {
+ width = sima->image->ibuf->x * sima->zoom;
+ height = sima->image->ibuf->y * sima->zoom;
+ if ((width < 4) && (height < 4)) {
+ /* Image will become too small, reset value */
+ sima->zoom *= 2;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
/**
* Updates the fields of the View2D member of the SpaceImage struct.
* Default behavior is to reset the position of the image and set the zoom to 1
{
SpaceImage *sima= curarea->spacedata.first;
View2D *v2d= &sima->v2d;
- int width, height;
#ifdef NAN_TPT
IMG_BrushPtr brush;
IMG_CanvasPtr canvas;
case MIDDLEMOUSE:
image_viewmove();
break;
+ case WHEELUPMOUSE:
+ case WHEELDOWNMOUSE:
case PADPLUSKEY:
- sima->zoom *= 2;
+ case PADMINUS:
+ image_viewzoom(event);
scrarea_queue_winredraw(curarea);
break;
case HOMEKEY:
image_home();
break;
- case PADMINUS:
- sima->zoom /= 2;
- /* Check if the image will still be visible after zooming out */
- if (sima->zoom < 1) {
- calc_image_view(G.sima, 'p');
- if (sima->image) {
- if (sima->image->ibuf) {
- width = sima->image->ibuf->x * sima->zoom;
- height = sima->image->ibuf->y * sima->zoom;
- if ((width < 4) && (height < 4)) {
- /* Image will become too small, reset value */
- sima->zoom *= 2;
- }
- }
- }
- }
- scrarea_queue_winredraw(curarea);
- break;
}
}