34 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT)    35   #error "Only <final/final.h> can be included directly."    41 #include "final/ftypes.h"    42 #include "final/output/fcolorpalette.h"    43 #include "final/vterm/fvterm.h"    47 #pragma GCC diagnostic ignored "-Wnon-virtual-dtor"    56 class FOutput : 
public std::enable_shared_from_this<FOutput>
    60     using FSetPalette = FColorPalette::FSetPalette;
    73     virtual auto getClassName() 
const -> 
FString;
    74     auto         getInstance() -> std::shared_ptr<FOutput>;
    75     auto         getFVTerm() 
const & -> 
const FVTerm&;
    76     virtual auto getColumnNumber() 
const -> std::size_t = 0;
    77     virtual auto getLineNumber() 
const -> std::size_t = 0;
    78     virtual auto getTabstop() 
const -> 
int = 0;
    79     virtual auto getMaxColor() 
const -> 
int = 0;
    80     virtual auto getEncoding() 
const -> Encoding = 0;
    81     virtual auto getKeyName (FKey) 
const -> 
FString = 0;
    84     virtual void setCursor (
FPoint) = 0;
    85     virtual void setCursor (CursorMode) = 0;
    86     virtual void hideCursor (
bool = 
true) = 0;
    87     virtual void showCursor() = 0;
    88     virtual void setTerminalSize (
FSize) = 0;
    89     virtual auto setVGAFont() -> 
bool = 0;
    90     virtual auto setNewFont() -> 
bool = 0;
    91     virtual void setNonBlockingRead (
bool = 
true) = 0;
    92     template <
typename ClassT>
    93     void         setColorPaletteTheme() 
const;
    94     template <
typename ClassT>
    95     void         setColorPaletteTheme (
const FSetPalette&) 
const;
    98     virtual auto isCursorHideable() 
const -> 
bool = 0;
    99     virtual auto isMonochron() 
const -> 
bool = 0;
   100     virtual auto isNewFont() 
const -> 
bool = 0;
   101     virtual auto isEncodable (
const wchar_t&) 
const -> 
bool = 0;
   102     virtual auto isFlushTimeout() 
const -> 
bool = 0;
   103     virtual auto hasTerminalResized() 
const -> 
bool = 0;
   104     virtual auto allowsTerminalSizeManipulation() 
const -> 
bool = 0;
   105     virtual auto canChangeColorPalette() 
const -> 
bool = 0;
   106     virtual auto hasHalfBlockCharacter() 
const -> 
bool = 0;
   107     virtual auto hasShadowCharacter() 
const -> 
bool = 0;
   108     virtual auto areMetaAndArrowKeysSupported() 
const -> 
bool = 0;
   112     virtual void finishTerminal() = 0;
   113     virtual auto updateTerminal() -> 
bool = 0;
   114     virtual void detectTerminalSize() = 0;
   115     virtual void commitTerminalResize() = 0;
   116     virtual void initScreenSettings() = 0;
   117     virtual auto scrollTerminalForward() -> 
bool = 0;
   118     virtual auto scrollTerminalReverse() -> 
bool = 0;
   119     virtual void clearTerminalAttributes() = 0;
   120     virtual void clearTerminalState() = 0;
   121     virtual auto clearTerminal (
wchar_t = L
' ') -> 
bool = 0;
   122     virtual void flush() = 0;
   123     virtual void beep() 
const = 0;
   127     virtual auto getFSetPaletteRef() 
const & -> 
const FSetPalette& = 0;
   130     virtual auto isDefaultPaletteTheme() 
const -> 
bool = 0;
   131     virtual void redefineColorPalette() = 0;
   132     virtual void restoreColorPalette() = 0;
   140 inline auto FOutput::getClassName() 
const -> 
FString   141 { 
return "FOutput"; }
   144 inline auto FOutput::getFVTerm() 
const & -> 
const FVTerm&
   148 template <
typename ClassT>
   149 inline void FOutput::setColorPaletteTheme()
 const   151   const auto& set_Palette = getFSetPaletteRef();
   152   setColorPaletteTheme<ClassT>(set_Palette);
   156 template <
typename ClassT>
   157 inline void FOutput::setColorPaletteTheme (
const FSetPalette& f)
 const   160   FColorPalette::getInstance() = std::make_shared<ClassT>(f);
   162   FColorPalette::getInstance()->setColorPalette();
 
Definition: class_template.cpp:25