Mercurial > foo_out_sdl
diff foosdk/sdk/libPPUI/CListControlTruncationTooltipImpl.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foosdk/sdk/libPPUI/CListControlTruncationTooltipImpl.h Mon Jan 05 02:15:46 2026 -0500 @@ -0,0 +1,52 @@ +#pragma once + +class CListControlTruncationTooltipImpl : public CListControlHeaderImpl { +private: + typedef CListControlHeaderImpl TParent; +public: + CListControlTruncationTooltipImpl(); + + BEGIN_MSG_MAP_EX(CListControlTruncationTooltipImpl) + MESSAGE_HANDLER(WM_MOUSEHOVER,OnHover); + MESSAGE_HANDLER(WM_MOUSEMOVE,OnMouseMovePassThru); + MESSAGE_HANDLER(WM_TIMER,OnTimer); + MESSAGE_HANDLER(WM_DESTROY,OnDestroyPassThru); + CHAIN_MSG_MAP(TParent) + NOTIFY_CODE_HANDLER(TTN_GETDISPINFO,OnTTGetDispInfo); + NOTIFY_CODE_HANDLER(TTN_POP,OnTTPop); + NOTIFY_CODE_HANDLER(TTN_SHOW,OnTTShow); + END_MSG_MAP() + + void OnViewOriginChange(CPoint p_delta) override {TParent::OnViewOriginChange(p_delta);TooltipRemove();} + void TooltipRemove(); + virtual void RefreshDarkMode(); +protected: + virtual bool GetTooltipData( CPoint ptAbs, pfc::string_base & text, CRect & rc, CFontHandle & font) const; +private: + enum { + KTooltipTimer = 0x51dbee9e, + KTooltipTimerDelay = 50, + }; + LRESULT OnHover(UINT,WPARAM,LPARAM,BOOL&); + LRESULT OnMouseMovePassThru(UINT,WPARAM,LPARAM,BOOL&); + LRESULT OnTimer(UINT,WPARAM,LPARAM,BOOL&); + LRESULT OnTTGetDispInfo(int,LPNMHDR,BOOL&); + LRESULT OnTTShow(int,LPNMHDR,BOOL&); + LRESULT OnTTPop(int,LPNMHDR,BOOL&); + LRESULT OnDestroyPassThru(UINT,WPARAM,LPARAM,BOOL&); + + void InitTooltip(); + void TooltipActivateAbs(const char * label, const CRect & rect); + void TooltipActivate(const char * label, const CRect & rect); + void TooltipRemoveCheck(LPARAM pos); + void TooltipRemoveCheck(); + void TooltipUpdateFont(); + void OnSetFont(bool) override {TooltipUpdateFont();} + bool IsRectFullyVisibleAbs(CRect const & r); + bool IsRectPartiallyObscuredAbs(CRect const & r) const; + CRect m_tooltipRect; + CToolTipCtrl m_tooltip; + TOOLINFO m_toolinfo; + pfc::stringcvt::string_os_from_utf8 m_tooltipText; + CFontHandle m_tooltipFont; +};
