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


C++ Style::Color方法代码示例

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


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

示例1: if

// _WriteStyles
status_t
FlatIconExporter::_WriteStyles(LittleEndianBuffer& buffer,
							   StyleContainer* styles)
{
	uint8 styleCount = min_c(255, styles->CountStyles());
	if (!buffer.Write(styleCount))
		return B_NO_MEMORY;

	for (int32 i = 0; i < styleCount; i++) {
		Style* style = styles->StyleAtFast(i);

		// style type
		uint8 styleType;

		const Gradient* gradient = style->Gradient();
		if (gradient) {
			styleType = STYLE_TYPE_GRADIENT;
		} else {
			rgb_color color = style->Color();
			if (color.red == color.green && color.red == color.blue) {
				// gray
				if (style->Color().alpha == 255)
					styleType = STYLE_TYPE_SOLID_GRAY_NO_ALPHA;
				else
					styleType = STYLE_TYPE_SOLID_GRAY;
			} else {
				// color
				if (style->Color().alpha == 255)
					styleType = STYLE_TYPE_SOLID_COLOR_NO_ALPHA;
				else
					styleType = STYLE_TYPE_SOLID_COLOR;
			}
		}

		if (!buffer.Write(styleType))
			return B_NO_MEMORY;

		if (styleType == STYLE_TYPE_SOLID_COLOR) {
			// solid color
			rgb_color color = style->Color();
			if (!buffer.Write(*(uint32*)&color))
				return B_NO_MEMORY;
		} else if (styleType == STYLE_TYPE_SOLID_COLOR_NO_ALPHA) {
			// solid color without alpha
			rgb_color color = style->Color();
			if (!buffer.Write(color.red)
				|| !buffer.Write(color.green)
				|| !buffer.Write(color.blue))
				return B_NO_MEMORY;
		} else if (styleType == STYLE_TYPE_SOLID_GRAY) {
			// solid gray
			rgb_color color = style->Color();
			if (!buffer.Write(color.red)
				|| !buffer.Write(color.alpha))
				return B_NO_MEMORY;
		} else if (styleType == STYLE_TYPE_SOLID_GRAY_NO_ALPHA) {
			// solid gray without alpha
			if (!buffer.Write(style->Color().red))
				return B_NO_MEMORY;
		} else if (styleType == STYLE_TYPE_GRADIENT) {
			// gradient
			if (!_WriteGradient(buffer, gradient))
				return B_NO_MEMORY;
		}
	}

	return B_OK;
}
开发者ID:mariuz,项目名称:haiku,代码行数:69,代码来源:FlatIconExporter.cpp


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