本文整理汇总了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;
}