added mousewheel support for UV Image window
This commit is contained in:
parent
fefaf2ff0f
commit
d1d3969d7d
@ -54,6 +54,7 @@
|
||||
#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"
|
||||
@ -541,6 +542,54 @@ void image_viewmove(void)
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
@ -1999,7 +1999,6 @@ void winqreadimagespace(unsigned short event, short val, char ascii)
|
||||
{
|
||||
SpaceImage *sima= curarea->spacedata.first;
|
||||
View2D *v2d= &sima->v2d;
|
||||
int width, height;
|
||||
#ifdef NAN_TPT
|
||||
IMG_BrushPtr brush;
|
||||
IMG_CanvasPtr canvas;
|
||||
@ -2108,31 +2107,16 @@ void winqreadimagespace(unsigned short event, short val, char ascii)
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user