#ifndef __EVISUM_UI_PROCESS_LIST_H__
#define __EVISUM_UI_PROCESS_LIST_H__

#include "evisum_ui.h"

typedef enum {
    PROC_FIELD_CMD = 1,
    PROC_FIELD_UID = 2,
    PROC_FIELD_PID = 3,
    PROC_FIELD_THREADS = 4,
    PROC_FIELD_CPU = 5,
    PROC_FIELD_PRI = 6,
    PROC_FIELD_NICE = 7,
    PROC_FIELD_FILES = 8,
    PROC_FIELD_SIZE = 9,
    PROC_FIELD_VIRT = 10,
    PROC_FIELD_DISK_WRITE = 11,
    PROC_FIELD_DISK_READ = 12,
    PROC_FIELD_NET_IN = 13,
    PROC_FIELD_NET_OUT = 14,
    PROC_FIELD_RSS = 15,
    PROC_FIELD_SHARED = 16,
    PROC_FIELD_STATE = 17,
    PROC_FIELD_TIME = 18,
    PROC_FIELD_CPU_USAGE = 19,
    PROC_FIELD_MAX = 20,
} Proc_Field;

typedef Proc_Field Proc_Sort;

enum {
    PROC_SORT_BY_NONE = 0,
    PROC_SORT_BY_CMD = PROC_FIELD_CMD,
    PROC_SORT_BY_UID = PROC_FIELD_UID,
    PROC_SORT_BY_PID = PROC_FIELD_PID,
    PROC_SORT_BY_THREADS = PROC_FIELD_THREADS,
    PROC_SORT_BY_CPU = PROC_FIELD_CPU,
    PROC_SORT_BY_PRI = PROC_FIELD_PRI,
    PROC_SORT_BY_NICE = PROC_FIELD_NICE,
    PROC_SORT_BY_FILES = PROC_FIELD_FILES,
    PROC_SORT_BY_SIZE = PROC_FIELD_SIZE,
    PROC_SORT_BY_VIRT = PROC_FIELD_VIRT,
    PROC_SORT_BY_DISK_WRITE = PROC_FIELD_DISK_WRITE,
    PROC_SORT_BY_DISK_READ = PROC_FIELD_DISK_READ,
    PROC_SORT_BY_NET_IN = PROC_FIELD_NET_IN,
    PROC_SORT_BY_NET_OUT = PROC_FIELD_NET_OUT,
    PROC_SORT_BY_RSS = PROC_FIELD_RSS,
    PROC_SORT_BY_SHARED = PROC_FIELD_SHARED,
    PROC_SORT_BY_STATE = PROC_FIELD_STATE,
    PROC_SORT_BY_TIME = PROC_FIELD_TIME,
    PROC_SORT_BY_CPU_USAGE = PROC_FIELD_CPU_USAGE,
    PROC_SORT_BY_MAX = PROC_FIELD_MAX,
};

void evisum_ui_process_list_win_add(Evisum_Ui *ui);

#endif
