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

Reply via email to