Which ifdef:ing is the most desirable in this case? (OT's coding guidelines don't mention defines.) This: if (fDeviceIcon) { if (IsEnabled()) { #ifdef __HAIKU__ Menu()->SetDrawingMode(B_OP_ALPHA); #else Menu()->SetDrawingMode(B_OP_OVER); #endif } else { #ifdef __HAIKU__ Menu()->SetDrawingMode(B_OP_ALPHA); Menu()->SetDrawingMode(B_OP_ALPHA); Menu()->SetHighColor(0, 0, 0, 64); Menu()->SetBlendingMode(B_CONSTANT_ALPHA, B_ALPHA_OVERLAY); #else Menu()->SetDrawingMode(B_OP_BLEND); #endif } Menu()->DrawBitmapAsync(fDeviceIcon, where); } Or this: #ifdef __HAIKU__ if (fDeviceIcon) { if (IsEnabled()) { Menu()->SetDrawingMode(B_OP_ALPHA); } else { Menu()->SetDrawingMode(B_OP_ALPHA); Menu()->SetDrawingMode(B_OP_ALPHA); Menu()->SetHighColor(0, 0, 0, 64); Menu()->SetBlendingMode(B_CONSTANT_ALPHA, B_ALPHA_OVERLAY); } Menu()->DrawBitmapAsync(fDeviceIcon, where); } #else if (fDeviceIcon) { if (IsEnabled()) Menu()->SetDrawingMode(B_OP_OVER); else Menu()->SetDrawingMode(B_OP_BLEND); Menu()->DrawBitmapAsync(fDeviceIcon, where); } #endif I think the latter is a lot easier to read, but leaves up to the reader to understand what the diff is between the two cases, (the actual drawing mode setting), which of course in this case' is very easy to see. Is this okay? Also, is it really necessary to #endif // __HAIKU__ or is that only used for multipage #ifdefs, such as header guards ? TIA, Jonas Sundström.