search_panel.cpp
Go to the documentation of this file.
1 
29 
30 namespace log_view {
31 
33  if (show_results_) {
34  wattron(window_, COLOR_PAIR(CP_DEFAULT_GREY));
35  std::string background(width_, ' ');
36  mvwprintw(window_, 0, 0, background.c_str());
37  std::string text = "match: " + filter_.getSearch();
38  mvwprintw(window_, 0, 0, text.c_str());
39 
40  std::string help = " Press Enter/Backspace to move forward/backward through search results";
41  if (help.length() + text.length() <= width_) {
42  mvwprintw(window_, 0, width_ - help.length(), help.c_str());
43  }
44 
45  wattroff(window_, COLOR_PAIR(CP_DEFAULT_GREY));
46  }
47  else {
48  mvwprintw(window_, 0, 0, "search: %s", input_text_.c_str());
49  }
50 }
51 
52 bool SearchPanel::handleInput(int val) {
53  if (!canInput() || !focus_) {
54  return false;
55  }
56 
57  if (val == KEY_ENTER_VAL) {
58  if (input_text_.empty()) {
59  hide(true);
60  setFocus(false);
61  return true;
62  }
63 
65  show_results_ = true;
66  input_text_.clear();
67  input_loc_ = -1;
68  setFocus(false);
69  refresh();
70  return true;
71  }
72 
73  return PanelInterface::handleInput(val);
74 }
75 
77  if (show_results_) {
78  show_results_ = false;
80  input_text_.clear();
81  setFocus(false);
82  hide(true);
83  }
84 }
85 
87  if (!hidden_ && show_results_) {
88  input_text_.clear();
89  input_loc_ = -1;
90  show_results_ = false;
91  setFocus(true);
92  }
93  else if (!hidden_) {
94  hide(true);
95  }
96  else {
97  show_results_ = false;
98  setFocus(true);
99  hide(false);
100  }
101 }
102 
103 } // namespace log_view
virtual bool handleInput(int key)
virtual bool handleInput(int val)
virtual void clearSearch()
void search(const std::string &pattern)
Definition: log_filter.cpp:259
virtual bool canInput() const
Definition: search_panel.h:48
#define KEY_ENTER_VAL
virtual void toggle()
virtual void hide(bool enable)
std::string getSearch() const
Definition: log_filter.h:86
virtual bool setFocus(bool enable)
virtual void refresh()
std::string help()


log_view
Author(s): Marc Alban
autogenerated on Thu Mar 4 2021 03:21:52