当前位置: 首页>>代码示例>>C++>>正文


C++ LLMultiSliderCtrl::initFromXML方法代码示例

本文整理汇总了C++中LLMultiSliderCtrl::initFromXML方法的典型用法代码示例。如果您正苦于以下问题:C++ LLMultiSliderCtrl::initFromXML方法的具体用法?C++ LLMultiSliderCtrl::initFromXML怎么用?C++ LLMultiSliderCtrl::initFromXML使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在LLMultiSliderCtrl的用法示例。


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

示例1: fromXML


//.........这里部分代码省略.........

	LLRect rect;
	createRect(node, rect, parent, LLRect());

	LLFontGL* font = LLView::selectFont(node);

	// HACK: Font might not be specified.
	if (!font)
	{
		font = LLFontGL::getFontSansSerifSmall();
	}

	S32 label_width = 0;
	node->getAttributeS32("label_width", label_width);

	BOOL show_text = TRUE;
	node->getAttributeBOOL("show_text", show_text);

	BOOL can_edit_text = FALSE;
	node->getAttributeBOOL("can_edit_text", can_edit_text);
	
	BOOL allow_overlap = FALSE;
	node->getAttributeBOOL("allow_overlap", allow_overlap);

	BOOL draw_track = TRUE;
	node->getAttributeBOOL("draw_track", draw_track);

	BOOL use_triangle = FALSE;
	node->getAttributeBOOL("use_triangle", use_triangle);

	F32 initial_value = 0.f;
	node->getAttributeF32("initial_val", initial_value);

	F32 min_value = 0.f;
	node->getAttributeF32("min_val", min_value);

	F32 max_value = 1.f; 
	node->getAttributeF32("max_val", max_value);

	F32 increment = 0.1f;
	node->getAttributeF32("increment", increment);

	U32 precision = 3;
	node->getAttributeU32("decimal_digits", precision);

	S32 max_sliders = 1;
	node->getAttributeS32("max_sliders", max_sliders);


	S32 text_left = 0;
	if (show_text)
	{
		// calculate the size of the text box (log max_value is number of digits - 1 so plus 1)
		if ( max_value )
			text_left = font->getWidth(std::string("0")) * ( static_cast < S32 > ( log10  ( max_value ) ) + precision + 1 );

		if ( increment < 1.0f )
			text_left += font->getWidth(std::string("."));	// (mostly) take account of decimal point in value

		if ( min_value < 0.0f || max_value < 0.0f )
			text_left += font->getWidth(std::string("-"));	// (mostly) take account of minus sign 

		// padding to make things look nicer
		text_left += 8;
	}

	LLUICtrlCallback callback = NULL;

	if (label.empty())
	{
		label.assign(node->getTextContents());
	}

	LLMultiSliderCtrl* slider = new LLMultiSliderCtrl(name,
							rect,
							label,
							font,
							label_width,
							rect.getWidth() - text_left,
							show_text,
							can_edit_text,
							callback,
							NULL,
							initial_value,
							min_value, 
							max_value,
							increment,
							max_sliders,
							allow_overlap,
							draw_track,
							use_triangle);

	slider->setPrecision(precision);

	slider->initFromXML(node, parent);

	slider->updateText();
	
	return slider;
}
开发者ID:AlexRa,项目名称:Kirstens-clone,代码行数:101,代码来源:llmultisliderctrl.cpp


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