From 706635d931ea167bbf4acd52318878d620f0538a Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Mon, 4 Dec 2006 00:44:52 +0000 Subject: [PATCH] Forgot to add middlemouse events for sculptmode. --- source/blender/src/multires.c | 3 + source/blender/src/space.c | 165 +++++++++++++++++++--------------- 2 files changed, 97 insertions(+), 71 deletions(-) diff --git a/source/blender/src/multires.c b/source/blender/src/multires.c index 377fac9f6c4..4a0c058f54c 100644 --- a/source/blender/src/multires.c +++ b/source/blender/src/multires.c @@ -43,6 +43,7 @@ #include "DNA_object_types.h" #include "DNA_scene_types.h" #include "DNA_vec_types.h" +#include "DNA_view3d_types.h" #include "BKE_customdata.h" #include "BKE_depsgraph.h" @@ -61,6 +62,7 @@ #include "BLI_editVert.h" #include "BSE_edit.h" +#include "BSE_view.h" #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" @@ -1181,6 +1183,7 @@ void multires_level_to_mesh(Object *ob, Mesh *me) countall(); + if(G.vd->depths) G.vd->depths->damaged= 1; allqueue(REDRAWVIEW3D, 0); } diff --git a/source/blender/src/space.c b/source/blender/src/space.c index 56c8ccec798..57b0afa9c11 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -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) { View3D *v3d= sa->spacedata.first; @@ -1124,6 +1204,17 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt) else if(!G.scene->sculptdata.propset) sculpt(); 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: if(G.qual==LR_SHIFTKEY+LR_CTRLKEY) sculptmode_pmv(1); @@ -1202,23 +1293,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt) } break; case 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); - } + handle_view_middlemouse(); break; case RIGHTMOUSE: 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 */ break; case WHEELUPMOUSE: - /* 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); - + handle_view_wheelup(); doredraw= 1; break; case WHEELDOWNMOUSE: - /* 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); - + handle_view_wheeldown(); doredraw= 1; break;