Example #1
0
static int armature_parent_set_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *UNUSED(event))
{
	EditBone *actbone = CTX_data_active_bone(C);
	uiPopupMenu *pup = uiPupMenuBegin(C, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Make Parent"), ICON_NONE);
	uiLayout *layout = uiPupMenuLayout(pup);
	int allchildbones = 0;
	
	CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones)
	{
		if (ebone != actbone) {
			if (ebone->parent != actbone) allchildbones = 1;
		}
	}
	CTX_DATA_END;

	uiItemEnumO(layout, "ARMATURE_OT_parent_set", NULL, 0, "type", ARM_PAR_CONNECT);
	
	/* ob becomes parent, make the associated menus */
	if (allchildbones)
		uiItemEnumO(layout, "ARMATURE_OT_parent_set", NULL, 0, "type", ARM_PAR_OFFSET);
		
	uiPupMenuEnd(C, pup);
	
	return OPERATOR_CANCELLED;
}
Example #2
0
/* callback to report why a driver variable is invalid */
static void driver_dvar_invalid_name_query_cb(bContext *C, void *dvar_v, void *UNUSED(arg))
{
	uiPopupMenu *pup = UI_popup_menu_begin(C, CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Invalid Variable Name"), ICON_NONE);
	uiLayout *layout = UI_popup_menu_layout(pup);
	
	DriverVar *dvar = (DriverVar *)dvar_v;
	
	if (dvar->flag & DVAR_FLAG_INVALID_EMPTY) {
		uiItemL(layout, "It cannot be left blank", ICON_ERROR);
	}
	if (dvar->flag & DVAR_FLAG_INVALID_START_NUM) {
		uiItemL(layout, "It cannot start with a number", ICON_ERROR);
	}
	if (dvar->flag & DVAR_FLAG_INVALID_START_CHAR) {
		uiItemL(layout, 
		        "It cannot start with a special character,"
		        " including '$', '@', '!', '~', '+', '-', '_', '.', or ' '",
		        ICON_NONE);
	}
	if (dvar->flag & DVAR_FLAG_INVALID_HAS_SPACE) {
		uiItemL(layout, "It cannot contain spaces (e.g. 'a space')", ICON_ERROR);
	}
	if (dvar->flag & DVAR_FLAG_INVALID_HAS_DOT) {
		uiItemL(layout, "It cannot contain dots (e.g. 'a.dot')", ICON_ERROR);
	}
	if (dvar->flag & DVAR_FLAG_INVALID_HAS_SPECIAL) {
		uiItemL(layout, "It cannot contain special (non-alphabetical/numeric) characters", ICON_ERROR);
	}
	if (dvar->flag & DVAR_FLAG_INVALID_PY_KEYWORD) {
		uiItemL(layout, "It cannot be a reserved keyword in Python", ICON_INFO);
	}
	
	UI_popup_menu_end(C, pup);
}
Example #3
0
static int node_group_separate_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *UNUSED(event))
{
	uiPopupMenu *pup = uiPupMenuBegin(C, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Separate"), ICON_NONE);
	uiLayout *layout = uiPupMenuLayout(pup);
	
	uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
	uiItemEnumO(layout, "NODE_OT_group_separate", NULL, 0, "type", NODE_GS_COPY);
	uiItemEnumO(layout, "NODE_OT_group_separate", NULL, 0, "type", NODE_GS_MOVE);
	
	uiPupMenuEnd(C, pup);
	
	return OPERATOR_CANCELLED;
}