public function canDisplay($part, $mask, $type = null)
{
if (!is_object($part) && !($part = $this->getMimePart($part, array('nocontents' => true)))) {
return 0;
}
$viewer = $GLOBALS['injector']->getInstance('IMP_Factory_MimeViewer')->create($part, array('contents' => $this, 'type' => $type));
if ($mask & self::RENDER_INLINE_AUTO) {
$mask |= self::RENDER_INLINE | self::RENDER_INFO;
}
if ($mask & self::RENDER_RAW && $viewer->canRender('raw')) {
return self::RENDER_RAW;
}
if ($mask & self::RENDER_FULL && $viewer->canRender('full')) {
return self::RENDER_FULL;
}
if ($mask & self::RENDER_INLINE) {
if ($viewer->canRender('inline')) {
return self::RENDER_INLINE;
}
} elseif ($mask & self::RENDER_INLINE_DISP_NO && $viewer->canRender('inline')) {
return self::RENDER_INLINE_DISP_NO;
}
if ($mask & self::RENDER_INFO && $viewer->canRender('info')) {
return self::RENDER_INFO;
}
return 0;
}