27 #ifndef _gconsolewindow_h 28 #define _gconsolewindow_h 37 #include <QReadWriteLock> 41 #include "gtextarea.h" 45 #include "consolestreambuf.h" 61 class GConsoleWindow :
public GWindow {
63 static bool consoleEnabled();
64 static string getDefaultFont();
65 static GConsoleWindow* instance();
66 static bool isInitialized();
67 static void setConsoleEnabled(
bool enabled);
69 virtual void clearConsole();
70 virtual void clipboardCopy();
71 virtual void clipboardCut();
72 virtual void clipboardPaste();
73 void close()
override;
74 virtual void compareOutput(
const string& filename);
75 virtual string getAllOutput()
const;
76 string getBackground()
const override;
77 int getBackgroundInt()
const override;
78 string getColor()
const override;
79 int getColorInt()
const override;
80 virtual string getErrorColor()
const;
81 string getFont()
const override;
82 string getForeground()
const override;
83 int getForegroundInt()
const override;
84 virtual string getOutputColor()
const;
85 virtual string getUserInputColor()
const;
86 virtual bool hasInputScript()
const;
87 virtual bool isClearEnabled()
const;
88 virtual bool isEcho()
const;
89 virtual bool isLocationSaved()
const;
90 virtual bool isLocked()
const;
91 virtual void loadConfiguration();
92 virtual void loadInputScript(
int number);
93 virtual void loadInputScript(
const string& filename);
94 virtual void print(
const string& str,
bool isStdErr =
false);
95 virtual void println(
bool isStdErr =
false);
96 virtual void println(
const string& str,
bool isStdErr =
false);
97 virtual string readLine();
99 virtual void saveAs(
const string& filename =
"");
100 virtual void saveConfiguration(
bool prompt =
true);
101 virtual void selectAll();
102 void setBackground(
int color)
override;
103 void setBackground(
const string& color)
override;
104 virtual void setClearEnabled(
bool clearEnabled);
105 virtual void setConsoleSize(
double width,
double height);
106 void setColor(
int color)
override;
107 void setColor(
const string& color)
override;
108 virtual void setEcho(
bool echo);
109 virtual void setErrorColor(
const string& errorColor);
110 void setFont(
const QFont& font)
override;
111 void setFont(
const string& font)
override;
112 void setForeground(
int color)
override;
113 void setForeground(
const string& color)
override;
114 virtual void setLocationSaved(
bool locationSaved);
115 virtual void setLocked(
bool locked);
116 virtual void setOutputColor(
int rgb);
117 virtual void setOutputColor(
const string& outputColor);
118 void setSize(
double width,
double height)
override;
119 virtual void setUserInputColor(
const string& userInputColor);
120 virtual void showAboutDialog();
121 virtual void showColorDialog(
bool background =
false);
122 virtual void showCompareOutputDialog();
123 virtual void showFontDialog();
124 virtual void showInputScriptDialog();
125 virtual void showPrintDialog();
126 virtual void shutdown(
const string& reason);
129 static const bool ALLOW_RICH_INPUT_EDITING;
130 static const double DEFAULT_WIDTH;
131 static const double DEFAULT_HEIGHT;
132 static const double DEFAULT_X;
133 static const double DEFAULT_Y;
134 static const string CONFIG_FILE_NAME;
135 static const string DEFAULT_FONT_FAMILY;
136 static const string DEFAULT_FONT_WEIGHT;
137 static const int DEFAULT_FONT_SIZE;
138 static const int MIN_FONT_SIZE;
139 static const int MAX_FONT_SIZE;
140 static const string DEFAULT_ERROR_COLOR;
141 static const string DEFAULT_ERROR_COLOR_DARK_MODE;
142 static const string DEFAULT_USER_INPUT_COLOR;
143 static const string DEFAULT_USER_INPUT_COLOR_DARK_MODE;
144 static GConsoleWindow* _instance;
145 static bool _consoleEnabled;
147 Q_DISABLE_COPY(GConsoleWindow)
150 ~GConsoleWindow()
override;
154 QTextFragment getUserInputFragment()
const;
155 int getUserInputStart()
const;
156 int getUserInputEnd()
const;
157 bool isCursorInUserInputArea()
const;
158 bool isSelectionInUserInputArea()
const;
159 void processBackspace(
int key);
160 void processCommandHistory(
int delta);
162 void processKeyPress(GEvent event);
163 void processUserInputEnterKey();
164 void processUserInputKey(
int key);
165 void setUserInput(
const string& userInput);
167 GTextArea* _textArea;
174 int _commandHistoryIndex;
177 string _userInputColor;
179 string _lastSaveFileName;
180 std::queue<string> _inputLines;
181 std::queue<string> _inputScript;
182 std::vector<string> _inputCommandHistory;
183 ConsoleStreambufQt* _cinout_new_buf;
184 ConsoleStreambufQt* _cerr_new_buf;
185 std::streambuf* _cin_old_buf;
186 std::streambuf* _cout_old_buf;
187 std::streambuf* _cerr_old_buf;
188 std::ostringstream _allOutputBuffer;
189 QReadWriteLock _cinMutex;
190 QReadWriteLock _cinQueueMutex;
196 #endif // _gconsolewindow_h
virtual void setSize(const GDimension &size)
Sets the window's width and height in pixels.
Definition: gwindow.cpp:1213