mem: bring this all together (linux).

This commit is contained in:
Alastair Poole 2020-04-22 14:30:30 +01:00
parent 2b03c8ce0b
commit 20c420967a
4 changed files with 99 additions and 54 deletions

View File

@ -142,23 +142,45 @@ _parse_line(const char *line)
return atol(tok);
}
static void
_mem_shared(Proc_Info *proc, int pid)
{
FILE *f;
char buf[1024];
unsigned int dummy, shared, resident, data;
f = fopen(eina_slstr_printf("/proc/%d/statm", pid), "r");
if (!f) return;
if (fgets(buf, sizeof(buf), f))
{
if (sscanf(buf, "%u %u %u %u %u %u %u", &dummy, &resident, &shared, &dummy,
&dummy, &data, &dummy) == 7)
{
proc->mem_shared = (resident + shared + data) * getpagesize();
}
}
fclose(f);
}
static Eina_List *
_process_list_linux_get(void)
{
Eina_List *files, *list;
FILE *f;
char *name, *link, state, line[4096], name[1024];
char *n, *link, state, line[4096], name[1024];
int pid, res, utime, stime, cutime, cstime, uid, psr, pri, nice, numthreads;
unsigned int mem_size, mem_rss, flags;
unsigned int mem_virt, mem_rss, flags;
int pagesize = getpagesize();
list = NULL;
files = ecore_file_ls("/proc");
EINA_LIST_FREE(files, name)
EINA_LIST_FREE(files, n)
{
pid = atoi(name);
free(name);
pid = atoi(n);
free(n);
if (!pid) continue;
@ -174,7 +196,7 @@ _process_list_linux_get(void)
name[end - start] = '\0';
res = sscanf(end + 2, "%c %d %d %d %d %d %u %u %u %u %u %d %d %d %d %d %d %u %u %d %u %u %u %u %u %u %u %u %d %d %d %d %u %d %d %d %d %d %d %d %d %d",
&state, &dummy, &dummy, &dummy, &dummy, &dummy, &flags, &dummy, &dummy, &dummy, &dummy, &utime, &stime, &cutime, &cstime,
&pri, &nice, &numthreads, &dummy, &dummy, &mem_size, &mem_rss, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy,
&pri, &nice, &numthreads, &dummy, &dummy, &mem_virt, &mem_rss, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy,
&dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &psr, &dummy, &dummy, &dummy, &dummy, &dummy);
}
@ -201,6 +223,8 @@ _process_list_linux_get(void)
Proc_Info *p = calloc(1, sizeof(Proc_Info));
if (!p) return NULL;
_mem_shared(p, pid);
link = ecore_file_readlink(eina_slstr_printf("/proc/%d/exe", pid));
if (link)
{
@ -231,7 +255,7 @@ _process_list_linux_get(void)
p->command = strdup(name);
p->state = _process_state_name(state);
p->cpu_time = utime + stime;
p->mem_size = mem_size;
p->mem_virt = mem_virt;
p->mem_rss = mem_rss * pagesize;
p->nice = nice;
p->priority = pri;
@ -252,7 +276,7 @@ proc_info_by_pid(int pid)
FILE *f;
char *link, state, line[4096], name[1024];
int res, dummy, utime, stime, cutime, cstime, uid, psr;
unsigned int mem_size, mem_rss, pri, nice, numthreads;
unsigned int mem_virt, mem_rss, pri, nice, numthreads;
f = fopen(eina_slstr_printf("/proc/%d/stat", pid), "r");
if (!f) return NULL;
@ -266,7 +290,7 @@ proc_info_by_pid(int pid)
res = sscanf(end + 2, "%c %d %d %d %d %d %u %u %u %u %u %d %d %d %d %d %d %u %u %d %u %u %u %u %u %u %u %u %d %d %d %d %u %d %d %d %d %d %d %d %d %d",
&state, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &utime, &stime, &cutime, &cstime,
&pri, &nice, &numthreads, &dummy, &dummy, &mem_size, &mem_rss, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy,
&pri, &nice, &numthreads, &dummy, &dummy, &mem_virt, &mem_rss, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &dummy,
&dummy, &dummy, &dummy, &dummy, &dummy, &dummy, &psr, &dummy, &dummy, &dummy, &dummy, &dummy);
}
fclose(f);
@ -289,6 +313,8 @@ proc_info_by_pid(int pid)
Proc_Info *p = calloc(1, sizeof(Proc_Info));
if (!p) return NULL;
_mem_shared(p, pid);
link = ecore_file_readlink(eina_slstr_printf("/proc/%d/exe", pid));
if (link)
{
@ -316,7 +342,7 @@ proc_info_by_pid(int pid)
p->command = strdup(name);
p->state = _process_state_name(state);
p->cpu_time = utime + stime;
p->mem_size = mem_size;
p->mem_virt = mem_virt;
p->mem_rss = mem_rss * getpagesize();
p->priority = pri;
p->nice = nice;
@ -356,7 +382,7 @@ proc_info_by_pid(int pid)
p->cpu_id = kp->p_cpuid;
p->state = _process_state_name(kp->p_stat);
p->cpu_time = kp->p_uticks + kp->p_sticks + kp->p_iticks;
p->mem_size = p->mem_cached = (kp->p_vm_tsize * pagesize) + (kp->p_vm_dsize * pagesize) + (kp->p_vm_ssize * pagesize);
p->mem_virt = p->mem_cached = (kp->p_vm_tsize * pagesize) + (kp->p_vm_dsize * pagesize) + (kp->p_vm_ssize * pagesize);
p->mem_rss = kp->p_vm_rssize * pagesize;
p->priority = kp->p_priority - PZERO;
p->nice = kp->p_nice - NZERO;
@ -419,7 +445,7 @@ _process_list_openbsd_get(void)
p->cpu_id = kp->p_cpuid;
p->state = _process_state_name(kp->p_stat);
p->cpu_time = kp->p_uticks + kp->p_sticks + kp->p_iticks;
p->mem_cached = p->mem_size = (kp->p_vm_tsize * pagesize) + (kp->p_vm_dsize * pagesize) + (kp->p_vm_ssize * pagesize);
p->mem_cached = p->mem_virt = (kp->p_vm_tsize * pagesize) + (kp->p_vm_dsize * pagesize) + (kp->p_vm_ssize * pagesize);
p->mem_rss = kp->p_vm_rssize * pagesize;
p->priority = kp->p_priority - PZERO;
p->nice = kp->p_nice - NZERO;
@ -485,7 +511,7 @@ _process_list_macos_get(void)
p->cpu_time = taskinfo.ptinfo.pti_total_user + taskinfo.ptinfo.pti_total_system;
p->cpu_time /= 10000000;
p->state = _process_state_name(taskinfo.pbsd.pbi_status);
p->mem_size = taskinfo.ptinfo.pti_virtual_size;
p->mem_virt = taskinfo.ptinfo.pti_virtual_size;
p->mem_rss = taskinfo.ptinfo.pti_resident_size;
p->priority = taskinfo.ptinfo.pti_priority;
p->nice = taskinfo.pbsd.pbi_nice;
@ -523,7 +549,7 @@ proc_info_by_pid(int pid)
p->cpu_time = taskinfo.ptinfo.pti_total_user + taskinfo.ptinfo.pti_total_system;
p->cpu_time /= 10000000;
p->state = _process_state_name(taskinfo.pbsd.pbi_status);
p->mem_size = taskinfo.ptinfo.pti_virtual_size;
p->mem_virt = taskinfo.ptinfo.pti_virtual_size;
p->mem_rss = taskinfo.ptinfo.pti_resident_size;
p->priority = taskinfo.ptinfo.pti_priority;
p->nice = taskinfo.pbsd.pbi_nice;
@ -581,7 +607,7 @@ _process_list_freebsd_fallback_get(void)
p->cpu_time = (usage->ru_utime.tv_sec * 1000000) + usage->ru_utime.tv_usec + (usage->ru_stime.tv_sec * 1000000) + usage->ru_stime.tv_usec;
p->cpu_time /= 10000;
p->state = _process_state_name(kp.ki_stat);
p->mem_size = kp.ki_size;
p->mem_virt = kp.ki_size;
p->mem_rss = kp.ki_rssize * pagesize;
p->mem_cached = (kp.ki_tsize + kp.ki_dsize + kp.ki_ssize) * pagesize;
p->nice = kp.ki_nice - NZERO;
@ -670,7 +696,7 @@ _process_list_freebsd_get(void)
p->cpu_time = (usage->ru_utime.tv_sec * 1000000) + usage->ru_utime.tv_usec + (usage->ru_stime.tv_sec * 1000000) + usage->ru_stime.tv_usec;
p->cpu_time /= 10000;
p->state = _process_state_name(kp->ki_stat);
p->mem_size = kp->ki_size;
p->mem_virt = kp->ki_size;
p->mem_rss = kp->ki_rssize * pagesize;
p->mem_cached = (kp->ki_tsize + kp->ki_dsize + kp->ki_ssize) * pagesize;
p->nice = kp->ki_nice - NZERO;
@ -763,7 +789,7 @@ proc_info_by_pid(int pid)
p->cpu_time = (usage->ru_utime.tv_sec * 1000000) + usage->ru_utime.tv_usec + (usage->ru_stime.tv_sec * 1000000) + usage->ru_stime.tv_usec;
p->cpu_time /= 10000;
p->state = _process_state_name(kp.ki_stat);
p->mem_size = kp.ki_size;
p->mem_virt = kp.ki_size;
p->mem_rss = kp.ki_rssize * pagesize;
p->mem_cached = (kp.ki_tsize + kp.ki_dsize + kp.ki_ssize) * pagesize;
p->nice = kp.ki_nice - NZERO;

View File

@ -34,9 +34,9 @@ typedef struct _Proc_Info
int8_t priority;
int cpu_id;
int32_t numthreads;
int64_t mem_size;
int64_t mem_virt;
int64_t mem_rss;
int64_t mem_cached;
int64_t mem_shared;
double cpu_usage;
char *command;
char *arguments;

View File

@ -581,8 +581,8 @@ _sort_by_size(const void *p1, const void *p2)
inf1 = p1; inf2 = p2;
size1 = inf1->mem_size;
size2 = inf2->mem_size;
size1 = inf1->mem_virt;
size2 = inf2->mem_virt;
if (size1 < size2)
return -1;
@ -980,10 +980,9 @@ _content_get(void *data, Evas_Object *obj, const char *source)
r = evas_object_data_get(l, "rect");
evas_object_size_hint_min_set(r, w, 1);
// printf("size %lu and %lu \n", _mem_adjust(ui->data_unit, proc->mem_size >> 10), _mem_adjust(ui->data_unit, proc->mem_cached >> 10));
evas_object_geometry_get(ui->btn_size, NULL, NULL, &w, NULL);
l = evas_object_data_get(it->obj, "proc_size");
elm_object_text_set(l, eina_slstr_printf("%lu %c ", _mem_adjust(ui->data_unit, proc->mem_size >> 10), ui->data_unit));
elm_object_text_set(l, eina_slstr_printf("%lu %c ", _mem_adjust(ui->data_unit, proc->mem_shared >> 10), ui->data_unit));
evas_object_geometry_get(l, NULL, NULL, &ow, NULL);
if (ow > w) evas_object_size_hint_min_set(ui->btn_size, w, 1);
r = evas_object_data_get(l, "rect");
@ -1400,13 +1399,16 @@ _process_panel_update(void *data)
if (proc->arguments)
elm_object_text_set(ui->entry_pid_cmd_args, proc->arguments);
else
elm_object_text_set(ui->entry_pid_cmd_args, "");
elm_object_text_set(ui->entry_pid_pid, eina_slstr_printf("%d", proc->pid));
elm_object_text_set(ui->entry_pid_uid, eina_slstr_printf("%d", proc->uid));
elm_object_text_set(ui->entry_pid_cpu, eina_slstr_printf("%d", proc->cpu_id));
elm_object_text_set(ui->entry_pid_threads, eina_slstr_printf("%d", proc->numthreads));
elm_object_text_set(ui->entry_pid_size, eina_slstr_printf("%lld bytes", proc->mem_size));
elm_object_text_set(ui->entry_pid_virt, eina_slstr_printf("%lld bytes", proc->mem_virt));
elm_object_text_set(ui->entry_pid_rss, eina_slstr_printf("%lld bytes", proc->mem_rss));
elm_object_text_set(ui->entry_pid_shared, eina_slstr_printf("%lld bytes", proc->mem_shared));
elm_object_text_set(ui->entry_pid_nice, eina_slstr_printf("%d", proc->nice));
elm_object_text_set(ui->entry_pid_pri, eina_slstr_printf("%d", proc->priority));
elm_object_text_set(ui->entry_pid_state, proc->state);
@ -1859,6 +1861,7 @@ _ui_process_panel_add(Ui *ui)
{
Evas_Object *parent, *panel, *hbox, *frame, *scroller, *table;
Evas_Object *label, *list, *entry, *button, *border;
int i = 0;
parent = ui->content;
@ -1918,7 +1921,7 @@ _ui_process_panel_add(Ui *ui)
label = elm_label_add(parent);
elm_object_text_set(label, "Command:");
evas_object_show(label);
elm_table_pack(table, label, 0, 0, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_cmd = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -1928,13 +1931,13 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 0, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Command line:");
evas_object_show(label);
elm_table_pack(table, label, 0, 1, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_cmd_args = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -1944,13 +1947,13 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 1, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "PID:");
evas_object_show(label);
elm_table_pack(table, label, 0, 2, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_pid = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -1960,12 +1963,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 2, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Username:");
evas_object_show(label);
elm_table_pack(table, label, 0, 3, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_user = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -1975,12 +1978,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 3, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "UID:");
evas_object_show(label);
elm_table_pack(table, label, 0, 4, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_uid = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -1990,7 +1993,7 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 4, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
#if defined(__MacOS__)
@ -1999,7 +2002,7 @@ _ui_process_panel_add(Ui *ui)
elm_object_text_set(label, "CPU #:");
#endif
evas_object_show(label);
elm_table_pack(table, label, 0, 5, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_cpu = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2009,12 +2012,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 5, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Threads:");
evas_object_show(label);
elm_table_pack(table, label, 0, 6, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_threads = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2024,14 +2027,14 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 6, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Total memory:");
elm_object_text_set(label, " Shared memory:");
evas_object_show(label);
elm_table_pack(table, label, 0, 7, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_size = entry = elm_entry_add(parent);
ui->entry_pid_shared = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_entry_single_line_set(entry, EINA_TRUE);
@ -2039,12 +2042,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 7, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, " Reserved memory:");
evas_object_show(label);
elm_table_pack(table, label, 0, 8, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_rss = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2054,12 +2057,27 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 8, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Virtual memory:");
evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_virt = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Nice:");
evas_object_show(label);
elm_table_pack(table, label, 0, 9, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_nice = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2069,12 +2087,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 9, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "Priority:");
evas_object_show(label);
elm_table_pack(table, label, 0, 10, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_pri = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2084,12 +2102,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 10, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "State:");
evas_object_show(label);
elm_table_pack(table, label, 0, 11, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_state = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2099,12 +2117,12 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 11, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent);
elm_object_text_set(label, "CPU %:");
evas_object_show(label);
elm_table_pack(table, label, 0, 12, 1, 1);
elm_table_pack(table, label, 0, i, 1, 1);
ui->entry_pid_cpu_usage = entry = elm_entry_add(parent);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -2114,14 +2132,14 @@ _ui_process_panel_add(Ui *ui)
elm_entry_editable_set(entry, EINA_FALSE);
evas_object_show(entry);
elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
elm_table_pack(table, entry, 1, 12, 1, 1);
elm_table_pack(table, entry, 1, i++, 1, 1);
hbox = elm_box_add(parent);
evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_horizontal_set(hbox, EINA_TRUE);
evas_object_show(hbox);
elm_table_pack(table, hbox, 1, 13, 1, 1);
elm_table_pack(table, hbox, 1, i, 1, 1);
border = elm_frame_add(parent);
evas_object_size_hint_weight_set(border, EVAS_HINT_EXPAND, 0);

View File

@ -110,8 +110,9 @@ typedef struct Ui
Evas_Object *entry_pid_uid;
Evas_Object *entry_pid_cpu;
Evas_Object *entry_pid_threads;
Evas_Object *entry_pid_size;
Evas_Object *entry_pid_virt;
Evas_Object *entry_pid_rss;
Evas_Object *entry_pid_shared;
Evas_Object *entry_pid_nice;
Evas_Object *entry_pid_pri;
Evas_Object *entry_pid_state;