Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/space_view3d.c
| Show First 20 Lines • Show All 533 Lines • ▼ Show 20 Lines | static char *view3d_mat_drop_tooltip(bContext *C, | ||||
| const wmEvent *event, | const wmEvent *event, | ||||
| struct wmDropBox *drop) | struct wmDropBox *drop) | ||||
| { | { | ||||
| const char *name = WM_drag_get_item_name(drag); | const char *name = WM_drag_get_item_name(drag); | ||||
| RNA_string_set(drop->ptr, "name", name); | RNA_string_set(drop->ptr, "name", name); | ||||
| return ED_object_ot_drop_named_material_tooltip(C, drop->ptr, event); | return ED_object_ot_drop_named_material_tooltip(C, drop->ptr, event); | ||||
| } | } | ||||
| static bool view3d_world_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event) | |||||
| { | |||||
| return view3d_drop_id_in_main_region_poll(C, drag, event, ID_WO); | |||||
| } | |||||
| static bool view3d_object_data_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event) | static bool view3d_object_data_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event) | ||||
| { | { | ||||
| ID_Type id_type = view3d_drop_id_in_main_region_poll_get_id_type(C, drag, event); | ID_Type id_type = view3d_drop_id_in_main_region_poll_get_id_type(C, drag, event); | ||||
| if (id_type && OB_DATA_SUPPORT_ID(id_type)) { | if (id_type && OB_DATA_SUPPORT_ID(id_type)) { | ||||
| return true; | return true; | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 177 Lines • ▼ Show 20 Lines | WM_dropbox_add(lb, | ||||
| WM_drag_free_imported_drag_ID, | WM_drag_free_imported_drag_ID, | ||||
| NULL); | NULL); | ||||
| WM_dropbox_add(lb, | WM_dropbox_add(lb, | ||||
| "OBJECT_OT_data_instance_add", | "OBJECT_OT_data_instance_add", | ||||
| view3d_object_data_drop_poll, | view3d_object_data_drop_poll, | ||||
| view3d_id_drop_copy_with_type, | view3d_id_drop_copy_with_type, | ||||
| WM_drag_free_imported_drag_ID, | WM_drag_free_imported_drag_ID, | ||||
| view3d_object_data_drop_tooltip); | view3d_object_data_drop_tooltip); | ||||
| WM_dropbox_add(lb, | |||||
| "VIEW3D_OT_drop_world", | |||||
| view3d_world_drop_poll, | |||||
| view3d_id_drop_copy, | |||||
| WM_drag_free_imported_drag_ID, | |||||
| NULL); | |||||
| } | } | ||||
| static void view3d_widgets(void) | static void view3d_widgets(void) | ||||
| { | { | ||||
| wmGizmoMapType *gzmap_type = WM_gizmomaptype_ensure( | wmGizmoMapType *gzmap_type = WM_gizmomaptype_ensure( | ||||
| &(const struct wmGizmoMapType_Params){SPACE_VIEW3D, RGN_TYPE_WINDOW}); | &(const struct wmGizmoMapType_Params){SPACE_VIEW3D, RGN_TYPE_WINDOW}); | ||||
| WM_gizmogrouptype_append_and_link(gzmap_type, VIEW3D_GGT_xform_gizmo_context); | WM_gizmogrouptype_append_and_link(gzmap_type, VIEW3D_GGT_xform_gizmo_context); | ||||
| ▲ Show 20 Lines • Show All 807 Lines • ▼ Show 20 Lines | static void space_view3d_listener(const wmSpaceTypeListenerParams *params) | ||||
| ScrArea *area = params->area; | ScrArea *area = params->area; | ||||
| wmNotifier *wmn = params->notifier; | wmNotifier *wmn = params->notifier; | ||||
| View3D *v3d = area->spacedata.first; | View3D *v3d = area->spacedata.first; | ||||
| /* context changes */ | /* context changes */ | ||||
| switch (wmn->category) { | switch (wmn->category) { | ||||
| case NC_SCENE: | case NC_SCENE: | ||||
| switch (wmn->data) { | switch (wmn->data) { | ||||
| case ND_WORLD: | case ND_WORLD: { | ||||
| if (v3d->flag2 & V3D_HIDE_OVERLAYS) { | const bool use_scene_world = ((v3d->shading.type == OB_MATERIAL) && | ||||
| (v3d->shading.flag & V3D_SHADING_SCENE_WORLD)) || | |||||
| ((v3d->shading.type == OB_RENDER) && | |||||
| (v3d->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER)); | |||||
| if (v3d->flag2 & V3D_HIDE_OVERLAYS || use_scene_world) { | |||||
| ED_area_tag_redraw_regiontype(area, RGN_TYPE_WINDOW); | ED_area_tag_redraw_regiontype(area, RGN_TYPE_WINDOW); | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | |||||
| break; | break; | ||||
| case NC_WORLD: | case NC_WORLD: | ||||
| switch (wmn->data) { | switch (wmn->data) { | ||||
| case ND_WORLD_DRAW: | case ND_WORLD_DRAW: | ||||
| case ND_WORLD: | case ND_WORLD: | ||||
| if (v3d->shading.background_type == V3D_SHADING_BACKGROUND_WORLD) { | if (v3d->shading.background_type == V3D_SHADING_BACKGROUND_WORLD) { | ||||
| ED_area_tag_redraw_regiontype(area, RGN_TYPE_WINDOW); | ED_area_tag_redraw_regiontype(area, RGN_TYPE_WINDOW); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 215 Lines • Show Last 20 Lines | |||||