Last change
on this file since 20115 was 16869, checked in by tbretz, 12 years ago |
When we output something ourselves before the event hook is called in readline, we have to signal readline that we have started a new row, so that readline can properly update the prompt. I hope this finally solves the flickering issue on my laptop and/or the problematic display in the fadctrl.
|
File size:
1.2 KB
|
Line | |
---|
1 | #ifndef FACT_ReadlineWindow
|
---|
2 | #define FACT_ReadlineWindow
|
---|
3 |
|
---|
4 | #include "Readline.h"
|
---|
5 |
|
---|
6 | typedef struct _win_st WINDOW;
|
---|
7 |
|
---|
8 | class ReadlineWindow : public Readline
|
---|
9 | {
|
---|
10 | WINDOW *fWindow; /// Pointer to the panel for the input stream
|
---|
11 |
|
---|
12 | int fPromptX; /// When the readline call is issued the x position at which the output will start is stored here
|
---|
13 | int fPromptY; /// When the readline call is issued the y position at which the output will start is stored here
|
---|
14 |
|
---|
15 | int fColor; /// Color index in which the prompt should be displayed
|
---|
16 |
|
---|
17 | protected:
|
---|
18 | // The implementations of the callback funtions
|
---|
19 | //int Getc(FILE *);
|
---|
20 | void Startup();
|
---|
21 | void Redisplay();
|
---|
22 | void EventHook(bool = false);
|
---|
23 | void CompletionDisplay(char **matches, int num, int max);
|
---|
24 |
|
---|
25 | // Refresh the display before setting the cursor position
|
---|
26 | virtual void Refresh() { }
|
---|
27 |
|
---|
28 | // Callback after readline has returned
|
---|
29 | void Shutdown(const char *buf);
|
---|
30 |
|
---|
31 | public:
|
---|
32 | ReadlineWindow(const char *prgname);
|
---|
33 |
|
---|
34 | // Initialization
|
---|
35 | void SetWindow(WINDOW *w);
|
---|
36 | void SetColorPrompt(int col) { fColor = col; }
|
---|
37 |
|
---|
38 | // Move cursor to start of last prompt
|
---|
39 | void RewindCursor() const;
|
---|
40 | };
|
---|
41 |
|
---|
42 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.