Revision: 18796 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18796 Author: mfoxdogg Date: 2009-02-03 04:54:03 +0100 (Tue, 03 Feb 2009)
Log Message: ----------- 2.5 ******* - rebuilt most of the view menu with a couple empty sub menus - seperators go all screwy when there is an unknown operator in the menu - using this method, the operators invoke function is skipped, this is evident with clipping border and border zoom - original menus are still in the code just if'd out for furture reference and such - to cater for this menu, view numpad op has been made into much smaller atomic operators, pan and orbit and the ortho/persp toggle has been put into individual operators - fixed the mem leak in the make parent menu Modified Paths: -------------- branches/blender2.5/blender/source/blender/editors/object/object_edit.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/object/object_edit.c 2009-02-02 19:59:22 UTC (rev 18795) +++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c 2009-02-03 03:54:03 UTC (rev 18796) @@ -2473,7 +2473,7 @@ uiPupMenuEnd(C, head); - return OPERATOR_RUNNING_MODAL; + return OPERATOR_CANCELLED; } Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c 2009-02-02 19:59:22 UTC (rev 18795) +++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c 2009-02-03 03:54:03 UTC (rev 18796) @@ -1315,16 +1315,7 @@ {V3D_VIEW_RIGHT, "RIGHT", "Right", "View From the Right"}, {V3D_VIEW_TOP, "TOP", "Top", "View From the Top"}, {V3D_VIEW_BOTTOM, "BOTTOM", "Bottom", "View From the Bottom"}, - {V3D_VIEW_PERSPORTHO, "PERSPORTHO", "Persp-Ortho", "Switch between Perspecive and Orthographic View"}, {V3D_VIEW_CAMERA, "CAMERA", "Camera", "View From the active amera"}, - {V3D_VIEW_STEPLEFT, "STEPLEFT", "Step Left", "Step the view around to the Left"}, - {V3D_VIEW_STEPRIGHT, "STEPRIGHT", "Step Right", "Step the view around to the Right"}, - {V3D_VIEW_STEPUP, "STEPUP", "Step Up", "Step the view Up"}, - {V3D_VIEW_STEPDOWN, "STEPDOWN", "Step Down", "Step the view Down"}, - {V3D_VIEW_PANLEFT, "PANLEFT", "Pan Left", "Pan the view to the Left"}, - {V3D_VIEW_PANRIGHT, "PANRIGHT", "Pan Right", "Pan the view to the Right"}, - {V3D_VIEW_PANUP, "PANUP", "Pan Up", "Pan the view Up"}, - {V3D_VIEW_PANDOWN, "PANDOWN", "Pan Down", "Pan the view Down"}, {0, NULL, NULL, NULL}}; static void axis_set_view(bContext *C, float q1, float q2, float q3, float q4, short view, int perspo) @@ -1371,14 +1362,11 @@ } - static int viewnumpad_exec(bContext *C, wmOperator *op) { - ARegion *ar= CTX_wm_region(C); View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d= CTX_wm_region_view3d(C); Scene *scene= CTX_data_scene(C); - float phi, si, q1[4], vec[3]; static int perspo=V3D_PERSP; int viewnum; @@ -1411,16 +1399,6 @@ axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, perspo); break; - case V3D_VIEW_PERSPORTHO: - if(rv3d->viewlock==0) { - if(rv3d->persp!=V3D_ORTHO) - rv3d->persp=V3D_ORTHO; - else rv3d->persp=V3D_PERSP; - - ED_region_tag_redraw(ar); - } - break; - case V3D_VIEW_CAMERA: if(rv3d->viewlock==0) { /* lastview - */ @@ -1464,91 +1442,177 @@ } break; - case V3D_VIEW_STEPLEFT: - case V3D_VIEW_STEPRIGHT: - case V3D_VIEW_STEPUP: - case V3D_VIEW_STEPDOWN: - if(rv3d->viewlock==0) { + default : + break; + } - if(rv3d->persp != V3D_CAMOB) { - if(viewnum == V3D_VIEW_STEPLEFT || viewnum == V3D_VIEW_STEPRIGHT) { - /* z-axis */ - phi= (float)(M_PI/360.0)*U.pad_rot_angle; - if(viewnum == V3D_VIEW_STEPRIGHT) phi= -phi; - si= (float)sin(phi); - q1[0]= (float)cos(phi); - q1[1]= q1[2]= 0.0; - q1[3]= si; - QuatMul(rv3d->viewquat, rv3d->viewquat, q1); - rv3d->view= 0; - } - if(viewnum == V3D_VIEW_STEPDOWN || viewnum == V3D_VIEW_STEPUP) { - /* horizontal axis */ - VECCOPY(q1+1, rv3d->viewinv[0]); + if(rv3d->persp != V3D_CAMOB) perspo= rv3d->persp; - Normalize(q1+1); - phi= (float)(M_PI/360.0)*U.pad_rot_angle; - if(viewnum == V3D_VIEW_STEPDOWN) phi= -phi; - si= (float)sin(phi); - q1[0]= (float)cos(phi); - q1[1]*= si; - q1[2]*= si; - q1[3]*= si; - QuatMul(rv3d->viewquat, rv3d->viewquat, q1); - rv3d->view= 0; - } - ED_region_tag_redraw(ar); - } - } - break; + return OPERATOR_FINISHED; +} +void VIEW3D_OT_viewnumpad(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View numpad"; + ot->idname= "VIEW3D_OT_viewnumpad"; - case V3D_VIEW_PANRIGHT: - case V3D_VIEW_PANLEFT: - case V3D_VIEW_PANUP: - case V3D_VIEW_PANDOWN: + /* api callbacks */ + ot->exec= viewnumpad_exec; + ot->poll= ED_operator_view3d_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER; + + RNA_def_enum(ot->srna, "view", prop_view_items, 0, "View", ""); +} - initgrabz(rv3d, 0.0, 0.0, 0.0); +static EnumPropertyItem prop_view_orbit_items[] = { + {V3D_VIEW_STEPLEFT, "ORBITLEFT", "Orbit Left", "Orbit the view around to the Left"}, + {V3D_VIEW_STEPRIGHT, "ORBITRIGHT", "Orbit Right", "Orbit the view around to the Right"}, + {V3D_VIEW_STEPUP, "ORBITUP", "Orbit Up", "Orbit the view Up"}, + {V3D_VIEW_STEPDOWN, "ORBITDOWN", "Orbit Down", "Orbit the view Down"}, + {0, NULL, NULL, NULL}}; - if(viewnum == V3D_VIEW_PANRIGHT) window_to_3d_delta(ar, vec, -32, 0); - else if(viewnum == V3D_VIEW_PANLEFT) window_to_3d_delta(ar, vec, 32, 0); - else if(viewnum == V3D_VIEW_PANUP) window_to_3d_delta(ar, vec, 0, -25); - else if(viewnum == V3D_VIEW_PANDOWN) window_to_3d_delta(ar, vec, 0, 25); - rv3d->ofs[0]+= vec[0]; - rv3d->ofs[1]+= vec[1]; - rv3d->ofs[2]+= vec[2]; +static int vieworbit_exec(bContext *C, wmOperator *op) +{ + ARegion *ar= CTX_wm_region(C); + RegionView3D *rv3d= CTX_wm_region_view3d(C); + float phi, si, q1[4]; + int orbitdir; - if(rv3d->viewlock) - view3d_boxview_sync(CTX_wm_area(C), ar); + orbitdir = RNA_enum_get(op->ptr, "type"); + + if(rv3d->viewlock==0) { + if(rv3d->persp != V3D_CAMOB) { + if(orbitdir == V3D_VIEW_STEPLEFT || orbitdir == V3D_VIEW_STEPRIGHT) { + /* z-axis */ + phi= (float)(M_PI/360.0)*U.pad_rot_angle; + if(orbitdir == V3D_VIEW_STEPRIGHT) phi= -phi; + si= (float)sin(phi); + q1[0]= (float)cos(phi); + q1[1]= q1[2]= 0.0; + q1[3]= si; + QuatMul(rv3d->viewquat, rv3d->viewquat, q1); + rv3d->view= 0; + } + if(orbitdir == V3D_VIEW_STEPDOWN || orbitdir == V3D_VIEW_STEPUP) { + /* horizontal axis */ + VECCOPY(q1+1, rv3d->viewinv[0]); + + Normalize(q1+1); + phi= (float)(M_PI/360.0)*U.pad_rot_angle; + if(orbitdir == V3D_VIEW_STEPDOWN) phi= -phi; + si= (float)sin(phi); + q1[0]= (float)cos(phi); + q1[1]*= si; + q1[2]*= si; + q1[3]*= si; + QuatMul(rv3d->viewquat, rv3d->viewquat, q1); + rv3d->view= 0; + } ED_region_tag_redraw(ar); - break; - - default : - break; + } } - if(rv3d->persp != V3D_CAMOB) perspo= rv3d->persp; + return OPERATOR_FINISHED; +} - return OPERATOR_FINISHED; +void VIEW3D_OT_view_orbit(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View Orbit"; + ot->idname= "VIEW3D_OT_view_orbit"; + + /* api callbacks */ + ot->exec= vieworbit_exec; + ot->poll= ED_operator_view3d_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER; + RNA_def_enum(ot->srna, "type", prop_view_orbit_items, 0, "Orbit", "Direction of View Orbit"); } +static EnumPropertyItem prop_view_pan_items[] = { + {V3D_VIEW_PANLEFT, "PANLEFT", "Pan Left", "Pan the view to the Left"}, + {V3D_VIEW_PANRIGHT, "PANRIGHT", "Pan Right", "Pan the view to the Right"}, + {V3D_VIEW_PANUP, "PANUP", "Pan Up", "Pan the view Up"}, + {V3D_VIEW_PANDOWN, "PANDOWN", "Pan Down", "Pan the view Down"}, + {0, NULL, NULL, NULL}}; -void VIEW3D_OT_viewnumpad(wmOperatorType *ot) +static int viewpan_exec(bContext *C, wmOperator *op) { + ARegion *ar= CTX_wm_region(C); + RegionView3D *rv3d= CTX_wm_region_view3d(C); + float vec[3]; + int pandir; + + pandir = RNA_enum_get(op->ptr, "type"); + + initgrabz(rv3d, 0.0, 0.0, 0.0); + + if(pandir == V3D_VIEW_PANRIGHT) window_to_3d_delta(ar, vec, -32, 0); + else if(pandir == V3D_VIEW_PANLEFT) window_to_3d_delta(ar, vec, 32, 0); + else if(pandir == V3D_VIEW_PANUP) window_to_3d_delta(ar, vec, 0, -25); + else if(pandir == V3D_VIEW_PANDOWN) window_to_3d_delta(ar, vec, 0, 25); + rv3d->ofs[0]+= vec[0]; + rv3d->ofs[1]+= vec[1]; + rv3d->ofs[2]+= vec[2]; + + if(rv3d->viewlock) + view3d_boxview_sync(CTX_wm_area(C), ar); + + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void VIEW3D_OT_view_pan(wmOperatorType *ot) +{ /* identifiers */ - ot->name= "View numpad"; - ot->idname= "VIEW3D_OT_viewnumpad"; + ot->name= "View Pan"; + ot->idname= "VIEW3D_OT_view_pan"; /* api callbacks */ - ot->exec= viewnumpad_exec; + ot->exec= viewpan_exec; ot->poll= ED_operator_view3d_active; /* flags */ ot->flag= OPTYPE_REGISTER; + RNA_def_enum(ot->srna, "type", prop_view_pan_items, 0, "Pan", "Direction of View Pan"); +} + +static int viewpersportho_exec(bContext *C, wmOperator *op) +{ + ARegion *ar= CTX_wm_region(C); + RegionView3D *rv3d= CTX_wm_region_view3d(C); - RNA_def_enum(ot->srna, "view", prop_view_items, 0, "View", ""); + if(rv3d->viewlock==0) { + if(rv3d->persp!=V3D_ORTHO) + rv3d->persp=V3D_ORTHO; + else rv3d->persp=V3D_PERSP; + ED_region_tag_redraw(ar); + } + + return OPERATOR_FINISHED; + } +void VIEW3D_OT_view_persportho(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View persp/ortho"; + ot->idname= "VIEW3D_OT_view_persportho"; + + /* api callbacks */ + ot->exec= viewpersportho_exec; + ot->poll= ED_operator_view3d_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} + + /* ********************* set clipping operator ****************** */ static int view3d_clipping_exec(bContext *C, wmOperator *op) @@ -1635,7 +1699,7 @@ { /* identifiers */ - ot->name= "Border Select"; + ot->name= "Clipping Border"; ot->idname= "VIEW3D_OT_clipping"; /* api callbacks */ Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c 2009-02-02 19:59:22 UTC (rev 18795) +++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c 2009-02-03 03:54:03 UTC (rev 18796) @@ -278,6 +278,7 @@ allqueue(REDRAWVIEW3D, 0); } +#if 0 static uiBlock *view3d_view_camerasmenu(bContext *C, ARegion *ar, void *arg_unused) { Scene *scene= CTX_data_scene(C); @@ -309,7 +310,7 @@ uiTextBoundsBlock(block, 50); return block; } - +#endif static void do_view3d_view_cameracontrolsmenu(bContext *C, void *arg, int event) { switch(event) { @@ -455,7 +456,7 @@ } allqueue(REDRAWVIEW3D, 0); } - +#if 0 static uiBlock *view3d_view_alignviewmenu(bContext *C, ARegion *ar, void *arg_unused) { /* static short tog=0; */ @@ -487,7 +488,7 @@ // XXX static void do_view3d_view_spacehandlers(bContext *C, void *arg, int event) //{ //} - +#endif @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs