| 1990 | } |
| 1991 | |
| 1992 | int MessageList::DrawMessageReply(HDC hdc, MessageItem& item, RECT& rc) |
| 1993 | { |
| 1994 | const int pfpOffset = ScaleByDPI(PROFILE_PICTURE_SIZE_DEF + 12); |
| 1995 | const int replyOffset = item.m_replyHeight + ScaleByDPI(5); |
| 1996 | RECT rcReply = rc; |
| 1997 | rcReply.bottom = rcReply.top + item.m_replyHeight; |
| 1998 | |
| 1999 | item.m_refMsgRect = rcReply; |
| 2000 | |
| 2001 | auto& refMsg = *item.m_msg->m_pReferencedMessage; |
| 2002 | const bool isActionMessage = IsActionMessage(refMsg.m_type); |
| 2003 | const bool isCompact = IsCompact(); |
| 2004 | |
| 2005 | Snowflake authorID = refMsg.m_author_snowflake; |
| 2006 | |
| 2007 | // Draw the corner piece |
| 2008 | const int offset2 = isCompact ? 0 : pfpOffset; |
| 2009 | rcReply.left -= offset2; |
| 2010 | |
| 2011 | const int iconSize = ScaleByDPI(32); |
| 2012 | const int iconOffset = (GetProfilePictureSize() - ScaleByDPI(2)) / 2; |
| 2013 | const int offset3 = isCompact ? iconSize : 0; |
| 2014 | |
| 2015 | if (isCompact) { |
| 2016 | HRGN rgn = CreateRectRgn( |
| 2017 | rcReply.left + iconOffset, |
| 2018 | rcReply.bottom + ScaleByDPI(5) - iconSize, |
| 2019 | rcReply.left + iconOffset + offset2 + offset3 - ScaleByDPI(20), |
| 2020 | rcReply.bottom + ScaleByDPI(5) |
| 2021 | ); |
| 2022 | SelectClipRgn(hdc, rgn); |
| 2023 | |
| 2024 | DrawReplyPieceIcon(hdc, rcReply.left + iconOffset, rcReply.bottom + ScaleByDPI(5) - iconSize); |
| 2025 | if (g_ReplyPieceIcon) |
| 2026 | ri::DrawIconEx(hdc, rcReply.left + iconOffset, rcReply.bottom + ScaleByDPI(5) - iconSize, g_ReplyPieceIcon, iconSize, iconSize, 0, NULL, DI_COMPAT | DI_NORMAL); |
| 2027 | |
| 2028 | SelectClipRgn(hdc, NULL); |
| 2029 | DeleteRgn(rgn); |
| 2030 | } |
| 2031 | else { |
| 2032 | DrawReplyPieceIcon(hdc, rcReply.left + iconOffset, rcReply.bottom + ScaleByDPI(5) - iconSize); |
| 2033 | if (g_ReplyPieceIcon) |
| 2034 | ri::DrawIconEx(hdc, rcReply.left + iconOffset, rcReply.bottom + ScaleByDPI(5) - iconSize, g_ReplyPieceIcon, iconSize, iconSize, 0, NULL, DI_COMPAT | DI_NORMAL); |
| 2035 | } |
| 2036 | |
| 2037 | rcReply.left += offset2 + offset3; |
| 2038 | |
| 2039 | COLORREF nameClr = CLR_NONE; |
| 2040 | if (authorID) |
| 2041 | { |
| 2042 | if (!isCompact && !isActionMessage) |
| 2043 | { |
| 2044 | int pfpSize = ScaleByDPI(16); |
| 2045 | int pfpBordSize = MulDiv(GetProfileBorderRenderSize(), ScaleByDPI(16), GetProfilePictureSize()); |
| 2046 | int pfpBordOffX = MulDiv(ScaleByDPI(6), ScaleByDPI(16), GetProfilePictureSize()); |
| 2047 | int pfpBordOffY = MulDiv(ScaleByDPI(4), ScaleByDPI(16), GetProfilePictureSize()); |
| 2048 | int pfpX = rcReply.left; |
| 2049 | int pfpY = rcReply.top + (rcReply.bottom - rcReply.top - pfpSize) / 2; |
nothing calls this directly
no test coverage detected