[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18796] branches/blender2.5/blender/source /blender/editors: 2.5
Michael Fox
mfoxdogg at gmail.com
Tue Feb 3 04:54:04 CET 2009
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. @@
More information about the Bf-blender-cvs
mailing list