You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.2 KiB

#ifndef GRAPH_BROWSER_HPP
#define GRAPH_BROWSER_HPP
#include <curses.h>
#include <menu.h>
#include <deque>
#include <graph/graph.hpp>
class GraphBrowser {
8 years ago
static constexpr int KEY_ESC = 27;
static constexpr int KEY_LOWER_CASE_D = 100;
static constexpr int KEY_LOWER_CASE_I = 105;
static constexpr int KEY_UPPER_CASE_D = 68;
static constexpr int KEY_UPPER_CASE_I = 73;
8 years ago
size_t term_max_x_ = 80;
size_t term_max_y_ = 24;
size_t window_height = term_max_y_-2;
size_t current_window_width = term_max_x_/4;
size_t n_window_width = term_max_x_/4;
public:
void static init();
void static destroy();
8 years ago
GraphBrowser(Graph<std::string>& g);
~GraphBrowser();
void mainLoop();
void setStartVertex(const std::string& s);
void terminalResizedEvent(int);
private:
void initLayout();
void updateCurrent(const std::string& s);
void updateNeighbours();
void addItems(const std::vector<std::string>& stringVector);
void deleteElement(bool delete_node);
void updateDimensions();
MENU *menu_;
WINDOW *current_win_, *n_win, * n_of_n_win_;
// ITEM **items_;
8 years ago
Graph<std::string>& graph_;
std::deque<std::string> history_;
};
#endif // GRAPH_BROWSER_HPP