Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/interface/interface_eyedropper.c
| Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | |||||
| static bool eyedropper_init(bContext *C, wmOperator *op) | static bool eyedropper_init(bContext *C, wmOperator *op) | ||||
| { | { | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| Eyedropper *eye; | Eyedropper *eye; | ||||
| op->customdata = eye = MEM_callocN(sizeof(Eyedropper), "Eyedropper"); | op->customdata = eye = MEM_callocN(sizeof(Eyedropper), "Eyedropper"); | ||||
| uiContextActiveProperty(C, &eye->ptr, &eye->prop, &eye->index); | UI_context_active_but_prop_get(C, &eye->ptr, &eye->prop, &eye->index); | ||||
| if ((eye->ptr.data == NULL) || | if ((eye->ptr.data == NULL) || | ||||
| (eye->prop == NULL) || | (eye->prop == NULL) || | ||||
| (RNA_property_editable(&eye->ptr, eye->prop) == false) || | (RNA_property_editable(&eye->ptr, eye->prop) == false) || | ||||
| (RNA_property_array_length(&eye->ptr, eye->prop) < 3) || | (RNA_property_array_length(&eye->ptr, eye->prop) < 3) || | ||||
| (RNA_property_type(eye->prop) != PROP_FLOAT)) | (RNA_property_type(eye->prop) != PROP_FLOAT)) | ||||
| { | { | ||||
| return false; | return false; | ||||
| ▲ Show 20 Lines • Show All 273 Lines • ▼ Show 20 Lines | static void datadropper_draw_cb(const struct bContext *C, ARegion *ar, void *arg) | ||||
| int y = win->eventstate->y; | int y = win->eventstate->y; | ||||
| if ((name[0] == '\0') || | if ((name[0] == '\0') || | ||||
| (BLI_rcti_isect_pt(&ar->winrct, x, y) == false)) | (BLI_rcti_isect_pt(&ar->winrct, x, y) == false)) | ||||
| { | { | ||||
| return; | return; | ||||
| } | } | ||||
| width = UI_GetStringWidth(name); | width = UI_fontstyle_string_width(name); | ||||
| x = x - ar->winrct.xmin; | x = x - ar->winrct.xmin; | ||||
| y = y - ar->winrct.ymin; | y = y - ar->winrct.ymin; | ||||
| y += 20; | y += 20; | ||||
| glColor4ub(0, 0, 0, 50); | glColor4ub(0, 0, 0, 50); | ||||
| uiSetRoundBox(UI_CNR_ALL | UI_RB_ALPHA); | UI_draw_roundbox_corner_set(UI_CNR_ALL | UI_RB_ALPHA); | ||||
| uiRoundBox(x, y, x + width + 8, y + 15, 4); | UI_draw_roundbox(x, y, x + width + 8, y + 15, 4); | ||||
| glColor4ub(255, 255, 255, 255); | glColor4ub(255, 255, 255, 255); | ||||
| UI_DrawString(x + 4, y + 4, name); | UI_draw_string(x + 4, y + 4, name); | ||||
| } | } | ||||
| static int datadropper_init(bContext *C, wmOperator *op) | static int datadropper_init(bContext *C, wmOperator *op) | ||||
| { | { | ||||
| DataDropper *ddr; | DataDropper *ddr; | ||||
| int index_dummy; | int index_dummy; | ||||
| StructRNA *type; | StructRNA *type; | ||||
| SpaceType *st; | SpaceType *st; | ||||
| ARegionType *art; | ARegionType *art; | ||||
| st = BKE_spacetype_from_id(SPACE_VIEW3D); | st = BKE_spacetype_from_id(SPACE_VIEW3D); | ||||
| art = BKE_regiontype_from_id(st, RGN_TYPE_WINDOW); | art = BKE_regiontype_from_id(st, RGN_TYPE_WINDOW); | ||||
| op->customdata = ddr = MEM_callocN(sizeof(DataDropper), "DataDropper"); | op->customdata = ddr = MEM_callocN(sizeof(DataDropper), "DataDropper"); | ||||
| uiContextActiveProperty(C, &ddr->ptr, &ddr->prop, &index_dummy); | UI_context_active_but_prop_get(C, &ddr->ptr, &ddr->prop, &index_dummy); | ||||
| if ((ddr->ptr.data == NULL) || | if ((ddr->ptr.data == NULL) || | ||||
| (ddr->prop == NULL) || | (ddr->prop == NULL) || | ||||
| (RNA_property_editable(&ddr->ptr, ddr->prop) == false) || | (RNA_property_editable(&ddr->ptr, ddr->prop) == false) || | ||||
| (RNA_property_type(ddr->prop) != PROP_POINTER)) | (RNA_property_type(ddr->prop) != PROP_POINTER)) | ||||
| { | { | ||||
| return false; | return false; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 223 Lines • Show Last 20 Lines | |||||