51 setlocale(LC_ALL,
"");
66 mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, NULL);
67 printf(
"\033[?1003h\n");
96 help_panel_ = std::make_shared<HelpPanel>(21, COLS - 8, 2, 4);
134 bool key_used =
false;
135 if (ch == KEY_MOUSE) {
137 if (getmouse(&event) == OK) {
138 if (event.bstate & BUTTON4_PRESSED) {
145 bool pressed =
event.bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED);
147 for (
size_t i = 0; i <
panels_.size(); i++) {
148 size_t idx =
panels_.size() - (i + 1);
150 if (panel->handleMouse(event)) {
157 panel->handleMouse(event);
167 key_used = panel->handleKey(ch);
174 if (!key_used && panel->focus()) {
175 key_used = panel->handleInput(ch);
177 if (!panel->focus()) {
181 if (!panel->visible()) {
190 for (
size_t i = 1; i <=
panels_.size(); i++) {
200 if (ch == KEY_RESIZE)
204 else if (ch ==
ctrl(
'q') || ch ==
ctrl(
'c')) {
207 else if (ch ==
'\t') {
210 else if (ch ==
ctrl(
's')) {
220 else if (ch ==
ctrl(
'x')) {
224 else if (ch == KEY_BACKSPACE) {
232 else if (ch ==
ctrl(
'e')) {
242 else if (ch ==
ctrl(
'f')) {
252 else if (ch ==
ctrl(
'h')) {
255 else if (ch ==
ctrl(
'n')) {
264 else if (ch == KEY_F(1)) {
267 else if (ch == KEY_F(2)) {
270 else if (ch == KEY_F(3)) {
273 else if (ch == KEY_F(4)) {
276 else if (ch == KEY_F(5)) {
279 else if (ch == KEY_F(7)) {
322 for (
size_t i = 0; i <
panels_.size(); i++) {
333 for (
size_t i = 1; i <
panels_.size() + 1; i++) {
334 int next = (idx + i) %
panels_.size();
335 if (
panels_[next]->setFocus(
true)) {
343 if (panel != focused) {
344 panel->setFocus(
false);
351 for (
size_t i = 0; i <
panels_.size(); i++) {
362 for (
size_t i = 1; i <
panels_.size(); i++) {
363 int next = (idx + i) %
panels_.size();
364 if (
panels_[next]->setFocus(
true)) {
std::shared_ptr< PanelInterface > PanelInterfacePtr
void setRosTime(const ros::Time &time)
std::shared_ptr< LogStore > LogStorePtr
LevelPanelPtr level_panel_
std::vector< PanelInterfacePtr > panels_
void unfocusOthers(const PanelInterfacePtr &focused)
ExcludePanelPtr exclude_panel_
LogView(LogStorePtr &logs)
void setConnected(bool connected)
FilterPanelPtr filter_panel_
SearchPanelPtr search_panel_
void setSystemTime(const ros::WallTime &time)
StatusPanelPtr status_panel_
void focusNext(const PanelInterfacePtr &panel)