diff options
45 files changed, 685 insertions, 715 deletions
diff --git a/AffinityPanel.c b/AffinityPanel.c index 1214a84f..f4009080 100644 --- a/AffinityPanel.c +++ b/AffinityPanel.c @@ -202,57 +202,57 @@ static HandlerResult AffinityPanel_eventHandler(Panel* super, int ch) { bool keepSelected = true; switch (ch) { - case KEY_MOUSE: - case KEY_RECLICK: - case ' ': - #ifdef HAVE_LIBHWLOC - if (selected->value == 2) { - /* Item was selected, so remove this mask from the top cpuset. */ - hwloc_bitmap_andnot(this->workCpuset, this->workCpuset, selected->cpuset); - selected->value = 0; - } else { - /* Item was not or only partial selected, so set all bits from this object - in the top cpuset. */ - hwloc_bitmap_or(this->workCpuset, this->workCpuset, selected->cpuset); - selected->value = 2; - } - #else - selected->value = selected->value ? 0 : 2; /* toggle between 0 and 2 */ - #endif + case KEY_MOUSE: + case KEY_RECLICK: + case ' ': + #ifdef HAVE_LIBHWLOC + if (selected->value == 2) { + /* Item was selected, so remove this mask from the top cpuset. */ + hwloc_bitmap_andnot(this->workCpuset, this->workCpuset, selected->cpuset); + selected->value = 0; + } else { + /* Item was not or only partial selected, so set all bits from this object + in the top cpuset. */ + hwloc_bitmap_or(this->workCpuset, this->workCpuset, selected->cpuset); + selected->value = 2; + } + #else + selected->value = selected->value ? 0 : 2; /* toggle between 0 and 2 */ + #endif - result = HANDLED; - break; + result = HANDLED; + break; - #ifdef HAVE_LIBHWLOC +#ifdef HAVE_LIBHWLOC - case KEY_F(1): - hwloc_bitmap_copy(this->workCpuset, this->allCpuset); - result = HANDLED; - break; + case KEY_F(1): + hwloc_bitmap_copy(this->workCpuset, this->allCpuset); + result = HANDLED; + break; - case KEY_F(2): - this->topoView = !this->topoView; - keepSelected = false; + case KEY_F(2): + this->topoView = !this->topoView; + keepSelected = false; - result = HANDLED; - break; + result = HANDLED; + break; - case KEY_F(3): - case '-': - case '+': - if (selected->sub_tree) - selected->sub_tree = 1 + !(selected->sub_tree - 1); /* toggle between 1 and 2 */ + case KEY_F(3): + case '-': + case '+': + if (selected->sub_tree) + selected->sub_tree = 1 + !(selected->sub_tree - 1); /* toggle between 1 and 2 */ - result = HANDLED; - break; + result = HANDLED; + break; - #endif +#endif - case 0x0a: - case 0x0d: - case KEY_ENTER: - result = BREAK_LOOP; - break; + case 0x0a: + case 0x0d: + case KEY_ENTER: + result = BREAK_LOOP; + break; } if (HANDLED == result) diff --git a/AvailableColumnsPanel.c b/AvailableColumnsPanel.c index 1b328db0..03684ff0 100644 --- a/AvailableColumnsPanel.c +++ b/AvailableColumnsPanel.c @@ -51,8 +51,7 @@ static HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) { switch (ch) { case 13: case KEY_ENTER: - case KEY_F(5): - { + case KEY_F(5): { const ListItem* selected = (ListItem*) Panel_getSelected(super); if (!selected) break; @@ -65,11 +64,9 @@ static HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) { break; } default: - { if (0 < ch && ch < 255 && isgraph((unsigned char)ch)) result = Panel_selectByTyping(super, ch); break; - } } return result; } diff --git a/AvailableMetersPanel.c b/AvailableMetersPanel.c index dabb3870..f34af8fe 100644 --- a/AvailableMetersPanel.c +++ b/AvailableMetersPanel.c @@ -60,25 +60,22 @@ static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) { case KEY_F(5): case 'l': case 'L': - { AvailableMetersPanel_addMeter(header, this->meterPanels[0], Platform_meterTypes[type], param, 0); result = HANDLED; update = true; break; - } case 0x0a: case 0x0d: case KEY_ENTER: case KEY_F(6): case 'r': case 'R': - { AvailableMetersPanel_addMeter(header, this->meterPanels[this->columns - 1], Platform_meterTypes[type], param, this->columns - 1); result = (KEY_LEFT << 16) | SYNTH_KEY; update = true; break; - } } + if (update) { Settings* settings = this->host->settings; settings->changed = true; @@ -88,6 +85,7 @@ static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) { Header_draw(header); ScreenManager_resize(this->scr); } + return result; } diff --git a/BatteryMeter.c b/BatteryMeter.c index 92eecb3f..dad7754a 100644 --- a/BatteryMeter.c +++ b/BatteryMeter.c @@ -40,16 +40,16 @@ static void BatteryMeter_updateValues(Meter* this) { const char* text; switch (isOnAC) { - case AC_PRESENT: - text = this->mode == TEXT_METERMODE ? " (Running on A/C)" : "(A/C)"; - break; - case AC_ABSENT: - text = this->mode == TEXT_METERMODE ? " (Running on battery)" : "(bat)"; - break; - case AC_ERROR: - default: - text = ""; - break; + case AC_PRESENT: + text = this->mode == TEXT_METERMODE ? " (Running on A/C)" : "(A/C)"; + break; + case AC_ABSENT: + text = this->mode == TEXT_METERMODE ? " (Running on battery)" : "(bat)"; + break; + case AC_ERROR: + default: + text = ""; + break; } xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%.1f%%%s", percent, text); @@ -1113,8 +1113,8 @@ void CRT_setColors(int colorScheme) { for (short int j = 0; j < 8; j++) { if (ColorIndex(i, j) != ColorIndexGrayBlack && ColorIndex(i, j) != ColorIndexWhiteDefault) { short int bg = (colorScheme != COLORSCHEME_BLACKNIGHT) - ? (j == 0 ? -1 : j) - : j; + ? (j == 0 ? -1 : j) + : j; init_pair(ColorIndex(i, j), i, bg); } } diff --git a/ColorsPanel.c b/ColorsPanel.c index 59008842..c00981e0 100644 --- a/ColorsPanel.c +++ b/ColorsPanel.c @@ -50,30 +50,31 @@ static HandlerResult ColorsPanel_eventHandler(Panel* super, int ch) { ColorsPanel* this = (ColorsPanel*) super; HandlerResult result = IGNORED; - int mark; switch (ch) { - case 0x0a: - case 0x0d: - case KEY_ENTER: - case KEY_MOUSE: - case KEY_RECLICK: - case ' ': - mark = Panel_getSelectedIndex(super); - assert(mark >= 0); - assert(mark < LAST_COLORSCHEME); - for (int i = 0; ColorSchemeNames[i] != NULL; i++) - CheckItem_set((CheckItem*)Panel_get(super, i), false); - CheckItem_set((CheckItem*)Panel_get(super, mark), true); - - this->settings->colorScheme = mark; - this->settings->changed = true; - this->settings->lastUpdate++; - - CRT_setColors(mark); - clear(); - - result = HANDLED | REDRAW; + case 0x0a: + case 0x0d: + case KEY_ENTER: + case KEY_MOUSE: + case KEY_RECLICK: + case ' ': { + int mark = Panel_getSelectedIndex(super); + assert(mark >= 0); + assert(mark < LAST_COLORSCHEME); + + for (int i = 0; ColorSchemeNames[i] != NULL; i++) + CheckItem_set((CheckItem*)Panel_get(super, i), false); + CheckItem_set((CheckItem*)Panel_get(super, mark), true); + + this->settings->colorScheme = mark; + this->settings->changed = true; + this->settings->lastUpdate++; + + CRT_setColors(mark); + clear(); + + result = HANDLED | REDRAW; + } } return result; diff --git a/ColumnsPanel.c b/ColumnsPanel.c index f395d9f6..0517ea7d 100644 --- a/ColumnsPanel.c +++ b/ColumnsPanel.c @@ -46,7 +46,6 @@ static HandlerResult ColumnsPanel_eventHandler(Panel* super, int ch) { case KEY_ENTER: case KEY_MOUSE: case KEY_RECLICK: - { if (selected < size - 1) { this->moving = !(this->moving); Panel_setSelectionColor(super, this->moving ? PANEL_SELECTION_FOLLOW : PANEL_SELECTION_FOCUS); @@ -56,59 +55,45 @@ static HandlerResult ColumnsPanel_eventHandler(Panel* super, int ch) { result = HANDLED; } break; - } case KEY_UP: - { - if (!this->moving) { + if (!this->moving) break; - } - } /* else fallthrough */ case KEY_F(7): case '[': case '-': - { if (selected < size - 1) Panel_moveSelectedUp(super); result = HANDLED; break; - } case KEY_DOWN: - { - if (!this->moving) { + if (!this->moving) break; - } - } /* else fallthrough */ case KEY_F(8): case ']': case '+': - { if (selected < size - 2) Panel_moveSelectedDown(super); result = HANDLED; break; - } case KEY_F(9): case KEY_DC: - { - if (selected < size - 1) { + if (selected < size - 1) Panel_remove(super, selected); - } result = HANDLED; break; - } default: - { if (0 < ch && ch < 255 && isgraph((unsigned char)ch)) result = Panel_selectByTyping(super, ch); if (result == BREAK_LOOP) result = IGNORED; break; - } } + if (result == HANDLED) ColumnsPanel_update(super); + return result; } diff --git a/CommandLine.c b/CommandLine.c index effaca48..230b721c 100644 --- a/CommandLine.c +++ b/CommandLine.c @@ -138,6 +138,7 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin while ((opt = getopt_long(argc, argv, "hVMCs:td:n:u::Up:F:H::", long_opts, &opti))) { if (opt == EOF) break; + switch (opt) { case 'h': printHelpFlag(program); @@ -192,8 +193,7 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin return STATUS_ERROR_EXIT; } break; - case 'u': - { + case 'u': { const char* username = optarg; if (!username && optind < argc && argv[optind] != NULL && (argv[optind][0] != '\0' && argv[optind][0] != '-')) { @@ -246,11 +246,10 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin break; } - case 'F': { + case 'F': assert(optarg); free_and_xStrdup(&flags->commFilter, optarg); break; - } case 'H': { const char* delay = optarg; if (!delay && optind < argc && argv[optind] != NULL && diff --git a/DiskIOMeter.c b/DiskIOMeter.c index 78ae91b6..545ebd83 100644 --- a/DiskIOMeter.c +++ b/DiskIOMeter.c @@ -117,24 +117,23 @@ static void DiskIOMeter_updateValues(Meter* this) { static void DiskIOMeter_display(ATTR_UNUSED const Object* cast, RichString* out) { switch (status) { - case RATESTATUS_NODATA: - RichString_writeAscii(out, CRT_colors[METER_VALUE_ERROR], "no data"); - return; - case RATESTATUS_INIT: - RichString_writeAscii(out, CRT_colors[METER_VALUE], "initializing..."); - return; - case RATESTATUS_STALE: - RichString_writeAscii(out, CRT_colors[METER_VALUE_WARN], "stale data"); - return; - case RATESTATUS_DATA: - break; + case RATESTATUS_NODATA: + RichString_writeAscii(out, CRT_colors[METER_VALUE_ERROR], "no data"); + return; + case RATESTATUS_INIT: + RichString_writeAscii(out, CRT_colors[METER_VALUE], "initializing..."); + return; + case RATESTATUS_STALE: + RichString_writeAscii(out, CRT_colors[METER_VALUE_WARN], "stale data"); + return; + case RATESTATUS_DATA: + break; } char buffer[16]; - int len; int color = cached_utilisation_diff > 40.0 ? METER_VALUE_NOTICE : METER_VALUE; - len = xSnprintf(buffer, sizeof(buffer), "%.1f%%", cached_utilisation_diff); + int len = xSnprintf(buffer, sizeof(buffer), "%.1f%%", cached_utilisation_diff); RichString_appendnAscii(out, CRT_colors[color], buffer, len); RichString_appendAscii(out, CRT_colors[METER_TEXT], " read: "); diff --git a/DisplayOptionsPanel.c b/DisplayOptionsPanel.c index e74409fc..fb6fe9c4 100644 --- a/DisplayOptionsPanel.c +++ b/DisplayOptionsPanel.c @@ -37,37 +37,37 @@ 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_TEXT: + 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_CHECK: - CheckItem_toggle((CheckItem*)selected); - result = HANDLED; + case '-': + if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) { + NumberItem_decrease((NumberItem*)selected); + result = HANDLED; + } break; - case OPTION_ITEM_NUMBER: - NumberItem_toggle((NumberItem*)selected); - result = HANDLED; + 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) { @@ -80,6 +80,7 @@ static HandlerResult DisplayOptionsPanel_eventHandler(Panel* super, int ch) { Header_draw(header); ScreenManager_resize(this->scr); } + return result; } @@ -23,7 +23,7 @@ typedef struct Header_ { #define Header_forEachColumn(this_, i_) for (size_t (i_)=0, H_fEC_numColumns_ = HeaderLayout_getColumns((this_)->headerLayout); (i_) < H_fEC_numColumns_; ++(i_)) -Header* Header_new(Machine *host, HeaderLayout hLayout); +Header* Header_new(Machine* host, HeaderLayout hLayout); void Header_delete(Header* this); diff --git a/HeaderOptionsPanel.c b/HeaderOptionsPanel.c index 25d1ddbb..b69d85bb 100644 --- a/HeaderOptionsPanel.c +++ b/HeaderOptionsPanel.c @@ -33,30 +33,30 @@ static HandlerResult HeaderOptionsPanel_eventHandler(Panel* super, int ch) { HeaderOptionsPanel* this = (HeaderOptionsPanel*) super; HandlerResult result = IGNORED; - int mark; switch (ch) { - case 0x0a: - case 0x0d: - case KEY_ENTER: - case KEY_MOUSE: - case KEY_RECLICK: - case ' ': - mark = Panel_getSelectedIndex(super); - assert(mark >= 0); - assert(mark < LAST_HEADER_LAYOUT); - - for (int i = 0; i < LAST_HEADER_LAYOUT; i++) - CheckItem_set((CheckItem*)Panel_get(super, i), false); - CheckItem_set((CheckItem*)Panel_get(super, mark), true); - - Header_setLayout(this->scr->header, mark); - this->settings->changed = true; - this->settings->lastUpdate++; - - ScreenManager_resize(this->scr); - - result = HANDLED; + case 0x0a: + case 0x0d: + case KEY_ENTER: + case KEY_MOUSE: + case KEY_RECLICK: + case ' ': { + int mark = Panel_getSelectedIndex(super); + assert(mark >= 0); + assert(mark < LAST_HEADER_LAYOUT); + + for (int i = 0; i < LAST_HEADER_LAYOUT; i++) + CheckItem_set((CheckItem*)Panel_get(super, i), false); + CheckItem_set((CheckItem*)Panel_get(super, mark), true); + + Header_setLayout(this->scr->header, mark); + this->settings->changed = true; + this->settings->lastUpdate++; + + ScreenManager_resize(this->scr); + + result = HANDLED; + } } return result; diff --git a/InfoScreen.c b/InfoScreen.c index e9f06f27..c602cd46 100644 --- a/InfoScreen.c +++ b/InfoScreen.c @@ -138,48 +138,48 @@ void InfoScreen_run(InfoScreen* this) { } switch (ch) { - case ERR: - continue; - case KEY_F(3): - case '/': - IncSet_activate(this->inc, INC_SEARCH, panel); - break; - case KEY_F(4): - case '\\': - IncSet_activate(this->inc, INC_FILTER, panel); - break; - case KEY_F(5): - clear(); - if (As_InfoScreen(this)->scan) { - Vector_prune(this->lines); - InfoScreen_scan(this); - } + case ERR: + continue; + case KEY_F(3): + case '/': + IncSet_activate(this->inc, INC_SEARCH, panel); + break; + case KEY_F(4): + case '\\': + IncSet_activate(this->inc, INC_FILTER, panel); + break; + case KEY_F(5): + clear(); + if (As_InfoScreen(this)->scan) { + Vector_prune(this->lines); + InfoScreen_scan(this); + } - InfoScreen_draw(this); - break; - case '\014': // Ctrl+L - clear(); - InfoScreen_draw(this); - break; - case 27: - case 'q': - case KEY_F(10): - looping = false; - break; - case KEY_RESIZE: - Panel_resize(panel, COLS, LINES - 2); - if (As_InfoScreen(this)->scan) { - Vector_prune(this->lines); - InfoScreen_scan(this); - } + InfoScreen_draw(this); + break; + case '\014': // Ctrl+L + clear(); + InfoScreen_draw(this); + break; + case 27: + case 'q': + case KEY_F(10): + looping = false; + break; + case KEY_RESIZE: + Panel_resize(panel, COLS, LINES - 2); + if (As_InfoScreen(this)->scan) { + Vector_prune(this->lines); + InfoScreen_scan(this); + } - InfoScreen_draw(this); - break; - default: - if (As_InfoScreen(this)->onKey && InfoScreen_onKey(this, ch)) { - continue; - } - Panel_onKey(panel, ch); + InfoScreen_draw(this); + break; + default: + if (As_InfoScreen(this)->onKey && InfoScreen_onKey(this, ch)) { + continue; + } + Panel_onKey(panel, ch); } } } diff --git a/MetersPanel.c b/MetersPanel.c index 580e41bd..ac118e54 100644 --- a/MetersPanel.c +++ b/MetersPanel.c @@ -95,17 +95,14 @@ static HandlerResult MetersPanel_eventHandler(Panel* super, int ch) { case 0x0a: case 0x0d: case KEY_ENTER: - { if (!Vector_size(this->meters)) break; MetersPanel_setMoving(this, !(this->moving)); result = HANDLED; break; - } case ' ': case KEY_F(4): - case 't': - { + case 't': { if (!Vector_size(this->meters)) break; Meter* meter = (Meter*) Vector_get(this->meters, selected); @@ -118,39 +115,28 @@ static HandlerResult MetersPanel_eventHandler(Panel* super, int ch) { break; } case KEY_UP: - { - if (!this->moving) { + if (!this->moving) break; - } - } /* else fallthrough */ case KEY_F(7): case '[': case '-': - { Vector_moveUp(this->meters, selected); Panel_moveSelectedUp(super); result = HANDLED; break; - } case KEY_DOWN: - { - if (!this->moving) { + if (!this->moving) break; - } - } /* else fallthrough */ case KEY_F(8): case ']': case '+': - { Vector_moveDown(this->meters, selected); Panel_moveSelectedDown(super); result = HANDLED; break; - } case KEY_RIGHT: - { sideMove = moveToNeighbor(this, this->rightNeighbor, selected); if (this->moving && !sideMove) { // lock user here until it exits positioning-mode @@ -159,18 +145,14 @@ static HandlerResult MetersPanel_eventHandler(Panel* super, int ch) { // if user is free, don't set HANDLED; // let ScreenManager handle focus. break; - } case KEY_LEFT: - { sideMove = moveToNeighbor(this, this->leftNeighbor, selected); if (this->moving && !sideMove) { result = HANDLED; } break; - } case KEY_F(9): case KEY_DC: - { if (!Vector_size(this->meters)) break; if (selected < Vector_size(this->meters)) { @@ -180,8 +162,8 @@ static HandlerResult MetersPanel_eventHandler(Panel* super, int ch) { MetersPanel_setMoving(this, false); result = HANDLED; break; - } } + if (result == HANDLED || sideMove) { Header* header = this->scr->header; this->settings->changed = true; @@ -189,6 +171,7 @@ static HandlerResult MetersPanel_eventHandler(Panel* super, int ch) { Header_calculateHeight(header); ScreenManager_resize(this->scr); } + return result; } diff --git a/NetworkIOMeter.c b/NetworkIOMeter.c index a43f4d17..1ab3a37e 100644 --- a/NetworkIOMeter.c +++ b/NetworkIOMeter.c @@ -135,21 +135,20 @@ static void NetworkIOMeter_updateValues(Meter* this) { static void NetworkIOMeter_display(ATTR_UNUSED const Object* cast, RichString* out) { switch (status) { - case RATESTATUS_NODATA: - RichString_writeAscii(out, CRT_colors[METER_VALUE_ERROR], "no data"); - return; - case RATESTATUS_INIT: - RichString_writeAscii(out, CRT_colors[METE |