acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
console.h
1// 2026.3 API Created by camilo on 2026-03-25 18:27 <3ThomasBorregaardSørensen!!
2#pragma once
3
4
5#include "acme/operating_system/_const_console.h"
6#include "acme/filesystem/file/string_buffer.h"
7
8
9void RedirectIOToConsole();
10
11
12class CLASS_DECL_ACME std_out_buffer:
13 virtual public ::string_buffer_base
14{
15public:
16
17
18 std_out_buffer();
19 ~std_out_buffer() override;
20
21
22 void write(const void * pdata,memsize nCount) override;
23
24
25
26};
27
28//class console_ostream:
29// virtual public ::text_stream
30//{
31//public:
32//
33// console_ostream(): ::text_stream(::as(___new std_out_buffer())){}
34// virtual ~console_ostream(){}
35//
36//};
37
38
39namespace console
40{
41
42 enum enum_response
43 {
44
45 e_response_no = -1,
46 e_response_cancel = 0,
47 e_response_yes = 1,
48
49 };
50
51 class CLASS_DECL_ACME console:
52 virtual public ::particle
53 {
54 public:
55
56
57
59 ::i32 m_iTextColor;
60
61
62 console(const ::pointer < ::string_buffer_base > & pstringbuffer = nullptr);
63 ~console() override;
64
65
66 // 2025 API
67 inline ::write_text_stream & cout() { return m_cout; }
68 virtual void redirect_io();
69 virtual void SetWindowSize(::i32 iHeight,::i32 iWidth);
70 virtual void SetCursorVisibility(bool show);
71 virtual void SetCursorPosition(::i32 y,::i32 x);
72 virtual void SetTextColor(::i32 color);
73 inline ::i32 GetTextColor() { return m_iTextColor; }
74 virtual void SetScreenColor(::enum_dos_color color,::i32 iLineStart = 0,::i32 iLineCount = -1);
75 virtual void write(const ::scoped_string & scopedstr);
76 virtual ::i32_rectangle get_position_rectangle(::i32 y, ::i32 x);
77
78
79
80 // 2026.3 API
81 virtual void defer_non_root();
82 virtual void start_input();
83 virtual ::i32 getch(void);
84 virtual ::i32 get_thoughtful_character();
85 virtual enum_response yes_no(const_char_pointer pszPrompt);
86 virtual enum_response yes_no_default_yes(const_char_pointer pszPrompt);
87 virtual ::string prompt_line(const_char_pointer pszPrompt);
88
89
90 };
91
92
93} // namespace console
94
95
96CLASS_DECL_ACME ::i32 current_getch();
97CLASS_DECL_ACME ::i32 current_getch_utf8(::string &strChar);
98
99
100
Definition write_text_stream.h:43