您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uiLayoutGetBlock函数代码示例

51自学网 2021-06-03 09:06:50
  C++
这篇教程C++ uiLayoutGetBlock函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uiLayoutGetBlock函数的典型用法代码示例。如果您正苦于以下问题:C++ uiLayoutGetBlock函数的具体用法?C++ uiLayoutGetBlock怎么用?C++ uiLayoutGetBlock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了uiLayoutGetBlock函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: file_panel_operator

static void file_panel_operator(const bContext *C, Panel *pa){	SpaceFile *sfile = CTX_wm_space_file(C);	wmOperator *op = sfile->op;	UI_block_func_set(uiLayoutGetBlock(pa->layout), file_draw_check_cb, NULL, NULL);	/* Hack: temporary hide.*/	const char *hide[] = {"filepath", "directory", "filename", "files"};	for (int i = 0; i < ARRAY_SIZE(hide); i++) {		PropertyRNA *prop = RNA_struct_find_property(op->ptr, hide[i]);		if (prop) {			RNA_def_property_flag(prop, PROP_HIDDEN);		}	}	uiTemplateOperatorPropertyButs(C, pa->layout, op, '/0', UI_TEMPLATE_OP_PROPS_SHOW_EMPTY);	for (int i = 0; i < ARRAY_SIZE(hide); i++) {		PropertyRNA *prop = RNA_struct_find_property(op->ptr, hide[i]);		if (prop) {			RNA_def_property_clear_flag(prop, PROP_HIDDEN);		}	}	UI_block_func_set(uiLayoutGetBlock(pa->layout), NULL, NULL, NULL);}
开发者ID:Ichthyostega,项目名称:blender,代码行数:27,


示例2: draw_modifier__envelope

/* draw settings for envelope modifier */static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width)){	FMod_Envelope *env = (FMod_Envelope *)fcm->data;	FCM_EnvelopeData *fed;	uiLayout *col, *row;	uiBlock *block;	uiBut *but;	PointerRNA ptr;	int i;		/* init the RNA-pointer */	RNA_pointer_create(id, &RNA_FModifierEnvelope, fcm, &ptr);		/* general settings */	col = uiLayoutColumn(layout, TRUE);	uiItemL(col, IFACE_("Envelope:"), ICON_NONE);	uiItemR(col, &ptr, "reference_value", 0, NULL, ICON_NONE);	row = uiLayoutRow(col, TRUE);	uiItemR(row, &ptr, "default_min", 0, IFACE_("Min"), ICON_NONE);	uiItemR(row, &ptr, "default_max", 0, IFACE_("Max"), ICON_NONE);	/* control points header */	/* TODO: move this control-point control stuff to using the new special widgets for lists	 * the current way is far too cramped */	row = uiLayoutRow(layout, FALSE);	block = uiLayoutGetBlock(row);			uiDefBut(block, LABEL, 1, IFACE_("Control Points:"), 0, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");			but = uiDefBut(block, BUT, B_FMODIFIER_REDRAW, IFACE_("Add Point"), 0, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y,	               NULL, 0, 0, 0, 0, TIP_("Add a new control-point to the envelope on the current frame"));	uiButSetFunc(but, fmod_envelope_addpoint_cb, env, NULL);			/* control points list */	for (i = 0, fed = env->data; i < env->totvert; i++, fed++) {		/* get a new row to operate on */		row = uiLayoutRow(layout, TRUE);		block = uiLayoutGetBlock(row);				uiBlockBeginAlign(block);		but = uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Fra:"), 0, 0, 4.5 * UI_UNIT_X, UI_UNIT_Y,		                &fed->time, -MAXFRAMEF, MAXFRAMEF, 10, 1, TIP_("Frame that envelope point occurs"));		uiButSetFunc(but, validate_fmodifier_cb, fcm, NULL);					uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Min:"), 0, 0, 5 * UI_UNIT_X, UI_UNIT_Y,		          &fed->min, -UI_FLT_MAX, UI_FLT_MAX, 10, 2, TIP_("Minimum bound of envelope at this point"));		uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Max:"), 0, 0, 5 * UI_UNIT_X, UI_UNIT_Y,		          &fed->max, -UI_FLT_MAX, UI_FLT_MAX, 10, 2, TIP_("Maximum bound of envelope at this point"));		but = uiDefIconBut(block, BUT, B_FMODIFIER_REDRAW, ICON_X, 0, 0, 0.9 * UI_UNIT_X, UI_UNIT_Y,		                   NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Delete envelope control point"));		uiButSetFunc(but, fmod_envelope_deletepoint_cb, env, SET_INT_IN_POINTER(i));		uiBlockBeginAlign(block);	}}
开发者ID:Eibriel,项目名称:kiriblender,代码行数:57,


示例3: file_panel_operator

static void file_panel_operator(const bContext *C, Panel *pa){	SpaceFile *sfile= CTX_wm_space_file(C);	wmOperator *op= sfile->op;	// int empty= 1, flag;		uiBlockSetFunc(uiLayoutGetBlock(pa->layout), file_draw_check_cb, NULL, NULL);	uiLayoutOperatorButs(C, pa->layout, op, file_panel_check_prop, '/0', UI_LAYOUT_OP_SHOW_EMPTY);	uiBlockSetFunc(uiLayoutGetBlock(pa->layout), NULL, NULL, NULL);}
开发者ID:BHCLL,项目名称:blendocv,代码行数:12,


示例4: file_panel_category

static void file_panel_category(const bContext *C, Panel *pa, FSMenuCategory category, short *nr, int icon, int allow_delete){	SpaceFile *sfile = CTX_wm_space_file(C);	uiBlock *block;	uiBut *but;	uiLayout *box, *col;	struct FSMenu *fsmenu = fsmenu_get();	int i, nentries = fsmenu_get_nentries(fsmenu, category);	/* reset each time */	*nr = -1;	/* hide if no entries */	if (nentries == 0)		return;	/* layout */	uiLayoutSetAlignment(pa->layout, UI_LAYOUT_ALIGN_LEFT);	block = uiLayoutGetBlock(pa->layout);	box = uiLayoutBox(pa->layout);	col = uiLayoutColumn(box, TRUE);	for (i = 0; i < nentries; ++i) {		char dir[FILE_MAX];		char temp[FILE_MAX];		uiLayout *layout = uiLayoutRow(col, FALSE);		char *entry;				entry = fsmenu_get_entry(fsmenu, category, i);				/* set this list item as active if we have a match */		if (sfile->params) {			if (BLI_path_cmp(sfile->params->dir, entry) == 0) {				*nr = i;			}		}		/* create nice bookmark name, shows last directory in the full path currently */		BLI_strncpy(temp, entry, FILE_MAX);		BLI_add_slash(temp);		BLI_getlastdir(temp, dir, FILE_MAX);		BLI_del_slash(dir);		if (dir[0] == 0)			BLI_strncpy(dir, entry, FILE_MAX);		/* create list item */		but = uiDefIconTextButS(block, LISTROW, 0, icon, dir, 0, 0, UI_UNIT_X * 10, UI_UNIT_Y, nr, 0, i, 0, 0, entry);		uiButSetFunc(but, file_panel_cb, entry, NULL);		uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */		uiButSetFlag(but, UI_ICON_LEFT | UI_TEXT_LEFT);		/* create delete button */		if (allow_delete && fsmenu_can_save(fsmenu, category, i)) {			uiBlockSetEmboss(block, UI_EMBOSSN);			uiItemIntO(layout, "", ICON_X, "FILE_OT_delete_bookmark", "index", i);			uiBlockSetEmboss(block, UI_EMBOSS);		}	}}
开发者ID:diosney,项目名称:blender,代码行数:60,


示例5: uiTemplateNodeLink

void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSocket *sock){	uiBlock *block = uiLayoutGetBlock(layout);	NodeLinkArg *arg;	uiBut *but;	arg = MEM_callocN(sizeof(NodeLinkArg), "NodeLinkArg");	arg->ntree = ntree;	arg->node = node;	arg->sock = sock;	UI_block_layout_set_current(block, layout);	if (sock->link || sock->type == SOCK_SHADER || (sock->flag & SOCK_HIDE_VALUE)) {		char name[UI_MAX_NAME_STR];		ui_node_sock_name(sock, name);		but = uiDefMenuBut(block, ui_template_node_link_menu, NULL, name, 0, 0, UI_UNIT_X * 4, UI_UNIT_Y, "");	}	else		but = uiDefIconMenuBut(block, ui_template_node_link_menu, NULL, ICON_NONE, 0, 0, UI_UNIT_X, UI_UNIT_Y, "");	UI_but_type_set_menu_from_pulldown(but);	but->flag |= UI_BUT_NODE_LINK;	but->poin = (char *)but;	but->func_argN = arg;	if (sock->link && sock->link->fromnode)		if (sock->link->fromnode->flag & NODE_ACTIVE_TEXTURE)			but->flag |= UI_BUT_NODE_ACTIVE;}
开发者ID:JasonWilkins,项目名称:blender-viewport_fx,代码行数:31,


示例6: nla_panel_evaluation

/* evaluation settings for active NLA-Strip */static void nla_panel_evaluation(const bContext *C, Panel *pa){	PointerRNA strip_ptr;	uiLayout *layout = pa->layout;	uiLayout *col, *sub;	uiBlock *block;	/* check context and also validity of pointer */	if (!nla_panel_context(C, NULL, NULL, &strip_ptr))		return;			block = uiLayoutGetBlock(layout);	UI_block_func_handle_set(block, do_nla_region_buttons, NULL);			col = uiLayoutColumn(layout, true);	uiItemR(col, &strip_ptr, "use_animated_influence", 0, NULL, ICON_NONE);		sub = uiLayoutColumn(col, true);	uiLayoutSetEnabled(sub, RNA_boolean_get(&strip_ptr, "use_animated_influence"));	uiItemR(sub, &strip_ptr, "influence", 0, NULL, ICON_NONE);	col = uiLayoutColumn(layout, true);	sub = uiLayoutRow(col, false);	uiItemR(sub, &strip_ptr, "use_animated_time", 0, NULL, ICON_NONE);	uiItemR(sub, &strip_ptr, "use_animated_time_cyclic", 0, NULL, ICON_NONE);	sub = uiLayoutRow(col, false);	uiLayoutSetEnabled(sub, RNA_boolean_get(&strip_ptr, "use_animated_time"));	uiItemR(sub, &strip_ptr, "strip_time", 0, NULL, ICON_NONE);}
开发者ID:mgschwan,项目名称:blensor,代码行数:31,


示例7: template_texture_user_menu

static void template_texture_user_menu(bContext *C, uiLayout *layout, void *UNUSED(arg)){	/* callback when opening texture user selection menu, to create buttons. */	SpaceButs *sbuts = CTX_wm_space_buts(C);	ButsContextTexture *ct= (sbuts)? sbuts->texuser: NULL;	ButsTextureUser *user;	uiBlock *block = uiLayoutGetBlock(layout);	const char *last_category = NULL;	for(user=ct->users.first; user; user=user->next) {		uiBut *but;		char name[UI_MAX_NAME_STR];		/* add label per category */		if(!last_category || strcmp(last_category, user->category) != 0) {			uiItemL(layout, user->category, ICON_NONE);			but= block->buttons.last;			but->flag= UI_TEXT_LEFT;		}		/* create button */		BLI_snprintf(name, UI_MAX_NAME_STR, "  %s", user->name);		but = uiDefIconTextBut(block, BUT, 0, user->icon, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y,			NULL, 0.0, 0.0, 0.0, 0.0, "");		uiButSetNFunc(but, template_texture_select, MEM_dupallocN(user), NULL);		last_category = user->category;	}}
开发者ID:mik0001,项目名称:Blender,代码行数:30,


示例8: active_node_panel

/* active node */static void active_node_panel(const bContext *C, Panel *pa){	SpaceNode *snode= CTX_wm_space_node(C);	bNodeTree *ntree= (snode) ? snode->edittree : NULL;	bNode *node = (ntree) ? nodeGetActive(ntree) : NULL; // xxx... for editing group nodes	uiLayout *layout= pa->layout;	uiBlock *block;	PointerRNA ptr;		/* verify pointers, and create RNA pointer for the node */	if ELEM(NULL, ntree, node)		return;	//if (node->id) /* for group nodes */	//	RNA_pointer_create(node->id, &RNA_Node, node, &ptr);	//else		RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); 		/* set update callback */	// xxx is this really needed	block= uiLayoutGetBlock(layout);	uiBlockSetHandleFunc(block, do_node_region_buttons, NULL);		/* draw this node's name, etc. */	uiItemR(layout, &ptr, "label", 0, NULL, ICON_NODE);	uiItemS(layout);	uiItemR(layout, &ptr, "name", 0, NULL, ICON_NODE);	uiItemS(layout);	/* draw this node's settings */	if (node->typeinfo && node->typeinfo->uifuncbut)		node->typeinfo->uifuncbut(layout, (bContext *)C, &ptr);	else if (node->typeinfo && node->typeinfo->uifunc)		node->typeinfo->uifunc(layout, (bContext *)C, &ptr);}
开发者ID:BHCLL,项目名称:blendocv,代码行数:35,


示例9: uiblock_layer_pass_arrow_buttons

static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, RenderResult *rr, ImageUser *iuser, short *render_slot){	uiBlock *block = uiLayoutGetBlock(layout);	uiLayout *row;	uiBut *but;	const float dpi_fac = UI_DPI_FAC;		row = uiLayoutRow(layout, TRUE);	if (rr == NULL || iuser == NULL)		return;	if (rr->layers.first == NULL) {		uiItemL(row, IFACE_("No Layers in Render Result"), ICON_NONE);		return;	}	/* decrease, increase arrows */	but = uiDefIconBut(block, BUT, 0, ICON_TRIA_LEFT,   0, 0, 0.85f * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, TIP_("Previous Layer"));	uiButSetFunc(but, image_multi_declay_cb, rr, iuser);	but = uiDefIconBut(block, BUT, 0, ICON_TRIA_RIGHT,  0, 0, 0.90f * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, TIP_("Next Layer"));	uiButSetFunc(but, image_multi_inclay_cb, rr, iuser);	uiblock_layer_pass_buttons(row, rr, iuser, 230 * dpi_fac, render_slot);	/* decrease, increase arrows */	but = uiDefIconBut(block, BUT, 0, ICON_TRIA_LEFT,   0, 0, 0.85f * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, TIP_("Previous Pass"));	uiButSetFunc(but, image_multi_decpass_cb, rr, iuser);	but = uiDefIconBut(block, BUT, 0, ICON_TRIA_RIGHT,  0, 0, 0.90f * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, TIP_("Next Pass"));	uiButSetFunc(but, image_multi_incpass_cb, rr, iuser);	uiBlockEndAlign(block);}
开发者ID:Eibriel,项目名称:kiriblender,代码行数:32,


示例10: ui_imageuser_layer_menu

static void ui_imageuser_layer_menu(bContext *UNUSED(C), uiLayout *layout, void *rnd_pt){	void **rnd_data = rnd_pt;	uiBlock *block = uiLayoutGetBlock(layout);	RenderResult *rr = rnd_data[0];	ImageUser *iuser = rnd_data[1];	RenderLayer *rl;	RenderLayer rl_fake = {NULL};	const char *fake_name;	int nr;	uiBlockSetCurLayout(block, layout);	uiLayoutColumn(layout, false);	uiDefBut(block, LABEL, 0, IFACE_("Layer"),	         0, 0, UI_UNIT_X * 5, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");	uiItemS(layout);	nr = BLI_countlist(&rr->layers) - 1;	fake_name = ui_imageuser_layer_fake_name(rr);	if (fake_name) {		BLI_strncpy(rl_fake.name, fake_name, sizeof(rl_fake.name));		nr += 1;	}	for (rl = rr->layers.last; rl; rl = rl->prev, nr--) {final:		uiDefButS(block, BUTM, B_NOP, IFACE_(rl->name), 0, 0,		          UI_UNIT_X * 5, UI_UNIT_X, &iuser->layer, (float) nr, 0.0, 0, -1, "");	}
开发者ID:zedd4x,项目名称:bepuik,代码行数:31,


示例11: view3d_panel_operator_redo

/* TODO de-duplicate redo panel functions - campbell */static void view3d_panel_operator_redo(const bContext *C, Panel *pa){	wmOperator *op = WM_operator_last_redo(C);	ARegion *ar;	ARegion *ar1;	if (op == NULL) {		return;	}	/* keep in sync with logic in ED_undo_operator_repeat() */	ar = CTX_wm_region(C);	ar1 = BKE_area_find_region_active_win(CTX_wm_area(C));	if (ar1)		CTX_wm_region_set((bContext *)C, ar1);	if (WM_operator_poll((bContext *)C, op->type)) {		uiBlock *block = uiLayoutGetBlock(pa->layout);		if (!WM_operator_check_ui_enabled(C, op->type->name))			uiLayoutSetEnabled(pa->layout, false);		/* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */		UI_block_func_handle_set(block, ED_undo_operator_repeat_cb_evt, op);		view3d_panel_operator_redo_operator(C, pa, op);	}	/* set region back */	CTX_wm_region_set((bContext *)C, ar);}
开发者ID:Andrewson3D,项目名称:blender-for-vray,代码行数:32,


示例12: nla_panel_animdata

/* active AnimData */static void nla_panel_animdata(const bContext *C, Panel *pa){	PointerRNA adt_ptr;	/* AnimData *adt; */	uiLayout *layout = pa->layout;	uiLayout *row;	uiBlock *block;		/* check context and also validity of pointer */	if (!nla_panel_context(C, &adt_ptr, NULL, NULL))		return;	/* adt = adt_ptr.data; */		block = uiLayoutGetBlock(layout);	UI_block_func_handle_set(block, do_nla_region_buttons, NULL);		/* AnimData Source Properties ----------------------------------- */		/* icon + id-block name of block where AnimData came from to prevent 	 * accidentally changing the properties of the wrong action	 */	if (adt_ptr.id.data) {		ID *id = adt_ptr.id.data;		PointerRNA id_ptr;				RNA_id_pointer_create(id, &id_ptr);				/* ID-block name > AnimData */		row = uiLayoutRow(layout, true);		uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_LEFT);				uiItemL(row, id->name + 2, RNA_struct_ui_icon(id_ptr.type));  /* id-block (src) */		uiItemL(row, "", VICO_SMALL_TRI_RIGHT_VEC);                   /* expander */		uiItemL(row, IFACE_("Animation Data"), ICON_ANIM_DATA);       /* animdata */				uiItemS(layout);	}		/* Active Action Properties ------------------------------------- */	/* action */	row = uiLayoutRow(layout, true);	uiTemplateID(	        row, (bContext *)C, &adt_ptr, "action",	        "ACTION_OT_new", NULL, "NLA_OT_action_unlink", UI_TEMPLATE_ID_FILTER_ALL);		/* extrapolation */	row = uiLayoutRow(layout, true);	uiItemR(row, &adt_ptr, "action_extrapolation", 0, NULL, ICON_NONE);		/* blending */	row = uiLayoutRow(layout, true);	uiItemR(row, &adt_ptr, "action_blend_type", 0, NULL, ICON_NONE);			/* influence */	row = uiLayoutRow(layout, true);	uiItemR(row, &adt_ptr, "action_influence", 0, NULL, ICON_NONE);}
开发者ID:mgschwan,项目名称:blensor,代码行数:59,


示例13: template_texture_user_menu

static void template_texture_user_menu(bContext *C, uiLayout *layout, void *UNUSED(arg)){  /* callback when opening texture user selection menu, to create buttons. */  SpaceProperties *sbuts = CTX_wm_space_properties(C);  ButsContextTexture *ct = sbuts->texuser;  ButsTextureUser *user;  uiBlock *block = uiLayoutGetBlock(layout);  const char *last_category = NULL;  for (user = ct->users.first; user; user = user->next) {    uiBut *but;    char name[UI_MAX_NAME_STR];    /* add label per category */    if (!last_category || !STREQ(last_category, user->category)) {      uiItemL(layout, IFACE_(user->category), ICON_NONE);      but = block->buttons.last;      but->drawflag = UI_BUT_TEXT_LEFT;    }    /* create button */    if (user->prop) {      PointerRNA texptr = RNA_property_pointer_get(&user->ptr, user->prop);      Tex *tex = texptr.data;      if (tex) {        BLI_snprintf(name, UI_MAX_NAME_STR, "  %s - %s", user->name, tex->id.name + 2);      }      else {        BLI_snprintf(name, UI_MAX_NAME_STR, "  %s", user->name);      }    }    else {      BLI_snprintf(name, UI_MAX_NAME_STR, "  %s", user->name);    }    but = uiDefIconTextBut(block,                           UI_BTYPE_BUT,                           0,                           user->icon,                           name,                           0,                           0,                           UI_UNIT_X * 4,                           UI_UNIT_Y,                           NULL,                           0.0,                           0.0,                           0.0,                           0.0,                           "");    UI_but_funcN_set(but, template_texture_select, MEM_dupallocN(user), NULL);    last_category = user->category;  }  UI_block_flag_enable(block, UI_BLOCK_NO_FLIP);}
开发者ID:dfelinto,项目名称:blender,代码行数:58,


示例14: uiTemplateEditModeSelection

void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C){	Object *obedit = CTX_data_edit_object(C);	uiBlock *block = uiLayoutGetBlock(layout);	uiBlockSetHandleFunc(block, do_view3d_header_buttons, NULL);	if (obedit && (obedit->type == OB_MESH)) {		BMEditMesh *em = BMEdit_FromObject(obedit);		uiLayout *row;		row = uiLayoutRow(layout, TRUE);		block = uiLayoutGetBlock(row);		uiDefIconButBitS(block, TOG, SCE_SELECT_VERTEX, B_SEL_VERT, ICON_VERTEXSEL, 0, 0, UI_UNIT_X, UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0, "Vertex select - Shift-Click for multiple modes");		uiDefIconButBitS(block, TOG, SCE_SELECT_EDGE, B_SEL_EDGE, ICON_EDGESEL, 0, 0, UI_UNIT_X, UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0, "Edge select - Shift-Click for multiple modes");		uiDefIconButBitS(block, TOG, SCE_SELECT_FACE, B_SEL_FACE, ICON_FACESEL, 0, 0, UI_UNIT_X, UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0, "Face select - Shift-Click for multiple modes");	}}
开发者ID:vanangamudi,项目名称:blender-main,代码行数:18,


示例15: graph_panel_key_properties

static void graph_panel_key_properties(const bContext *C, Panel *pa){	bAnimListElem *ale;	FCurve *fcu;	BezTriple *bezt, *prevbezt;		uiLayout *layout = pa->layout;	uiLayout *col;	uiBlock *block;	if (!graph_panel_context(C, &ale, &fcu))		return;		block = uiLayoutGetBlock(layout);	uiBlockSetHandleFunc(block, do_graph_region_buttons, NULL);		/* only show this info if there are keyframes to edit */	if (get_active_fcurve_keyframe_edit(fcu, &bezt, &prevbezt)) {		PointerRNA bezt_ptr;				/* RNA pointer to keyframe, to allow editing */		RNA_pointer_create(ale->id, &RNA_Keyframe, bezt, &bezt_ptr);				/* interpolation */		col= uiLayoutColumn(layout, 0);			uiItemR(col, &bezt_ptr, "interpolation", 0, NULL, ICON_NONE);					/* numerical coordinate editing */		col= uiLayoutColumn(layout, 1);			/* keyframe itself */			uiItemR(col, &bezt_ptr, "co", 0, "Key", ICON_NONE);						/* previous handle - only if previous was Bezier interpolation */			if ((prevbezt) && (prevbezt->ipo == BEZT_IPO_BEZ))				uiItemR(col, &bezt_ptr, "handle_left", 0, NULL, ICON_NONE);						/* next handle - only if current is Bezier interpolation */			if (bezt->ipo == BEZT_IPO_BEZ)				uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, ICON_NONE);	}	else {		if ((fcu->bezt == NULL) && (fcu->modifiers.first)) {			/* modifiers only - so no keyframes to be active */			uiItemL(layout, "F-Curve only has F-Modifiers", ICON_NONE);			uiItemL(layout, "See Modifiers panel below", ICON_INFO);		}		else if (fcu->fpt) {			/* samples only */			uiItemL(layout, "F-Curve doesn't have any keyframes as it only contains sampled points", ICON_NONE);		}		else			uiItemL(layout, "No active keyframe on F-Curve", ICON_NONE);	}		MEM_freeN(ale);}
开发者ID:OldBrunet,项目名称:BGERTPS,代码行数:56,


示例16: uiTemplateEditModeSelection

void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C){	Object *obedit = CTX_data_edit_object(C);	uiBlock *block= uiLayoutGetBlock(layout);	uiBlockSetHandleFunc(block, do_view3d_header_buttons, NULL);	if(obedit && (obedit->type == OB_MESH)) {		EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);		uiLayout *row;		row= uiLayoutRow(layout, 1);		block= uiLayoutGetBlock(row);		uiDefIconButBitS(block, TOG, SCE_SELECT_VERTEX, B_SEL_VERT, ICON_VERTEXSEL, 0,0,UI_UNIT_X,UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0, "Vertex select mode");		uiDefIconButBitS(block, TOG, SCE_SELECT_EDGE, B_SEL_EDGE, ICON_EDGESEL, 0,0,UI_UNIT_X,UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0, "Edge select mode");		uiDefIconButBitS(block, TOG, SCE_SELECT_FACE, B_SEL_FACE, ICON_FACESEL, 0,0,UI_UNIT_X,UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0, "Face select mode");		BKE_mesh_end_editmesh(obedit->data, em);	}}
开发者ID:BHCLL,项目名称:blendocv,代码行数:20,


示例17: graph_panel_modifiers

static void graph_panel_modifiers(const bContext *C, Panel *pa)	{	bAnimListElem *ale;	FCurve *fcu;	FModifier *fcm;	uiLayout *col, *row;	uiBlock *block;		if (!graph_panel_context(C, &ale, &fcu))		return;		block = uiLayoutGetBlock(pa->layout);	uiBlockSetHandleFunc(block, do_graph_region_modifier_buttons, NULL);		/* 'add modifier' button at top of panel */	{		row = uiLayoutRow(pa->layout, false);		block = uiLayoutGetBlock(row);				/* this is an operator button which calls a 'add modifier' operator... 		 * a menu might be nicer but would be tricky as we need some custom filtering		 */		uiDefButO(block, BUT, "GRAPH_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, IFACE_("Add Modifier"),		          0.5 * UI_UNIT_X, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y, TIP_("Adds a new F-Curve Modifier for the active F-Curve"));				/* copy/paste (as sub-row)*/		row = uiLayoutRow(row, true);		uiItemO(row, "", ICON_COPYDOWN, "GRAPH_OT_fmodifier_copy");		uiItemO(row, "", ICON_PASTEDOWN, "GRAPH_OT_fmodifier_paste");	}		/* draw each modifier */	for (fcm = fcu->modifiers.first; fcm; fcm = fcm->next) {		col = uiLayoutColumn(pa->layout, true);				ANIM_uiTemplate_fmodifier_draw(col, ale->id, &fcu->modifiers, fcm);	}	MEM_freeN(ale);}
开发者ID:SuriyaaKudoIsc,项目名称:blender-git,代码行数:40,


示例18: graph_panel_modifiers

static void graph_panel_modifiers(const bContext *C, Panel *pa)	{	bAnimListElem *ale;	FCurve *fcu;	FModifier *fcm;	uiLayout *col, *row;	uiBlock *block;		if (!graph_panel_context(C, &ale, &fcu))		return;		block = uiLayoutGetBlock(pa->layout);	uiBlockSetHandleFunc(block, do_graph_region_modifier_buttons, NULL);		/* 'add modifier' button at top of panel */	{		row = uiLayoutRow(pa->layout, FALSE);		block = uiLayoutGetBlock(row);				// XXX for now, this will be a operator button which calls a 'add modifier' operator		uiDefButO(block, BUT, "GRAPH_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, IFACE_("Add Modifier"),		          10, 0, 150, 20, TIP_("Adds a new F-Curve Modifier for the active F-Curve"));				/* copy/paste (as sub-row)*/		row = uiLayoutRow(row, TRUE);		uiItemO(row, "", ICON_COPYDOWN, "GRAPH_OT_fmodifier_copy");		uiItemO(row, "", ICON_PASTEDOWN, "GRAPH_OT_fmodifier_paste");	}		/* draw each modifier */	for (fcm = fcu->modifiers.first; fcm; fcm = fcm->next) {		col = uiLayoutColumn(pa->layout, TRUE);				ANIM_uiTemplate_fmodifier_draw(col, ale->id, &fcu->modifiers, fcm);	}	MEM_freeN(ale);}
开发者ID:vanangamudi,项目名称:blender-main,代码行数:38,


示例19: uiTemplateMovieClip

void uiTemplateMovieClip(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, int compact){	PropertyRNA *prop;	PointerRNA clipptr;	MovieClip *clip;	uiLayout *row, *split;	uiBlock *block;	if (!ptr->data)		return;	prop = RNA_struct_find_property(ptr, propname);	if (!prop) {		printf("%s: property not found: %s.%s/n",		       __func__, RNA_struct_identifier(ptr->type), propname);		return;	}	if (RNA_property_type(prop) != PROP_POINTER) {		printf("%s: expected pointer property for %s.%s/n",		       __func__, RNA_struct_identifier(ptr->type), propname);		return;	}	clipptr = RNA_property_pointer_get(ptr, prop);	clip = clipptr.data;	uiLayoutSetContextPointer(layout, "edit_movieclip", &clipptr);	if (!compact)		uiTemplateID(layout, C, ptr, propname, NULL, "CLIP_OT_open", NULL);	if (clip) {		uiLayout *col;		row = uiLayoutRow(layout, FALSE);		block = uiLayoutGetBlock(row);		uiDefBut(block, LABEL, 0, "File Path:", 0, 19, 145, 19, NULL, 0, 0, 0, 0, "");		row = uiLayoutRow(layout, FALSE);		split = uiLayoutSplit(row, 0.0f, FALSE);		row = uiLayoutRow(split, TRUE);		uiItemR(row, &clipptr, "filepath", 0, "", ICON_NONE);		uiItemO(row, "", ICON_FILE_REFRESH, "clip.reload");		col = uiLayoutColumn(layout, FALSE);		uiTemplateColorspaceSettings(col, &clipptr, "colorspace_settings");	}}
开发者ID:danielmarg,项目名称:blender-main,代码行数:50,


示例20: nla_panel_modifiers

/* F-Modifiers for active NLA-Strip */static void nla_panel_modifiers(const bContext *C, Panel *pa){	PointerRNA strip_ptr;	NlaStrip *strip;	FModifier *fcm;	uiLayout *col, *row;	uiBlock *block;	/* check context and also validity of pointer */	if (!nla_panel_context(C, NULL, NULL, &strip_ptr))		return;	strip = strip_ptr.data;			block = uiLayoutGetBlock(pa->layout);	UI_block_func_handle_set(block, do_nla_region_buttons, NULL);		/* 'add modifier' button at top of panel */	{		row = uiLayoutRow(pa->layout, false);		block = uiLayoutGetBlock(row);				// FIXME: we need to set the only-active property so that this will only add modifiers for the active strip (not all selected)		uiItemMenuEnumO(row, (bContext *)C, "NLA_OT_fmodifier_add", "type", IFACE_("Add Modifier"), ICON_NONE);				/* copy/paste (as sub-row) */		row = uiLayoutRow(row, true);		uiItemO(row, "", ICON_COPYDOWN, "NLA_OT_fmodifier_copy");		uiItemO(row, "", ICON_PASTEDOWN, "NLA_OT_fmodifier_paste");	}		/* draw each modifier */	for (fcm = strip->modifiers.first; fcm; fcm = fcm->next) {		col = uiLayoutColumn(pa->layout, true);				ANIM_uiTemplate_fmodifier_draw(col, strip_ptr.id.data, &strip->modifiers, fcm);	}}
开发者ID:mgschwan,项目名称:blensor,代码行数:38,


示例21: uiTemplateTextureUser

void uiTemplateTextureUser(uiLayout *layout, bContext *C){  /* texture user selection dropdown menu. the available users have been   * gathered before drawing in ButsContextTexture, we merely need to   * display the current item. */  SpaceProperties *sbuts = CTX_wm_space_properties(C);  ButsContextTexture *ct = (sbuts) ? sbuts->texuser : NULL;  uiBlock *block = uiLayoutGetBlock(layout);  uiBut *but;  ButsTextureUser *user;  char name[UI_MAX_NAME_STR];  if (!ct) {    return;  }  /* get current user */  user = ct->user;  if (!user) {    uiItemL(layout, IFACE_("No textures in context"), ICON_NONE);    return;  }  /* create button */  BLI_strncpy(name, user->name, UI_MAX_NAME_STR);  if (user->icon) {    but = uiDefIconTextMenuBut(block,                               template_texture_user_menu,                               NULL,                               user->icon,                               name,                               0,                               0,                               UI_UNIT_X * 4,                               UI_UNIT_Y,                               "");  }  else {    but = uiDefMenuBut(        block, template_texture_user_menu, NULL, name, 0, 0, UI_UNIT_X * 4, UI_UNIT_Y, "");  }  /* some cosmetic tweaks */  UI_but_type_set_menu_from_pulldown(but);  but->flag &= ~UI_BUT_ICON_SUBMENU;}
开发者ID:dfelinto,项目名称:blender,代码行数:49,


示例22: uiTemplateEditModeSelection

void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C){	Object *obedit = CTX_data_edit_object(C);	uiBlock *block = uiLayoutGetBlock(layout);	UI_block_func_handle_set(block, do_view3d_header_buttons, NULL);	if (obedit && (obedit->type == OB_MESH)) {		BMEditMesh *em = BKE_editmesh_from_object(obedit);		uiLayout *row;		row = uiLayoutRow(layout, true);		block = uiLayoutGetBlock(row);		uiDefIconButBitS(block, UI_BTYPE_TOGGLE, SCE_SELECT_VERTEX, B_SEL_VERT, ICON_VERTEXSEL,		                 0, 0, UI_UNIT_X, UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0,		                 TIP_("Vertex select - Shift-Click for multiple modes, Ctrl-Click contracts selection"));		uiDefIconButBitS(block, UI_BTYPE_TOGGLE, SCE_SELECT_EDGE, B_SEL_EDGE, ICON_EDGESEL,		                 0, 0, UI_UNIT_X, UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0,		                 TIP_("Edge select - Shift-Click for multiple modes, Ctrl-Click expands/contracts selection"));		uiDefIconButBitS(block, UI_BTYPE_TOGGLE, SCE_SELECT_FACE, B_SEL_FACE, ICON_FACESEL,		                 0, 0, UI_UNIT_X, UI_UNIT_Y, &em->selectmode, 1.0, 0.0, 0, 0,		                 TIP_("Face select - Shift-Click for multiple modes, Ctrl-Click expands selection"));	}}
开发者ID:greg100795,项目名称:blender-git,代码行数:24,


示例23: buttons_context_draw

void buttons_context_draw(const bContext *C, uiLayout *layout){	SpaceButs *sbuts = CTX_wm_space_buts(C);	ButsContextPath *path = sbuts->path;	uiLayout *row;	uiBlock *block;	uiBut *but;	PointerRNA *ptr;	char namebuf[128], *name;	int a, icon;	if (!path)		return;	row = uiLayoutRow(layout, true);	uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_LEFT);	block = uiLayoutGetBlock(row);	UI_block_emboss_set(block, UI_EMBOSS_NONE);	but = uiDefIconButBitC(block, UI_BTYPE_ICON_TOGGLE, SB_PIN_CONTEXT, 0, ICON_UNPINNED, 0, 0, UI_UNIT_X, UI_UNIT_Y, &sbuts->flag,	                       0, 0, 0, 0, TIP_("Follow context or keep fixed datablock displayed"));	UI_but_flag_disable(but, UI_BUT_UNDO); /* skip undo on screen buttons */	UI_but_func_set(but, pin_cb, NULL, NULL);	for (a = 0; a < path->len; a++) {		ptr = &path->ptr[a];		if (a != 0)			uiItemL(row, "", VICO_SMALL_TRI_RIGHT_VEC);		if (ptr->data) {			icon = RNA_struct_ui_icon(ptr->type);			name = RNA_struct_name_get_alloc(ptr, namebuf, sizeof(namebuf), NULL);			if (name) {				if (!ELEM(sbuts->mainb, BCONTEXT_RENDER, BCONTEXT_SCENE, BCONTEXT_RENDER_LAYER) && ptr->type == &RNA_Scene)					uiItemLDrag(row, ptr, "", icon);  /* save some space */				else					uiItemLDrag(row, ptr, name, icon);				if (name != namebuf)					MEM_freeN(name);			}			else				uiItemL(row, "", icon);		}	}}
开发者ID:DarkDefender,项目名称:blender-npr-tess2,代码行数:48,



注:本文中的uiLayoutGetBlock函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ uiLayoutRow函数代码示例
C++ uiLayoutColumn函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。