36 lines
540 B
C++
36 lines
540 B
C++
#ifndef STATUS_BAR_MANAGER_H_
|
|
#define STATUS_BAR_MANAGER_H_
|
|
|
|
#include <vector>
|
|
|
|
#include "Progress.h"
|
|
|
|
class StatusBarManager
|
|
{
|
|
private:
|
|
bool m_is_started;
|
|
std::vector<Progress*> m_progress_messages;
|
|
|
|
struct TermSize
|
|
{
|
|
int rows;
|
|
int columns;
|
|
};
|
|
|
|
TermSize get_terminal_size();
|
|
|
|
void setup_terminal_scroll_area(int nr_rows);
|
|
|
|
public:
|
|
StatusBarManager();
|
|
~StatusBarManager();
|
|
|
|
bool draw_status_line();
|
|
void start();
|
|
void stop();
|
|
void add_progress_message(Progress* message);
|
|
void clear();
|
|
};
|
|
|
|
#endif // STATUS_BAR_MANAGER_H_
|