22 #ifndef CONSOLE_DIALOG_H 23 #define CONSOLE_DIALOG_H 25 #include "gui/dialog.h" 26 #include "common/str.h" 30 class ScrollBarWidget;
66 typedef bool (*InputCallbackProc)(
ConsoleDialog *console,
const char *input,
void *refCon);
72 kBufferSize = kCharsPerLine * 1024,
80 char _buffer[kBufferSize];
88 int _firstLineInBuffer;
95 uint32 _selectionTime;
103 SlideMode _slideMode;
110 InputCallbackProc _callbackProc;
111 void *_callbackRefCon;
114 CompletionCallbackProc _completionCallbackProc;
115 void *_completionCallbackRefCon;
122 float _widthPercent, _heightPercent;
129 void slideUpAndClose();
138 int _scrollDirection;
144 void open()
override;
145 void close()
override;
146 void drawDialog(DrawLayer layerToDraw)
override;
148 void handleTickle()
override;
149 void reflowLayout()
override;
150 void handleMouseWheel(
int x,
int y,
int direction)
override;
152 void handleCommand(
CommandSender *sender, uint32 cmd, uint32 data)
override;
154 void handleMouseDown(
int x,
int y,
int button,
int clickCount)
override;
155 void handleMouseMoved(
int x,
int y,
int button)
override;
156 void handleMouseUp(
int x,
int y,
int button,
int clickCount)
override;
158 int printFormat(
int dummy, MSVC_PRINTF
const char *format, ...)
GCC_PRINTF(3, 4);
159 int vprintFormat(
int dummy,
const char *format, va_list argptr);
161 void printChar(
int c);
163 void setInputCallback(InputCallbackProc proc,
void *refCon) {
164 _callbackProc = proc;
165 _callbackRefCon = refCon;
167 void setCompletionCallback(CompletionCallbackProc proc,
void *refCon) {
168 _completionCallbackProc = proc;
169 _completionCallbackRefCon = refCon;
172 int getCharsPerLine() {
181 inline char &buffer(
int idx) {
182 return _buffer[idx % kBufferSize];
187 int pos2line(
int pos) {
return (pos - (_scrollLine - _linesPerPage + 1) * kCharsPerLine) / kCharsPerLine; }
189 void drawLine(
int line);
190 void drawCaret(
bool erase);
191 void printCharIntern(
int c);
192 void insertIntoPrompt(
const char *str);
193 void print(
const char *str);
194 void updateScrollBuffer();
195 void scrollToCurrent();
201 void specialKeys(Common::KeyCode keycode);
211 void historyScroll(
int direction);
int FORCEINLINE GCC_PRINTF(2, 0) int vsprintf_s(T(&dst)[N]
Definition: keyboard.h:294
void drawDialog(DrawLayer layerToDraw) override
bool clampSelection(int &sel)