4#ifndef _Stroika_Frameworks_Led_HandySimple_h_
5#define _Stroika_Frameworks_Led_HandySimple_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
18#include "Stroika/Frameworks/Led/ChunkedArrayTextStore.h"
19#include "Stroika/Frameworks/Led/GDI.h"
20#include "Stroika/Frameworks/Led/WordProcessor.h"
22namespace Stroika::Frameworks::Led {
24 template <
typename WORDWRAPPEDTEXTIMAGER,
typename SIMPLETEXTIMAGER,
typename TEXTSTORE>
25 Led_Size GetTextExtent (Tablet* tablet,
const Led_tString& text,
const Led_Rect& r,
bool wordWrap);
27 template <
typename WORDWRAPPEDTEXTIMAGER,
typename SIMPLETEXTIMAGER,
typename TEXTSTORE>
28 void DrawTextBox (Tablet* tablet,
const Led_tString& text,
const Led_Rect& r,
bool wordWrap);
30 DISABLE_COMPILER_MSC_WARNING_START (4250)
52 template <typename TEXTSTORE = ChunkedArrayTextStore, typename WORDPROCESSOR = WordProcessor>
53 class WaterMarkHelper {
55 WaterMarkHelper (
const Led_tString& watermMarkText);
59 nonvirtual Color GetWatermarkColor ()
const;
60 nonvirtual
void SetWatermarkColor (
const Color& c);
63 Color fWatermarkColor;
66 nonvirtual
void DrawWatermark (Tablet* tablet,
const Led_Rect& intoRect,
const Led_Rect& subsetToDraw);
69 struct MyTrivImager :
public TrivialImager_Interactor<TEXTSTORE, WORDPROCESSOR> {
70 using inherited = TrivialImager_Interactor<TEXTSTORE, WORDPROCESSOR>;
71 MyTrivImager (Tablet* t, Led_Rect bounds,
const Led_tString& initialText)
72 : inherited (t, bounds, initialText)
78 this->SetImageUsingOffscreenBitmaps (
false);
80 virtual void EraseBackground ([[maybe_unused]] Tablet* tablet, [[maybe_unused]]
const Led_Rect& subsetToDraw, [[maybe_unused]]
bool printing)
override
86 virtual void GetLayoutMargins (
typename WORDPROCESSOR::RowReference row, CoordinateType* lhs, CoordinateType* rhs)
const override
92 inherited::GetLayoutMargins (row, &l, &r);
93 r = max (
static_cast<CoordinateType
> (this->GetWindowRect ().GetWidth ()), l + 1);
105 Led_tString fWatermarkText;
106 MyTrivImager* fCachedImager;
107 Led_Rect fCachedIntoRect;
108 Tablet* fCachedIntoTablet;
110 DISABLE_COMPILER_MSC_WARNING_END (4250)
119#include "HandySimple.inl"