Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_buttons.c
| Show First 20 Lines • Show All 771 Lines • ▼ Show 20 Lines | |||||
| static void do_view3d_vgroup_buttons(bContext *C, void *UNUSED(arg), int event) | static void do_view3d_vgroup_buttons(bContext *C, void *UNUSED(arg), int event) | ||||
| { | { | ||||
| if (event < B_VGRP_PNL_EDIT_SINGLE) { | if (event < B_VGRP_PNL_EDIT_SINGLE) { | ||||
| /* not for me */ | /* not for me */ | ||||
| return; | return; | ||||
| } | } | ||||
| else { | else { | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *ob = sl->basact->object; | Object *ob = sl->basact->object; | ||||
| ED_vgroup_vert_active_mirror(ob, event - B_VGRP_PNL_EDIT_SINGLE); | ED_vgroup_vert_active_mirror(ob, event - B_VGRP_PNL_EDIT_SINGLE); | ||||
| DEG_id_tag_update(&ob->id, OB_RECALC_DATA); | DEG_id_tag_update(&ob->id, OB_RECALC_DATA); | ||||
| WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); | WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); | ||||
| } | } | ||||
| } | } | ||||
| static int view3d_panel_vgroup_poll(const bContext *C, PanelType *UNUSED(pt)) | static int view3d_panel_vgroup_poll(const bContext *C, PanelType *UNUSED(pt)) | ||||
| { | { | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *ob = OBACT(sl); | Object *ob = OBACT(sl); | ||||
| if (ob && (BKE_object_is_in_editmode_vgroup(ob) || | if (ob && (BKE_object_is_in_editmode_vgroup(ob) || | ||||
| BKE_object_is_in_wpaint_select_vert(ob))) | BKE_object_is_in_wpaint_select_vert(ob))) | ||||
| { | { | ||||
| MDeformVert *dvert_act = ED_mesh_active_dvert_get_only(ob); | MDeformVert *dvert_act = ED_mesh_active_dvert_get_only(ob); | ||||
| if (dvert_act) { | if (dvert_act) { | ||||
| return (dvert_act->totweight != 0); | return (dvert_act->totweight != 0); | ||||
| } | } | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| static void view3d_panel_vgroup(const bContext *C, Panel *pa) | static void view3d_panel_vgroup(const bContext *C, Panel *pa) | ||||
| { | { | ||||
| uiBlock *block = uiLayoutAbsoluteBlock(pa->layout); | uiBlock *block = uiLayoutAbsoluteBlock(pa->layout); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *ob = sl->basact->object; | Object *ob = sl->basact->object; | ||||
| MDeformVert *dv; | MDeformVert *dv; | ||||
| dv = ED_mesh_active_dvert_get_only(ob); | dv = ED_mesh_active_dvert_get_only(ob); | ||||
| if (dv && dv->totweight) { | if (dv && dv->totweight) { | ||||
| ToolSettings *ts = scene->toolsettings; | ToolSettings *ts = scene->toolsettings; | ||||
| ▲ Show 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | case MB_ELIPSOID: | ||||
| uiItemR(col, &ptr, "size_y", 0, "Y", ICON_NONE); | uiItemR(col, &ptr, "size_y", 0, "Y", ICON_NONE); | ||||
| uiItemR(col, &ptr, "size_z", 0, "Z", ICON_NONE); | uiItemR(col, &ptr, "size_z", 0, "Z", ICON_NONE); | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| static void do_view3d_region_buttons(bContext *C, void *UNUSED(index), int event) | static void do_view3d_region_buttons(bContext *C, void *UNUSED(index), int event) | ||||
| { | { | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| View3D *v3d = CTX_wm_view3d(C); | View3D *v3d = CTX_wm_view3d(C); | ||||
| Object *ob = OBACT(sl); | Object *ob = OBACT(sl); | ||||
| switch (event) { | switch (event) { | ||||
| case B_REDR: | case B_REDR: | ||||
| ED_area_tag_redraw(CTX_wm_area(C)); | ED_area_tag_redraw(CTX_wm_area(C)); | ||||
| return; /* no notifier! */ | return; /* no notifier! */ | ||||
| case B_OBJECTPANELMEDIAN: | case B_OBJECTPANELMEDIAN: | ||||
| if (ob) { | if (ob) { | ||||
| v3d_editvertex_buts(NULL, v3d, ob, 1.0); | v3d_editvertex_buts(NULL, v3d, ob, 1.0); | ||||
| DEG_id_tag_update(&ob->id, OB_RECALC_DATA); | DEG_id_tag_update(&ob->id, OB_RECALC_DATA); | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| /* default for now */ | /* default for now */ | ||||
| WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); | WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); | ||||
| } | } | ||||
| static int view3d_panel_transform_poll(const bContext *C, PanelType *UNUSED(pt)) | static int view3d_panel_transform_poll(const bContext *C, PanelType *UNUSED(pt)) | ||||
| { | { | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| return (sl->basact != NULL); | return (sl->basact != NULL); | ||||
| } | } | ||||
| static void view3d_panel_transform(const bContext *C, Panel *pa) | static void view3d_panel_transform(const bContext *C, Panel *pa) | ||||
| { | { | ||||
| uiBlock *block; | uiBlock *block; | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| Object *obedit = CTX_data_edit_object(C); | Object *obedit = CTX_data_edit_object(C); | ||||
| Object *ob = sl->basact->object; | Object *ob = sl->basact->object; | ||||
| uiLayout *col; | uiLayout *col; | ||||
| block = uiLayoutGetBlock(pa->layout); | block = uiLayoutGetBlock(pa->layout); | ||||
| UI_block_func_handle_set(block, do_view3d_region_buttons, NULL); | UI_block_func_handle_set(block, do_view3d_region_buttons, NULL); | ||||
| col = uiLayoutColumn(pa->layout, false); | col = uiLayoutColumn(pa->layout, false); | ||||
| ▲ Show 20 Lines • Show All 69 Lines • Show Last 20 Lines | |||||