summaryrefslogtreecommitdiffstats
path: root/MainPanel.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2015-03-23 17:04:53 -0300
committerHisham Muhammad <hisham@gobolinux.org>2015-03-23 17:04:53 -0300
commitade7993fcb468433d28e569e16e90de4251114ab (patch)
treed9ff4a02e55373346b87acd174863639e20917fa /MainPanel.c
parentd0c72c3fb29d535f5bb12b651e3bcaa516650199 (diff)
incremental search and filter reintegrated!
Diffstat (limited to 'MainPanel.c')
-rw-r--r--MainPanel.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/MainPanel.c b/MainPanel.c
index 7d7e72db..9927dee3 100644
--- a/MainPanel.c
+++ b/MainPanel.c
@@ -21,24 +21,26 @@ typedef struct MainPanel_ {
Panel super;
State* state;
IncSet* inc;
- FunctionBar* fuBar;
Htop_Action *keys;
pid_t pidSearch;
} MainPanel;
typedef bool(*MainPanel_ForeachProcessFn)(Process*, size_t);
+#define MainPanel_getFunctionBar(this_) (((Panel*)(this_))->defaultBar)
+
}*/
static const char* MainFunctions[] = {"Help ", "Setup ", "Search", "Filter", "Tree ", "SortBy", "Nice -", "Nice +", "Kill ", "Quit ", NULL};
void MainPanel_updateTreeFunctions(MainPanel* this, bool mode) {
+ FunctionBar* bar = MainPanel_getFunctionBar(this);
if (mode) {
- FunctionBar_setLabel(this->fuBar, KEY_F(5), "Sorted");
- FunctionBar_setLabel(this->fuBar, KEY_F(6), "Collap");
+ FunctionBar_setLabel(bar, KEY_F(5), "Sorted");
+ FunctionBar_setLabel(bar, KEY_F(6), "Collap");
} else {
- FunctionBar_setLabel(this->fuBar, KEY_F(5), "Tree ");
- FunctionBar_setLabel(this->fuBar, KEY_F(6), "SortBy");
+ FunctionBar_setLabel(bar, KEY_F(5), "Tree ");
+ FunctionBar_setLabel(bar, KEY_F(6), "SortBy");
}
}
@@ -65,15 +67,16 @@ static HandlerResult MainPanel_eventHandler(Panel* super, int ch) {
Htop_Reaction reaction = HTOP_OK;
- if (ch == 27) {
- return HANDLED;
- }
if (ch != ERR && this->inc->active) {
- bool redraw = IncSet_handleKey(this->inc, ch, super, (IncMode_GetPanelValue) MainPanel_getValue, NULL);
- if (redraw) {
+ bool filterChanged = IncSet_handleKey(this->inc, ch, super, (IncMode_GetPanelValue) MainPanel_getValue, NULL);
+ if (filterChanged) {
+ this->state->pl->incFilter = IncSet_filter(this->inc);
reaction = HTOP_REFRESH | HTOP_REDRAW_BAR;
}
reaction |= HTOP_KEEP_FOLLOWING;
+ result = HANDLED;
+ } else if (ch == 27) {
+ return HANDLED;
} else if (ch != ERR && this->keys[ch]) {
reaction |= (this->keys[ch])(this->state);
result = HANDLED;
@@ -169,10 +172,9 @@ PanelClass MainPanel_class = {
MainPanel* MainPanel_new() {
MainPanel* this = AllocThis(MainPanel);
- this->fuBar = FunctionBar_new(MainFunctions, NULL, NULL);
- Panel_init((Panel*) this, 1, 1, 1, 1, Class(Process), false, this->fuBar);
+ Panel_init((Panel*) this, 1, 1, 1, 1, Class(Process), false, FunctionBar_new(MainFunctions, NULL, NULL));
this->keys = calloc(KEY_MAX, sizeof(Htop_Action));
- this->inc = IncSet_new(this->fuBar);
+ this->inc = IncSet_new(MainPanel_getFunctionBar(this));
Action_setBindings(this->keys);
Platform_setBindings(this->keys);

© 2014-2024 Faster IT GmbH | imprint | privacy policy