Forgot to add middlemouse events for sculptmode.

This commit is contained in:
Nicholas Bishop 2006-12-04 00:44:52 +00:00
parent 9f4df07b68
commit 706635d931
2 changed files with 97 additions and 71 deletions

@ -43,6 +43,7 @@
#include "DNA_object_types.h" #include "DNA_object_types.h"
#include "DNA_scene_types.h" #include "DNA_scene_types.h"
#include "DNA_vec_types.h" #include "DNA_vec_types.h"
#include "DNA_view3d_types.h"
#include "BKE_customdata.h" #include "BKE_customdata.h"
#include "BKE_depsgraph.h" #include "BKE_depsgraph.h"
@ -61,6 +62,7 @@
#include "BLI_editVert.h" #include "BLI_editVert.h"
#include "BSE_edit.h" #include "BSE_edit.h"
#include "BSE_view.h"
#include "IMB_imbuf.h" #include "IMB_imbuf.h"
#include "IMB_imbuf_types.h" #include "IMB_imbuf_types.h"
@ -1181,6 +1183,7 @@ void multires_level_to_mesh(Object *ob, Mesh *me)
countall(); countall();
if(G.vd->depths) G.vd->depths->damaged= 1;
allqueue(REDRAWVIEW3D, 0); allqueue(REDRAWVIEW3D, 0);
} }

@ -944,6 +944,86 @@ void BIF_undo_menu(void)
/* *************** */ /* *************** */
void handle_view_middlemouse() {
/* use '&' here, because of alt+leftmouse which emulates middlemouse */
if(U.flag & USER_VIEWMOVE) {
if((G.qual==LR_SHIFTKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_SHIFTKEY))))
viewmove(0);
else if((G.qual==LR_CTRLKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_CTRLKEY))))
viewmove(2);
else if((G.qual==0) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==LR_ALTKEY)))
viewmove(1);
}
else {
if((G.qual==LR_SHIFTKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_SHIFTKEY))))
viewmove(1);
else if((G.qual==LR_CTRLKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_CTRLKEY))))
viewmove(2);
else if((G.qual==0) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==LR_ALTKEY)))
viewmove(0);
}
}
void handle_view_wheelup()
{
/* Regular: Zoom in */
/* Shift: Scroll up */
/* Ctrl: Scroll right */
/* Alt-Shift: Rotate up */
/* Alt-Ctrl: Rotate right */
if( G.qual & LR_SHIFTKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_SHIFTKEY;
persptoetsen(PAD2);
G.qual |= LR_SHIFTKEY;
} else {
persptoetsen(PAD2);
}
} else if( G.qual & LR_CTRLKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_CTRLKEY;
persptoetsen(PAD4);
G.qual |= LR_CTRLKEY;
} else {
persptoetsen(PAD4);
}
} else if(U.uiflag & USER_WHEELZOOMDIR)
persptoetsen(PADMINUS);
else
persptoetsen(PADPLUSKEY);
}
void handle_view_wheeldown()
{
/* Regular: Zoom out */
/* Shift: Scroll down */
/* Ctrl: Scroll left */
/* Alt-Shift: Rotate down */
/* Alt-Ctrl: Rotate left */
if( G.qual & LR_SHIFTKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_SHIFTKEY;
persptoetsen(PAD8);
G.qual |= LR_SHIFTKEY;
} else {
persptoetsen(PAD8);
}
} else if( G.qual & LR_CTRLKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_CTRLKEY;
persptoetsen(PAD6);
G.qual |= LR_CTRLKEY;
} else {
persptoetsen(PAD6);
}
} else if(U.uiflag & USER_WHEELZOOMDIR)
persptoetsen(PADPLUSKEY);
else
persptoetsen(PADMINUS);
}
static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt) static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{ {
View3D *v3d= sa->spacedata.first; View3D *v3d= sa->spacedata.first;
@ -1124,6 +1204,17 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
else if(!G.scene->sculptdata.propset) else if(!G.scene->sculptdata.propset)
sculpt(); sculpt();
break; break;
case MIDDLEMOUSE:
handle_view_middlemouse();
break;
case WHEELUPMOUSE:
handle_view_wheelup();
doredraw= 1;
break;
case WHEELDOWNMOUSE:
handle_view_wheeldown();
doredraw= 1;
break;
case RIGHTMOUSE: case RIGHTMOUSE:
if(G.qual==LR_SHIFTKEY+LR_CTRLKEY) if(G.qual==LR_SHIFTKEY+LR_CTRLKEY)
sculptmode_pmv(1); sculptmode_pmv(1);
@ -1202,23 +1293,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
} }
break; break;
case MIDDLEMOUSE: case MIDDLEMOUSE:
/* use '&' here, because of alt+leftmouse which emulates middlemouse */ handle_view_middlemouse();
if(U.flag & USER_VIEWMOVE) {
if((G.qual==LR_SHIFTKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_SHIFTKEY))))
viewmove(0);
else if((G.qual==LR_CTRLKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_CTRLKEY))))
viewmove(2);
else if((G.qual==0) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==LR_ALTKEY)))
viewmove(1);
}
else {
if((G.qual==LR_SHIFTKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_SHIFTKEY))))
viewmove(1);
else if((G.qual==LR_CTRLKEY) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==(LR_ALTKEY|LR_CTRLKEY))))
viewmove(2);
else if((G.qual==0) || ((U.flag & USER_TWOBUTTONMOUSE) && (G.qual==LR_ALTKEY)))
viewmove(0);
}
break; break;
case RIGHTMOUSE: case RIGHTMOUSE:
if((G.obedit) && (G.qual & LR_CTRLKEY)==0) { if((G.obedit) && (G.qual & LR_CTRLKEY)==0) {
@ -1247,63 +1322,11 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
mouse_select(); /* does poses too */ mouse_select(); /* does poses too */
break; break;
case WHEELUPMOUSE: case WHEELUPMOUSE:
/* Regular: Zoom in */ handle_view_wheelup();
/* Shift: Scroll up */
/* Ctrl: Scroll right */
/* Alt-Shift: Rotate up */
/* Alt-Ctrl: Rotate right */
if( G.qual & LR_SHIFTKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_SHIFTKEY;
persptoetsen(PAD2);
G.qual |= LR_SHIFTKEY;
} else {
persptoetsen(PAD2);
}
} else if( G.qual & LR_CTRLKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_CTRLKEY;
persptoetsen(PAD4);
G.qual |= LR_CTRLKEY;
} else {
persptoetsen(PAD4);
}
} else if(U.uiflag & USER_WHEELZOOMDIR)
persptoetsen(PADMINUS);
else
persptoetsen(PADPLUSKEY);
doredraw= 1; doredraw= 1;
break; break;
case WHEELDOWNMOUSE: case WHEELDOWNMOUSE:
/* Regular: Zoom out */ handle_view_wheeldown();
/* Shift: Scroll down */
/* Ctrl: Scroll left */
/* Alt-Shift: Rotate down */
/* Alt-Ctrl: Rotate left */
if( G.qual & LR_SHIFTKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_SHIFTKEY;
persptoetsen(PAD8);
G.qual |= LR_SHIFTKEY;
} else {
persptoetsen(PAD8);
}
} else if( G.qual & LR_CTRLKEY ) {
if( G.qual & LR_ALTKEY ) {
G.qual &= ~LR_CTRLKEY;
persptoetsen(PAD6);
G.qual |= LR_CTRLKEY;
} else {
persptoetsen(PAD6);
}
} else if(U.uiflag & USER_WHEELZOOMDIR)
persptoetsen(PADPLUSKEY);
else
persptoetsen(PADMINUS);
doredraw= 1; doredraw= 1;
break; break;