diff options
-rw-r--r-- | CRT.c | 6 | ||||
-rw-r--r-- | CRT.h | 2 | ||||
-rw-r--r-- | CheckItem.c | 2 | ||||
-rw-r--r-- | CheckItem.h | 2 | ||||
-rw-r--r-- | Header.c | 2 | ||||
-rw-r--r-- | Header.h | 2 | ||||
-rw-r--r-- | Meter.c | 31 | ||||
-rw-r--r-- | Meter.h | 6 | ||||
-rw-r--r-- | OpenFilesScreen.c | 2 | ||||
-rw-r--r-- | OpenFilesScreen.h | 2 | ||||
-rw-r--r-- | Panel.c | 34 | ||||
-rw-r--r-- | Panel.h | 6 | ||||
-rw-r--r-- | Process.c | 91 | ||||
-rw-r--r-- | Process.h | 94 | ||||
-rw-r--r-- | ProcessList.c | 4 | ||||
-rw-r--r-- | ProcessList.h | 4 | ||||
-rw-r--r-- | RichString.c | 1 | ||||
-rw-r--r-- | Settings.c | 2 | ||||
-rw-r--r-- | Settings.h | 2 |
19 files changed, 176 insertions, 119 deletions
@@ -123,6 +123,8 @@ int CRT_colors[LAST_COLORELEMENT] = { 0 }; int CRT_cursorX = 0; +int CRT_scrollHAmount = 5; + char* CRT_termType; void *backtraceArray[128]; @@ -173,6 +175,10 @@ void CRT_init(int delay, int colorScheme) { CRT_hasColors = false; } CRT_termType = getenv("TERM"); + if (String_eq(CRT_termType, "linux")) + CRT_scrollHAmount = 20; + else + CRT_scrollHAmount = 5; if (String_eq(CRT_termType, "xterm") || String_eq(CRT_termType, "xterm-color") || String_eq(CRT_termType, "vt220")) { define_key("\033[H", KEY_HOME); define_key("\033[F", KEY_END); @@ -109,6 +109,8 @@ extern int CRT_colors[LAST_COLORELEMENT]; extern int CRT_cursorX; +extern int CRT_scrollHAmount; + char* CRT_termType; void *backtraceArray[128]; diff --git a/CheckItem.c b/CheckItem.c index 8c05e38e..ea83e6f3 100644 --- a/CheckItem.c +++ b/CheckItem.c @@ -18,8 +18,8 @@ in the source distribution for its full text. typedef struct CheckItem_ { Object super; char* text; - bool value; bool* ref; + bool value; } CheckItem; }*/ diff --git a/CheckItem.h b/CheckItem.h index 98ed17a1..86d4aa5b 100644 --- a/CheckItem.h +++ b/CheckItem.h @@ -14,8 +14,8 @@ in the source distribution for its full text. typedef struct CheckItem_ { Object super; char* text; - bool value; bool* ref; + bool value; } CheckItem; @@ -37,9 +37,9 @@ typedef struct Header_ { Vector* leftMeters; Vector* rightMeters; ProcessList* pl; - bool margin; int height; int pad; + bool margin; } Header; }*/ @@ -21,9 +21,9 @@ typedef struct Header_ { Vector* leftMeters; Vector* rightMeters; ProcessList* pl; - bool margin; int height; int pad; + bool margin; } Header; @@ -143,6 +143,7 @@ MeterClass* Meter_types[] = { &RightCPUsMeter_class, &LeftCPUs2Meter_class, &RightCPUs2Meter_class, + &BlankMeter_class, NULL }; @@ -470,3 +471,33 @@ MeterMode* Meter_modes[] = { &LEDMeterMode, NULL }; + +/* Blank meter */ + +static void BlankMeter_setValues(Meter* this, char* buffer, int size) { + (void) this; (void) buffer; (void) size; +} + +static void BlankMeter_display(Object* cast, RichString* out) { + (void) cast; + RichString_prune(out); +} + +int BlankMeter_attributes[] = { + DEFAULT_COLOR +}; + +MeterClass BlankMeter_class = { + .super = { + .extends = Class(Meter), + .delete = Meter_delete, + .display = BlankMeter_display, + }, + .setValues = BlankMeter_setValues, + .defaultMode = TEXT_METERMODE, + .total = 100.0, + .attributes = BlankMeter_attributes, + .name = "Blank", + .uiName = "Blank", + .caption = "" +}; @@ -123,4 +123,10 @@ ListItem* Meter_toListItem(Meter* this); extern MeterMode* Meter_modes[]; +/* Blank meter */ + +extern int BlankMeter_attributes[]; + +extern MeterClass BlankMeter_class; + #endif diff --git a/OpenFilesScreen.c b/OpenFilesScreen.c index ae511c83..94e2c70e 100644 --- a/OpenFilesScreen.c +++ b/OpenFilesScreen.c @@ -29,9 +29,9 @@ in the source distribution for its full text. #include "FunctionBar.h" typedef struct OpenFiles_ProcessData_ { - char* data[256]; struct OpenFiles_FileData_* files; int error; + char* data[256]; } OpenFiles_ProcessData; typedef struct OpenFiles_FileData_ { diff --git a/OpenFilesScreen.h b/OpenFilesScreen.h index ce15ea34..2956dfda 100644 --- a/OpenFilesScreen.h +++ b/OpenFilesScreen.h @@ -14,9 +14,9 @@ in the source distribution for its full text. #include "FunctionBar.h" typedef struct OpenFiles_ProcessData_ { - char* data[256]; struct OpenFiles_FileData_* files; int error; + char* data[256]; } OpenFiles_ProcessData; typedef struct OpenFiles_FileData_ { @@ -53,12 +53,12 @@ struct Panel_ { WINDOW* window; Vector* items; int selected; - int scrollV, scrollH; - int scrollHAmount; int oldSelected; + char* eventHandlerBuffer; + int scrollV; + short scrollH; bool needsRedraw; RichString header; - char* eventHandlerBuffer; }; }*/ @@ -110,10 +110,6 @@ void Panel_init(Panel* this, int x, int y, int w, int h, ObjectClass* type, bool this->oldSelected = 0; this->needsRedraw = true; RichString_beginAllocated(this->header); - if (String_eq(CRT_termType, "linux")) - this->scrollHAmount = 20; - else - this->scrollHAmount = 5; } void Panel_done(Panel* this) { @@ -299,18 +295,16 @@ void Panel_draw(Panel* this, bool focus) { Object_display(itemObj, &item); int itemLen = RichString_sizeVal(item); int amt = MIN(itemLen - scrollH, this->w); - if (i == this->selected) { + bool selected = (i == this->selected); + if (selected) { attrset(highlight); RichString_setAttr(&item, highlight); - mvhline(y + j, x+0, ' ', this->w); - if (amt > 0) - RichString_printoffnVal(item, y+j, x+0, scrollH, amt); - attrset(CRT_colors[RESET_COLOR]); - } else { - mvhline(y+j, x+0, ' ', this->w); - if (amt > 0) - RichString_printoffnVal(item, y+j, x+0, scrollH, amt); } + mvhline(y + j, x, ' ', this->w); + if (amt > 0) + RichString_printoffnVal(item, y+j, x, scrollH, amt); + if (selected) + attrset(CRT_colors[RESET_COLOR]); RichString_end(item); } for (int i = y + (last - first); i < y + this->h; i++) @@ -330,13 +324,13 @@ void Panel_draw(Panel* this, bool focus) { mvhline(y+ this->oldSelected - this->scrollV, x+0, ' ', this->w); if (scrollH < oldLen) RichString_printoffnVal(old, y+this->oldSelected - this->scrollV, x, - this->scrollH, MIN(oldLen - scrollH, this->w)); + scrollH, MIN(oldLen - scrollH, this->w)); attrset(highlight); mvhline(y+this->selected - this->scrollV, x+0, ' ', this->w); RichString_setAttr(&new, highlight); if (scrollH < newLen) RichString_printoffnVal(new, y+this->selected - this->scrollV, x, - this->scrollH, MIN(newLen - scrollH, this->w)); + scrollH, MIN(newLen - scrollH, this->w)); attrset(CRT_colors[RESET_COLOR]); RichString_end(new); RichString_end(old); @@ -383,13 +377,13 @@ bool Panel_onKey(Panel* this, int key) { case KEY_LEFT: case KEY_CTRLB: if (this->scrollH > 0) { - this->scrollH -= 5; + this->scrollH -= CRT_scrollHAmount; this->needsRedraw = true; } return true; case KEY_RIGHT: case KEY_CTRLF: - this->scrollH += 5; + this->scrollH += CRT_scrollHAmount; this->needsRedraw = true; return true; case KEY_PPAGE: @@ -42,12 +42,12 @@ struct Panel_ { WINDOW* window; Vector* items; int selected; - int scrollV, scrollH; - int scrollHAmount; int oldSelected; + char* eventHandlerBuffer; + int scrollV; + short scrollH; bool needsRedraw; RichString header; - char* eventHandlerBuffer; }; @@ -94,7 +94,6 @@ typedef struct Process_ { Object super; struct ProcessList_ *pl; - bool updated; pid_t pid; char* comm; @@ -110,12 +109,12 @@ typedef struct Process_ { pid_t tgid; int tpgid; unsigned long int flags; - #ifdef DEBUG - unsigned long int minflt; - unsigned long int cminflt; - unsigned long int majflt; - unsigned long int cmajflt; - #endif + + uid_t st_uid; + float percent_cpu; + float percent_mem; + char* user; + unsigned long long int utime; unsigned long long int stime; unsigned long long int cutime; @@ -126,25 +125,21 @@ typedef struct Process_ { IOPriority ioPriority; char starttime_show[8]; time_t starttime_ctime; - #ifdef DEBUG - long int itrealvalue; - unsigned long int vsize; - long int rss; - unsigned long int rlim; - unsigned long int startcode; - unsigned long int endcode; - unsigned long int startstack; - unsigned long int kstkesp; - unsigned long int kstkeip; - unsigned long int signal; - unsigned long int blocked; - unsigned long int sigignore; - unsigned long int sigcatch; - unsigned long int wchan; - unsigned long int nswap; - unsigned long int cnswap; + + #ifdef HAVE_TASKSTATS + unsigned long long io_rchar; + unsigned long long io_wchar; + unsigned long long io_syscr; + unsigned long long io_syscw; + unsigned long long io_read_bytes; + unsigned long long io_write_bytes; + unsigned long long io_cancelled_write_bytes; + double io_rate_read_bps; + unsigned long long io_rate_read_time; + double io_rate_write_bps; + unsigned long long io_rate_write_time; #endif - int exit_signal; + int processor; int m_size; int m_resident; @@ -153,10 +148,7 @@ typedef struct Process_ { int m_drs; int m_lrs; int m_dt; - uid_t st_uid; - float percent_cpu; - float percent_mem; - char* user; + #ifdef HAVE_OPENVZ unsigned int ctid; unsigned int vpid; @@ -164,25 +156,40 @@ typedef struct Process_ { #ifdef HAVE_VSERVER unsigned int vxid; #endif - #ifdef HAVE_TASKSTATS - unsigned long long io_rchar; - unsigned long long io_wchar; - unsigned long long io_syscr; - unsigned long long io_syscw; - unsigned long long io_read_bytes; - unsigned long long io_write_bytes; - unsigned long long io_cancelled_write_bytes; - double io_rate_read_bps; - unsigned long long io_rate_read_time; - double io_rate_write_bps; - unsigned long long io_rate_write_time; - #endif + #ifdef HAVE_CGROUP char* cgroup; #endif #ifdef HAVE_OOM unsigned int oom; #endif + + int exit_signal; + bool updated; + + #ifdef DEBUG + unsigned long int minflt; + unsigned long int cminflt; + unsigned long int majflt; + unsigned long int cmajflt; + long int itrealvalue; + unsigned long int vsize; + long int rss; + unsigned long int rlim; + unsigned long int startcode; + unsigned long int endcode; + unsigned long int startstack; + unsigned long int kstkesp; + unsigned long int kstkeip; + unsigned long int signal; + unsigned long int blocked; + unsigned long int sigignore; + unsigned long int sigcatch; + unsigned long int wchan; + unsigned long int nswap; + unsigned long int cnswap; + #endif + } Process; }*/ @@ -73,7 +73,6 @@ typedef struct Process_ { Object super; struct ProcessList_ *pl; - bool updated; pid_t pid; char* comm; @@ -89,12 +88,12 @@ typedef struct Process_ { pid_t tgid; int tpgid; unsigned long int flags; - #ifdef DEBUG - unsigned long int minflt; - unsigned long int cminflt; - unsigned long int majflt; - unsigned long int cmajflt; - #endif + + uid_t st_uid; + float percent_cpu; + float percent_mem; + char* user; + unsigned long long int utime; unsigned long long int stime; unsigned long long int cutime; @@ -105,25 +104,21 @@ typedef struct Process_ { IOPriority ioPriority; char starttime_show[8]; time_t starttime_ctime; - #ifdef DEBUG - long int itrealvalue; - unsigned long int vsize; - long int rss; - unsigned long int rlim; - unsigned long int startcode; - unsigned long int endcode; - unsigned long int startstack; - unsigned long int kstkesp; - unsigned long int kstkeip; - unsigned long int signal; - unsigned long int blocked; - unsigned long int sigignore; - unsigned long int sigcatch; - unsigned long int wchan; - unsigned long int nswap; - unsigned long int cnswap; + + #ifdef HAVE_TASKSTATS + unsigned long long io_rchar; + unsigned long long io_wchar; + unsigned long long io_syscr; + unsigned long long io_syscw; + unsigned long long io_read_bytes; + unsigned long long io_write_bytes; + unsigned long long io_cancelled_write_bytes; + double io_rate_read_bps; + unsigned long long io_rate_read_time; + double io_rate_write_bps; + unsigned long long io_rate_write_time; #endif - int exit_signal; + int processor; int m_size; int m_resident; @@ -132,10 +127,7 @@ typedef struct Process_ { int m_drs; int m_lrs; int m_dt; - uid_t st_uid; - float percent_cpu; - float percent_mem; - char* user; + #ifdef HAVE_OPENVZ unsigned int ctid; unsigned int vpid; @@ -143,25 +135,40 @@ typedef struct Process_ { #ifdef HAVE_VSERVER unsigned int vxid; #endif - #ifdef HAVE_TASKSTATS - unsigned long long io_rchar; - unsigned long long io_wchar; - unsigned long long io_syscr; - unsigned long long io_syscw; - unsigned long long io_read_bytes; - unsigned long long io_write_bytes; - unsigned long long io_cancelled_write_bytes; - double io_rate_read_bps; - unsigned long long io_rate_read_time; - double io_rate_write_bps; - unsigned long long io_rate_write_time; - #endif + #ifdef HAVE_CGROUP char* cgroup; #endif #ifdef HAVE_OOM unsigned int oom; #endif + + int exit_signal; + bool updated; + + #ifdef DEBUG + unsigned long int minflt; + unsigned long int cminflt; + unsigned long int majflt; + unsigned long int cmajflt; + long int itrealvalue; + unsigned long int vsize; + long int rss; + unsigned long int rlim; + unsigned long int startcode; + unsigned long int endcode; + unsigned long int startstack; + unsigned long int kstkesp; + unsigned long int kstkeip; + unsigned long int signal; + unsigned long int blocked; + unsigned long int sigignore; + unsigned long int sigcatch; + unsigned long int wchan; + unsigned long int nswap; + unsigned long int cnswap; + #endif + } Process; @@ -178,6 +185,9 @@ void Process_getMaxPid(); #define ONE_M (ONE_K * ONE_K) #define ONE_G (ONE_M * ONE_K) +#define ONE_DECIMAL_K 1000 +#define ONE_DECIMAL_M (ONE_DECIMAL_K * ONE_DECIMAL_K) + void Process_delete(Object* cast); extern ObjectClass Process_class; diff --git a/ProcessList.c b/ProcessList.c index a5b9568b..4676a264 100644 --- a/ProcessList.c +++ b/ProcessList.c @@ -99,6 +99,7 @@ typedef struct CPUData_ { } CPUData; typedef struct ProcessList_ { + const char **treeStr; Vector* processes; Vector* processes2; Hashtable* processTable; @@ -106,7 +107,6 @@ typedef struct ProcessList_ { Panel* panel; int following; - bool userOnly; uid_t userId; const char* incFilter; Hashtable* pidWhiteList; @@ -151,7 +151,7 @@ typedef struct ProcessList_ { bool countCPUsFromZero; bool updateProcessNames; bool accountGuestInCPUMeter; - const char **treeStr; + bool userOnly; } ProcessList; diff --git a/ProcessList.h b/ProcessList.h index 437c57f4..1f3549ae 100644 --- a/ProcessList.h +++ b/ProcessList.h @@ -79,6 +79,7 @@ typedef struct CPUData_ { } CPUData; typedef struct ProcessList_ { + const char **treeStr; Vector* processes; Vector* processes2; Hashtable* processTable; @@ -86,7 +87,6 @@ typedef struct ProcessList_ { Panel* panel; int following; - bool userOnly; uid_t userId; const char* incFilter; Hashtable* pidWhiteList; @@ -131,7 +131,7 @@ typedef struct ProcessList_ { bool countCPUsFromZero; bool updateProcessNames; bool accountGuestInCPUMeter; - const char **treeStr; + bool userOnly; } ProcessList; diff --git a/RichString.c b/RichString.c index 5b79d8cd..34720c1b 100644 --- a/RichString.c +++ b/RichString.c @@ -154,6 +154,7 @@ void RichString_prune(RichString* this) { free(this->chptr); this->chptr = this->chstr; this->chlen = 0; + RichString_setChar(this, 0, 0); } void RichString_setAttr(RichString* this, int attrs) { @@ -27,8 +27,8 @@ typedef struct Settings_ { ProcessList* pl; Header* header; int colorScheme; - bool changed; int delay; + bool changed; } Settings; }*/ @@ -20,8 +20,8 @@ typedef struct Settings_ { ProcessList* pl; Header* header; int colorScheme; - bool changed; int delay; + bool changed; } Settings; |