~ubuntu-branches/ubuntu/gutsy/blender/gutsy-security

« back to all changes in this revision

Viewing changes to source/blender/src/header_view3d.c

  • Committer: Bazaar Package Importer
  • Author(s): Florian Ernst
  • Date: 2007-05-17 11:47:59 UTC
  • mfrom: (1.2.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20070517114759-yp4ybrnhp2u7pk66
Tags: 2.44-1
* New upstream release.
* Drop debian/patches/01_64bits_stupidity, not needed anymore: as of this
  version blender is 64 bits safe again. Adjust README.Debian accordingly.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 * Functions to draw the "3D Viewport" window header
5
5
 * and handle user events sent to it.
6
6
 * 
7
 
 * $Id: header_view3d.c,v 1.223 2007/02/10 19:07:46 joeedh Exp $
 
7
 * $Id: header_view3d.c,v 1.233 2007/05/04 11:35:36 aligorith Exp $
8
8
 *
9
9
 * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
10
10
 *
552
552
                view3d_home(0);
553
553
                break;
554
554
        case 11: /* View Selected */
555
 
                centreview();
 
555
                centerview();
556
556
                break;
557
557
        case 13: /* Play Back Animation */
558
558
                play_anim(0);
1681
1681
                } else error("Only meshes can be shrinked/fattened");
1682
1682
                break;
1683
1683
        case 10:
1684
 
                docentre(0);
 
1684
                docenter(0);
1685
1685
                break;
1686
1686
        case 11:
1687
 
                docentre_new();
 
1687
                docenter_new();
1688
1688
                break;
1689
1689
        case 12:
1690
 
                docentre_cursor();
 
1690
                docenter_cursor();
1691
1691
                break;
1692
1692
        case 13:
1693
1693
                initTransform(TFM_TILT, CTX_NONE);
2044
2044
        case 24:
2045
2045
        case 25:
2046
2046
        case 26:
 
2047
        case 29:
2047
2048
                copy_attr((short)event);
2048
2049
                break;
2049
2050
                }
2075
2076
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Damping|Ctrl C, 8",                      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
2076
2077
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Properties|Ctrl C, 9",                   0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
2077
2078
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Logic Bricks|Ctrl C, 10",                        0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
 
2079
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Protected Transform |Ctrl C",                    0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 29, "");
2078
2080
        
2079
2081
        uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
2080
2082
        
2099
2101
                }
2100
2102
        
2101
2103
                if(ob->type==OB_MESH) {
2102
 
                        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdiv|Ctrl C",                  0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 21, "");
 
2104
                        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subsurf Settings|Ctrl C",                        0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 21, "");
2103
2105
                        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Modifiers ...|Ctrl C",                   0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 24, "");
2104
2106
                }
2105
2107
        
2466
2468
                break;
2467
2469
        case 5: /*merge */
2468
2470
                mergemenu();
 
2471
                DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
2469
2472
                break;
2470
2473
        case 6: /* add hook */
2471
2474
                add_hook();
3074
3077
        uiBlockSetButmFunc(block, do_view3d_edit_curve_showhidemenu, NULL);
3075
3078
        
3076
3079
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H",                      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
3077
 
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H",                0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
3078
 
        if (OBACT->type == OB_SURF) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Control Points|Shift H",             0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
 
3080
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|Alt Ctrl H",               0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
 
3081
        if (OBACT->type == OB_SURF) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Control Points|Alt Shift H",         0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
3079
3082
        
3080
3083
 
3081
3084
        uiBlockSetDirection(block, UI_RIGHT);
3576
3579
        allqueue(REDRAWVIEW3D, 0);
3577
3580
}
3578
3581
 
 
3582
 
 
3583
 
 
3584
static void do_view3d_scripts_armaturemenu(void *arg, int event)
 
3585
{
 
3586
        BPY_menu_do_python(PYMENU_SCRIPTTEMPLATE, event);
 
3587
        
 
3588
        allqueue(REDRAWIMAGE, 0);
 
3589
}
 
3590
 
 
3591
static uiBlock *view3d_scripts_armaturemenu(void *args_unused)
 
3592
{
 
3593
        uiBlock *block;
 
3594
        BPyMenu *pym;
 
3595
        int i= 0;
 
3596
        short yco = 20, menuwidth = 120;
 
3597
        
 
3598
        block= uiNewBlock(&curarea->uiblocks, "view3d_scripts_armaturemenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
 
3599
        uiBlockSetButmFunc(block, do_view3d_scripts_armaturemenu, NULL);
 
3600
        
 
3601
        /* note that we acount for the N previous entries with i+20: */
 
3602
        for (pym = BPyMenuTable[PYMENU_ARMATURE]; pym; pym = pym->next, i++) {
 
3603
                
 
3604
                uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, menuwidth, 19, 
 
3605
                                                 NULL, 0.0, 0.0, 1, i, 
 
3606
                                                 pym->tooltip?pym->tooltip:pym->filename);
 
3607
        }
 
3608
        
 
3609
        uiBlockSetDirection(block, UI_RIGHT);
 
3610
        uiTextBoundsBlock(block, 60);
 
3611
        
 
3612
        return block;
 
3613
}
 
3614
 
 
3615
 
3579
3616
static uiBlock *view3d_edit_armaturemenu(void *arg_unused)
3580
3617
{
3581
3618
        bArmature *arm= G.obedit->data;
3613
3650
        uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
3614
3651
        
3615
3652
        uiDefIconTextBlockBut(block, view3d_edit_armature_parentmenu, NULL, ICON_RIGHTARROW_THIN, "Parent", 0, yco-=20, 120, 19, "");
3616
 
 
 
3653
        
 
3654
        uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
 
3655
        
 
3656
        uiDefIconTextBlockBut(block, view3d_scripts_armaturemenu, NULL, ICON_RIGHTARROW_THIN, "Scripts", 0, yco-=20, 120, 19, "");
 
3657
        
3617
3658
        if(curarea->headertype==HEADERTOP) {
3618
3659
                uiBlockSetDirection(block, UI_DOWN);
3619
3660
        }
4078
4119
        case 3:
4079
4120
        case 4:
4080
4121
        case 5:
 
4122
        case 6:
4081
4123
                sd->brush_type= event+1;
4082
4124
                break;
4083
 
        case 6:
4084
 
                br->dir= br->dir==1 ? 2 : 1; break;
4085
4125
        case 7:
4086
4126
                br->airbrush= !br->airbrush; break;
4087
4127
        case 8:
4103
4143
        case 14:
4104
4144
                add_blockhandler(curarea, VIEW3D_HANDLER_OBJECT, UI_PNL_UNSTOW);
4105
4145
                break;
 
4146
        case 15:
 
4147
                sculptmode_propset_init(PropsetTexRot);
 
4148
                break;
 
4149
        case 16:
 
4150
                sculptmode_propset_init(PropsetStrength);
 
4151
                break;
 
4152
        case 17:
 
4153
                sculptmode_propset_init(PropsetSize);
 
4154
                break;
 
4155
        case 18:
 
4156
                br->dir= br->dir==1 ? 2 : 1; break;
4106
4157
        }
4107
4158
 
4108
4159
        allqueue(REDRAWBUTSEDIT, 0);
4143
4194
        uiDefIconTextBut(block, BUTM, 1, ((sd->draw_flag & SCULPTDRAW_BRUSH) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Display Brush", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
4144
4195
        uiDefIconTextBut(block, BUTM, 1, ((sd->draw_flag & SCULPTDRAW_FAST) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Partial Redraw", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
4145
4196
        if(G.vd)
4146
 
                uiDefIconTextBut(block, BUTM, 1, (G.vd->pivot_last ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Pivot last", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
4147
 
        uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
4148
 
        uiDefIconTextBut(block, BUTM, 1, (sd->symm & SYMM_Z ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Symmetry Z|Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
4149
 
        uiDefIconTextBut(block, BUTM, 1, (sd->symm & SYMM_Y ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Symmetry Y|Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
4150
 
        uiDefIconTextBut(block, BUTM, 1, (sd->symm & SYMM_X ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Symmetry X|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
4151
 
        if(sd->brush_type!=GRAB_BRUSH)
 
4197
                uiDefIconTextBut(block, BUTM, 1, (G.vd->pivot_last ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Pivot Last", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
 
4198
 
 
4199
        uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
 
4200
        
 
4201
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Scale Brush|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, "");
 
4202
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Strengthen Brush|Shift F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
 
4203
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rotate Brush|Ctrl F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
 
4204
        
 
4205
        uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
 
4206
        uiDefIconTextBut(block, BUTM, 1, (sd->symm & SYMM_Z ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Z Symmetry|Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
 
4207
        uiDefIconTextBut(block, BUTM, 1, (sd->symm & SYMM_Y ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Y Symmetry|Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
 
4208
        uiDefIconTextBut(block, BUTM, 1, (sd->symm & SYMM_X ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "X Symmetry|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
 
4209
        
 
4210
        if(sd->brush_type!=GRAB_BRUSH) {
 
4211
                uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
4152
4212
                uiDefIconTextBut(block, BUTM, 1, (br->airbrush ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Airbrush|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
4153
 
        if(sd->brush_type!=SMOOTH_BRUSH && sd->brush_type!=GRAB_BRUSH) {
4154
 
                uiDefIconTextBut(block, BUTM, 1, (br->dir==1 ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Add|V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
 
4213
                
 
4214
                if(sd->brush_type!=SMOOTH_BRUSH && sd->brush_type!=FLATTEN_BRUSH) {
 
4215
                        uiDefIconTextBut(block, BUTM, 1, (br->dir==1 ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Add|V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, "");
 
4216
                }
4155
4217
        }
4156
4218
        uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
 
4219
        uiDefIconTextBut(block, BUTM, 1, (sd->brush_type==FLATTEN_BRUSH ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Flatten", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
4157
4220
        uiDefIconTextBut(block, BUTM, 1, (sd->brush_type==LAYER_BRUSH ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Layer|L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
4158
4221
        uiDefIconTextBut(block, BUTM, 1, (sd->brush_type==GRAB_BRUSH ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Grab|G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
4159
4222
        uiDefIconTextBut(block, BUTM, 1, (sd->brush_type==INFLATE_BRUSH ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT), "Inflate|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
4336
4399
                would be nice if it was split up into functions */
4337
4400
        Mesh *me;
4338
4401
        MTFace *tf, *activetf;
 
4402
        MFace *mf;
4339
4403
        MCol *activemcol;
4340
4404
        int a;
4341
4405
        
4347
4411
                activetf = get_active_tface(&activemcol);
4348
4412
 
4349
4413
                if (me && activetf) {
4350
 
                        for (a=0, tf=me->mtface; a < me->totface; a++, tf++) {
4351
 
                                if(tf!=activetf && (tf->flag & TF_SELECT)) {
 
4414
                        mf = me->mface;
 
4415
                        for (a=0, tf=me->mtface; a < me->totface; a++, tf++, mf++) {
 
4416
                                if(tf!=activetf && (mf->flag & ME_FACE_SEL)) {
4352
4417
                                        if(event==0) {
4353
4418
                                                tf->mode= activetf->mode;
4354
4419
                                                tf->transp= activetf->transp;
5139
5204
                                uiDefIconBut(block, BUT, B_ACTCOPY, ICON_COPYUP, 
5140
5205
                                             xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, 
5141
5206
                                             "Copies the current pose to the buffer");
5142
 
                                uiSetButLock(ob->id.lib!=0, "Can't edit library data");
5143
5207
                                uiDefIconBut(block, BUT, B_ACTPASTE, ICON_PASTEUP,      
5144
5208
                                             xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, 
5145
5209
                                             "Pastes the pose from the buffer");
5151
5215
                                uiDefIconBut(block, BUT, B_ACTCOPY, ICON_COPYDOWN,
5152
5216
                                             xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, 
5153
5217
                                             "Copies the current pose to the buffer");
5154
 
                                uiSetButLock(ob->id.lib!=0, "Can't edit library data");
 
5218
                                uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
5155
5219
                                uiDefIconBut(block, BUT, B_ACTPASTE, ICON_PASTEDOWN,
5156
5220
                                             xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, 
5157
5221
                                             "Pastes the pose from the buffer");