4#ifndef _Stroika_Frameworks_Led_TextInteractorMixins_h_
5#define _Stroika_Frameworks_Led_TextInteractorMixins_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
16#include "Stroika/Frameworks/Led/TextInteractor.h"
18namespace Stroika::Frameworks::Led {
20#if qStroika_Frameworks_Led_SupportGDI
21 DISABLE_COMPILER_MSC_WARNING_START (4250)
32 template <typename IMAGER>
33 class InteractorImagerMixinHelper : public virtual TextInteractor, public IMAGER {
35 using inherited =
void*;
38 InteractorImagerMixinHelper () =
default;
44 virtual void Draw (
const Led_Rect& subsetToDraw,
bool printing)
override;
45 virtual void AboutToUpdateText (
const MarkerOwner::UpdateInfo& updateInfo)
override;
46 virtual void DidUpdateText (
const UpdateInfo& updateInfo)
noexcept override;
49 virtual void HookLosingTextStore ()
override;
50 virtual void HookGainedNewTextStore ()
override;
56#if qUsingDirectiveSometimesCausesInternalCompilerErrorBug
57 nonvirtual
void SetWindowRect (
const Led_Rect& windowRect, TextInteractor::UpdateMode updateMode = TextInteractor::eDefaultUpdate)
59 TextInteractor::SetWindowRect (windowRect, updateMode);
61 nonvirtual
void ScrollByIfRoom (ptrdiff_t downByRows, UpdateMode updateMode = eDefaultUpdate)
63 TextInteractor::ScrollByIfRoom (downByRows, updateMode);
65 nonvirtual
void ScrollSoShowing (
size_t markerPos,
size_t andTryToShowMarkerPos = 0, UpdateMode updateMode = eDefaultUpdate)
67 TextInteractor::ScrollSoShowing (markerPos, andTryToShowMarkerPos, updateMode);
70 using TextInteractor::ScrollByIfRoom;
71 using TextInteractor::ScrollSoShowing;
72 using TextInteractor::SetWindowRect;
83 template <
typename INTERACTOR1,
typename INTERACTOR2>
84 class InteractorInteractorMixinHelper :
public INTERACTOR1,
public INTERACTOR2 {
86 using inherited =
void*;
89 InteractorInteractorMixinHelper ();
92 virtual void HookLosingTextStore ()
override;
93 virtual void HookGainedNewTextStore ()
override;
96#if qUsingDirectiveSometimesCausesInternalCompilerErrorBug
97 nonvirtual
void SetWindowRect (
const Led_Rect& windowRect, TextInteractor::UpdateMode updateMode = TextInteractor::eDefaultUpdate)
99 TextInteractor::SetWindowRect (windowRect, updateMode);
102 using INTERACTOR1::SetWindowRect;
105 nonvirtual
void Invariant ()
107 INTERACTOR1::Invariant ();
108 INTERACTOR2::Invariant ();
112 virtual void DidUpdateText (
const MarkerOwner::UpdateInfo& updateInfo)
noexcept override;
114 DISABLE_COMPILER_MSC_WARNING_END (4250)
124#include "TextInteractorMixIns.inl"