summaryrefslogtreecommitdiffstats
path: root/ProcessList.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-01-28 04:09:06 -0200
committerHisham Muhammad <hisham@gobolinux.org>2018-01-30 12:59:11 -0200
commit5beff29a3df7097cc4d256b27888ee730b1a45d0 (patch)
treecdc2d5f30e82db0f7415c2998bbb75cd5beba78f /ProcessList.c
parentd1219abc558141a96ea25aa1db1c2dd3171c5132 (diff)
Add support for multiple screens, switchable using Tab
Diffstat (limited to 'ProcessList.c')
-rw-r--r--ProcessList.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/ProcessList.c b/ProcessList.c
index 25ae1385..1bb94db0 100644
--- a/ProcessList.c
+++ b/ProcessList.c
@@ -124,14 +124,15 @@ void ProcessList_setPanel(ProcessList* this, Panel* panel) {
void ProcessList_printHeader(ProcessList* this, RichString* header) {
RichString_prune(header);
- ProcessField* fields = this->settings->fields;
+ ProcessField* fields = this->settings->ss->fields;
for (int i = 0; fields[i]; i++) {
- const char* field = Process_fields[fields[i]].title;
+ unsigned int key = fields[i];
+ const char* field = Process_fields[key].title;
if (!field) field = "- ";
- if (!this->settings->treeView && this->settings->sortKey == fields[i])
- RichString_append(header, CRT_colors[PANEL_SELECTION_FOCUS], field);
- else
- RichString_append(header, CRT_colors[PANEL_HEADER_FOCUS], field);
+ int color = (!this->settings->ss->treeView && this->settings->ss->sortKey == key)
+ ? CRT_colors[PANEL_SELECTION_FOCUS]
+ : CRT_colors[PANEL_HEADER_FOCUS];
+ RichString_append(header, color, field);
}
}
@@ -200,19 +201,19 @@ static void ProcessList_buildTree(ProcessList* this, pid_t pid, int level, int i
}
void ProcessList_sort(ProcessList* this) {
- if (!this->settings->treeView) {
+ if (!this->settings->ss->treeView) {
Vector_insertionSort(this->processes);
} else {
// Save settings
- int direction = this->settings->direction;
- int sortKey = this->settings->sortKey;
+ int direction = this->settings->ss->direction;
+ int sortKey = this->settings->ss->sortKey;
// Sort by PID
- this->settings->sortKey = PID;
- this->settings->direction = 1;
+ this->settings->ss->sortKey = PID;
+ this->settings->ss->direction = 1;
Vector_quickSort(this->processes);
// Restore settings
- this->settings->sortKey = sortKey;
- this->settings->direction = direction;
+ this->settings->ss->sortKey = sortKey;
+ this->settings->ss->direction = direction;
int vsize = Vector_size(this->processes);
// Find all processes whose parent is not visible
int size;
@@ -266,7 +267,7 @@ void ProcessList_sort(ProcessList* this) {
ProcessField ProcessList_keyAt(ProcessList* this, int at) {
int x = 0;
- ProcessField* fields = this->settings->fields;
+ ProcessField* fields = this->settings->ss->fields;
ProcessField field;
for (int i = 0; (field = fields[i]); i++) {
const char* title = Process_fields[field].title;

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