diff options
Diffstat (limited to 'DisplayOptionsPanel.c')
-rw-r--r-- | DisplayOptionsPanel.c | 83 |
1 files changed, 50 insertions, 33 deletions
diff --git a/DisplayOptionsPanel.c b/DisplayOptionsPanel.c index 23b16bb2..66793e16 100644 --- a/DisplayOptionsPanel.c +++ b/DisplayOptionsPanel.c @@ -1,7 +1,7 @@ /* htop - DisplayOptionsPanel.c (C) 2004-2011 Hisham H. Muhammad -Released under the GNU GPLv2, see the COPYING file +Released under the GNU GPLv2+, see the COPYING file in the source distribution for its full text. */ @@ -11,6 +11,7 @@ in the source distribution for its full text. #include <stdbool.h> #include <stdlib.h> +#include <string.h> #include "CRT.h" #include "FunctionBar.h" @@ -18,6 +19,7 @@ in the source distribution for its full text. #include "Object.h" #include "OptionItem.h" #include "ProvideCurses.h" +#include "ScreensPanel.h" static const char* const DisplayOptionsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL}; @@ -36,46 +38,50 @@ static HandlerResult DisplayOptionsPanel_eventHandler(Panel* super, int ch) { OptionItem* selected = (OptionItem*) Panel_getSelected(super); switch (ch) { - case '\n': - case '\r': - case KEY_ENTER: - case KEY_MOUSE: - case KEY_RECLICK: - case ' ': - switch (OptionItem_kind(selected)) { - case OPTION_ITEM_CHECK: - CheckItem_toggle((CheckItem*)selected); - result = HANDLED; + case '\n': + case '\r': + case KEY_ENTER: + case KEY_MOUSE: + case KEY_RECLICK: + case ' ': + switch (OptionItem_kind(selected)) { + case OPTION_ITEM_TEXT: + break; + case OPTION_ITEM_CHECK: + CheckItem_toggle((CheckItem*)selected); + result = HANDLED; + break; + case OPTION_ITEM_NUMBER: + NumberItem_toggle((NumberItem*)selected); + result = HANDLED; + break; + } break; - case OPTION_ITEM_NUMBER: - NumberItem_toggle((NumberItem*)selected); - result = HANDLED; + case '-': + if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { + NumberItem_decrease((NumberItem*)selected); + result = HANDLED; + } + break; + case '+': + if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { + NumberItem_increase((NumberItem*)selected); + result = HANDLED; + } break; - } - break; - case '-': - if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { - NumberItem_decrease((NumberItem*)selected); - result = HANDLED; - } - break; - case '+': - if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { - NumberItem_increase((NumberItem*)selected); - result = HANDLED; - } - break; } if (result == HANDLED) { this->settings->changed = true; + this->settings->lastUpdate++; Header* header = this->scr->header; Header_calculateHeight(header); Header_reinit(header); Header_updateData(header); Header_draw(header); - ScreenManager_resize(this->scr, this->scr->x1, header->height, this->scr->x2, this->scr->y2); + ScreenManager_resize(this->scr); } + return result; } @@ -97,17 +103,28 @@ DisplayOptionsPanel* DisplayOptionsPanel_new(Settings* settings, ScreenManager* this->scr = scr; Panel_setHeader(super, "Display options"); - Panel_add(super, (Object*) CheckItem_newByRef("Tree view", &(settings->treeView))); - Panel_add(super, (Object*) CheckItem_newByRef("- Tree view is always sorted by PID (htop 2 behavior)", &(settings->treeViewAlwaysByPID))); - Panel_add(super, (Object*) CheckItem_newByRef("- Tree view is collapsed by default", &(settings->allBranchesCollapsed))); + + #define TABMSG "For current screen tab: \0" + char tabheader[sizeof(TABMSG) + SCREEN_NAME_LEN + 1] = TABMSG; + strncat(tabheader, settings->ss->heading, SCREEN_NAME_LEN); + Panel_add(super, (Object*) TextItem_new(tabheader)); + #undef TABMSG + + Panel_add(super, (Object*) CheckItem_newByRef("Tree view", &(settings->ss->treeView))); + Panel_add(super, (Object*) CheckItem_newByRef("- Tree view is always sorted by PID (htop 2 behavior)", &(settings->ss->treeViewAlwaysByPID))); + Panel_add(super, (Object*) CheckItem_newByRef("- Tree view is collapsed by default", &(settings->ss->allBranchesCollapsed))); + Panel_add(super, (Object*) TextItem_new("Global options:")); + Panel_add(super, (Object*) CheckItem_newByRef("Show tabs for screens", &(settings->screenTabs))); Panel_add(super, (Object*) CheckItem_newByRef("Shadow other users' processes", &(settings->shadowOtherUsers))); Panel_add(super, (Object*) CheckItem_newByRef("Hide kernel threads", &(settings->hideKernelThreads))); Panel_add(super, (Object*) CheckItem_newByRef("Hide userland process threads", &(settings->hideUserlandThreads))); + Panel_add(super, (Object*) CheckItem_newByRef("Hide processes running in containers", &(settings->hideRunningInContainer))); Panel_add(super, (Object*) CheckItem_newByRef("Display threads in a different color", &(settings->highlightThreads))); Panel_add(super, (Object*) CheckItem_newByRef("Show custom thread names", &(settings->showThreadNames))); Panel_add(super, (Object*) CheckItem_newByRef("Show program path", &(settings->showProgramPath))); Panel_add(super, (Object*) CheckItem_newByRef("Highlight program \"basename\"", &(settings->highlightBaseName))); - Panel_add(super, (Object*) CheckItem_newByRef("Highlight out-dated/removed programs", &(settings->highlightDeletedExe))); + Panel_add(super, (Object*) CheckItem_newByRef("Highlight out-dated/removed programs (red) / libraries (yellow)", &(settings->highlightDeletedExe))); + Panel_add(super, (Object*) CheckItem_newByRef("Shadow distribution path prefixes", &(settings->shadowDistPathPrefix))); Panel_add(super, (Object*) CheckItem_newByRef("Merge exe, comm and cmdline in Command", &(settings->showMergedCommand))); Panel_add(super, (Object*) CheckItem_newByRef("- Try to find comm in cmdline (when Command is merged)", &(settings->findCommInCmdline))); Panel_add(super, (Object*) CheckItem_newByRef("- Try to strip exe from cmdline (when Command is merged)", &(settings->stripExeFromCmdline))); |