23 #ifndef _SWE_TERMWIN_GUI_ 24 #define _SWE_TERMWIN_GUI_ 26 #ifndef SWE_DISABLE_TERMGUI 30 #include "swe_termwin.h" 33 #pragma clang diagnostic ignored "-Woverloaded-virtual" 48 enum type_t { ColorBackground = 0, ColorBorderLine, ColorHeaderText, ColorBodyText,
49 ColorButtonBackground, ColorButtonBracket, ColorButtonFirstText, ColorButtonBodyText,
50 ColorFocusedButtonBackground, ColorFocusedButtonBracket, ColorFocusedButtonFirstText, ColorFocusedButtonBodyText,
51 ColorInputFieldBackground, ColorFocusedInputFieldBackground, ColorInputFieldText, ColorInputCursor,
52 ColorListSelectedBackground, ColorListSelectedText };
54 #define ColorsCounts (TermGUI::ThemeColors::ColorListSelectedText + 1) 56 static void setColor(
const type_t & type,
const ColorIndex & col);
57 static void setTheme(
const LineType &, std::array<ColorIndex, ColorsCounts>);
58 static void resetTheme(
void);
61 virtual LineType lineType(
void)
const;
62 virtual ColorIndex colorBackground(
void)
const;
76 bool keyPressEvent(
const KeySym &)
override;
77 void mouseFocusEvent(
void)
override;
78 void mouseLeaveEvent(
void)
override;
84 void clickAction(
void);
86 void renderLabel(
void);
88 ColorIndex colorBackground(
void)
const override;
91 FBColors defaultColors(
void)
const override 93 return FBColors(colorText(), colorBackground());
99 virtual ColorIndex colorBackground(
bool focused)
const;
100 virtual ColorIndex colorText(
bool focused)
const;
101 virtual ColorIndex colorHotKey(
bool focused)
const;
112 int action(
void)
const;
113 bool isAction(
int)
const;
116 int hotKey(
void)
const;
117 bool isHotKey(
int)
const;
119 void setHotKeyDisabled(
bool);
120 bool isHotKeyDisabled(
void)
const;
122 void setDisabled(
bool);
123 bool isDisabled(
void)
const;
125 void setSelected(
bool);
126 bool isSelected(
void)
const;
128 void renderWindow(
void)
override;
129 const char*
className(
void)
const override {
return "SWE::TermGUI::LabelAction"; }
133 enum buttons_t { ButtonOk = 1 << 1, ButtonYes = 1 << 2, ButtonNo = 1 << 3, ButtonCancel = 1 << 4 };
141 virtual ColorIndex colorBracket(
bool focused)
const;
153 void renderWindow(
void)
override;
154 const char*
className(
void)
const override {
return "SWE::TermGUI::TextButton"; }
188 void resetSelected(
const LabelAction* exclude =
nullptr);
189 void nextSelected(
void);
190 void prevSelected(
void);
191 void firstSelected(
void);
192 void lastSelected(
void);
193 bool isFirstSelected(
void)
const;
194 bool isLastSelected(
void)
const;
197 size_t count(
void)
const {
return size(); }
198 size_t rows(
void)
const;
199 size_t cols(
void)
const;
218 bool keyPressEvent(
const KeySym &)
override;
219 LineType lineType(
void)
const override;
221 FBColors defaultColors(
void)
const override 223 return FBColors(colorText(), colorBackground());
231 void renderBox(
void);
232 void renderWindow(
void)
override;
233 const char*
className(
void)
const override {
return "SWE::TermGUI::HeaderAreaBox"; }
241 void initAreaBox(
void);
257 bool keyPressEvent(
const KeySym &)
override;
259 void setButtonsPosition(
void);
260 void setHotKeyDisabled(
bool);
261 void setButtonsSubscribe(
int);
273 const char*
className(
void)
const override {
return "SWE::TermGUI::ButtonsAreaBox"; }
275 void renderButtons(
void);
276 void renderWindow(
void)
override;
288 const char*
className(
void)
const override {
return "SWE::TermGUI::MessageBox"; }
289 void renderWindow(
void)
override;
298 bool keyPressEvent(
const KeySym &)
override;
300 void setInputFocused(
bool);
301 bool checkInputFocused(
void)
const;
303 virtual ColorIndex colorFieldText(
void)
const;
304 virtual ColorIndex colorFieldCursor(
void)
const;
305 virtual ColorIndex colorFieldBackground(
bool focused)
const;
311 const std::string & result(
void)
const 316 const char*
className(
void)
const override {
return "SWE::TermGUI::InputBox"; }
317 void renderWindow(
void)
override;
328 virtual ColorIndex colorBackground(
bool selected)
const;
329 virtual ColorIndex colorText(
bool selected)
const;
332 bool keyPressEvent(
const KeySym &)
override;
334 bool scrollUpEvent(
void)
override;
335 bool scrollDownEvent(
void)
override;
336 void windowVisibleEvent(
bool)
override;
338 bool scrollUpContent(
void);
339 bool scrollDownContent(
void);
345 const std::string & result(
void)
const 350 const char*
className(
void)
const override {
return "SWE::TermGUI::ListBox"; }
351 void renderWindow(
void)
override;
362 FBColors defaultColors(
void)
const override;
363 bool keyPressEvent(
const KeySym &)
override;
364 bool textInputEvent(
const std::string &)
override;
366 virtual bool actionCommand(
const std::string &);
372 void renderWindow(
void)
override;
374 const std::string & commandLine(
void)
const {
return command; }
375 const UnicodeList & contentLines(
void)
const {
return content; }
377 void commandLineClear(
void);
378 void contentLinesClear(
void);
380 void contentLinesAppend(
const std::string &);
385 #endif // SWE_DISABLE_TERMGUI класс объектов сцены DisplayScene, с возможностью отправки/получения сигналов
Definition: swe_events.h:56
класс двухмерной размерности в терминале
Definition: swe_termwin.h:72
const FontRender * frs(void) const override
Definition: swe_termwin.cpp:1053
класс двухмерной позиции в терминале
Definition: swe_termwin.h:93
класс пары двух цветов (foreground, background)
Definition: swe_colors.h:136
buttons_t
набор системных меток для TextButton.
Definition: swe_termgui.h:133
пространство SWE.
Definition: swe_binarybuf.cpp:30
Definition: swe_termgui.h:158
Definition: swe_inputs_keys.h:245
const char * className(void) const override
идентификацинная метка класса
Definition: swe_termgui.h:154
Definition: swe_termgui.h:136
const char * className(void) const override
идентификацинная метка класса
Definition: swe_termgui.h:350
Definition: swe_termgui.h:356
класс списка unicode строк
Definition: swe_cunicode.h:109
класс текстовой метки
Definition: swe_termgui.h:68
size_t cols(void) const
Definition: swe_termwin.cpp:360
базовый класс шрифта
Definition: swe_fontset.h:151
Theme colors base class.
Definition: swe_termgui.h:43
LineType
перечисление типа символьных линий
Definition: swe_termwin.h:33
класс индекса цвета
Definition: swe_colors.h:113
класс диалога информационного сообщения, с заголовком и группой кнопок
Definition: swe_termgui.h:280
const char * className(void) const override
идентификацинная метка класса
Definition: swe_termgui.h:288
класс списка строк
Definition: swe_cstring.h:36
класс диалога выбора из списка значений, с заголовком и группой кнопок
Definition: swe_termgui.h:321
size_t rows(void) const
Definition: swe_termwin.cpp:365
класс двухмерной размерности
Definition: swe_rect.h:36
основной класс терминального окна
Definition: swe_termwin.h:757
const char * className(void) const override
идентификацинная метка класса
Definition: swe_termgui.h:129
базовый класс графических объектов сцены DisplayScene.
Definition: swe_window.h:57
класс группы для LabelAction.
Definition: swe_termgui.h:172
класс unicode строки
Definition: swe_cunicode.h:41