Mercurial > foo_out_sdl
diff foosdk/sdk/libPPUI/CListControl-Cell.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/CListControl-Cell.h Mon Jan 05 02:15:46 2026 -0500 @@ -0,0 +1,45 @@ +#pragma once +#include <uxtheme.h> // HTHEME +#include <functional> + +class CListCell { +public: + typedef uint32_t cellState_t; + enum { + cellState_none = 0, + cellState_hot = 1 << 0, + cellState_pressed = 1 << 1, + cellState_disabled = 1 << 2, + }; + + struct DrawContentArg_t { + DWORD hdrFormat = 0; + cellState_t cellState = 0; + CRect subItemRect; + CDCHandle dc; + const wchar_t * text = nullptr; + bool allowColors = true; + CRect rcHot; + CRect rcText; + HTHEME theme = NULL; + uint32_t colorHighlight = 0; + CWindow thisWnd; + std::function<void(CDCHandle, const CRect&) > imageRenderer; + bool darkMode = false; + }; + virtual void DrawContent( DrawContentArg_t const & arg ) = 0; + virtual const char * Theme() { return nullptr; } + virtual bool ApplyTextStyle( LOGFONT & font, double scale, uint32_t state ); + virtual bool IsInteractive() { return false; } + virtual bool TracksMouseMove() { return false; } + virtual bool SuppressRowSelect() { return false; } + virtual bool IsToggle() { return false; } + virtual bool IsRadioToggle() { return false; } + virtual bool AllowTypeFind() { return true; } + virtual CRect HotRect( CRect rc ) { return rc; } + virtual HCURSOR HotCursor() { return NULL; } + virtual bool AllowDrawThemeText() { return false; } + virtual LONG AccRole(); + virtual uint32_t EditFlags() { return 0; } + virtual bool ClickToEdit() { return false; } +};
