ui: rearrangement
This commit is contained in:
parent
dd4ab10381
commit
650250b196
264
src/bin/ui/ui.c
264
src/bin/ui/ui.c
|
@ -49,138 +49,6 @@ _config_load(Ui *ui)
|
||||||
evas_object_resize(ui->win, _evisum_config->width, _evisum_config->height);
|
evas_object_resize(ui->win, _evisum_config->width, _evisum_config->height);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_system_stats(void *data, Ecore_Thread *thread)
|
|
||||||
{
|
|
||||||
Ui *ui = data;
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
results_t *results = system_stats_get();
|
|
||||||
if (!results)
|
|
||||||
{
|
|
||||||
ecore_main_loop_quit();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ecore_thread_feedback(thread, results);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
|
||||||
{
|
|
||||||
if (ecore_thread_check(thread)) return;
|
|
||||||
|
|
||||||
if (ui->skip_wait)
|
|
||||||
{
|
|
||||||
ui->skip_wait = EINA_FALSE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
usleep(250000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
evisum_size_format(unsigned long value)
|
|
||||||
{
|
|
||||||
const char *s;
|
|
||||||
double res = value;
|
|
||||||
|
|
||||||
if (value > (1024 * 1024 * 1024))
|
|
||||||
{
|
|
||||||
res /= (1024 * 1024 * 1024);
|
|
||||||
s = eina_slstr_printf("%1.1f %c", res, DATA_UNIT_GB);
|
|
||||||
}
|
|
||||||
else if (value > (1024 * 1024))
|
|
||||||
{
|
|
||||||
res /= (1024 * 1024);
|
|
||||||
s = eina_slstr_printf("%1.1f %c", res, DATA_UNIT_MB);
|
|
||||||
}
|
|
||||||
else if (value > (1024))
|
|
||||||
{
|
|
||||||
res /= (1024);
|
|
||||||
s = eina_slstr_printf("%1.1f %c", res, DATA_UNIT_KB);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
s = eina_slstr_printf("%1.0f %c", res, DATA_UNIT_B);
|
|
||||||
}
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *
|
|
||||||
_path_append(const char *path, const char *file)
|
|
||||||
{
|
|
||||||
char *concat;
|
|
||||||
int len;
|
|
||||||
char separator = '/';
|
|
||||||
|
|
||||||
len = strlen(path) + strlen(file) + 2;
|
|
||||||
concat = malloc(len * sizeof(char));
|
|
||||||
snprintf(concat, len, "%s%c%s", path, separator, file);
|
|
||||||
|
|
||||||
return concat;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
evisum_icon_path_get(const char *name)
|
|
||||||
{
|
|
||||||
char *path;
|
|
||||||
const char *icon_path, *directory = PACKAGE_DATA_DIR "/images";
|
|
||||||
icon_path = name;
|
|
||||||
|
|
||||||
path = _path_append(directory, eina_slstr_printf("%s.png", name));
|
|
||||||
if (path)
|
|
||||||
{
|
|
||||||
if (ecore_file_exists(path))
|
|
||||||
icon_path = eina_slstr_printf("%s", path);
|
|
||||||
|
|
||||||
free(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
return icon_path;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_system_stats_feedback_cb(void *data, Ecore_Thread *thread, void *msg)
|
|
||||||
{
|
|
||||||
Ui *ui;
|
|
||||||
Evas_Object *progress;
|
|
||||||
results_t *results;
|
|
||||||
double ratio, value, cpu_usage = 0.0;
|
|
||||||
|
|
||||||
ui = data;
|
|
||||||
results = msg;
|
|
||||||
|
|
||||||
if (ecore_thread_check(thread))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
ui_tab_cpu_update(ui, results);
|
|
||||||
ui_tab_memory_update(ui, results);
|
|
||||||
ui_tab_disk_update(ui);
|
|
||||||
ui_tab_misc_update(ui, results);
|
|
||||||
|
|
||||||
for (int i = 0; i < results->cpu_count; i++)
|
|
||||||
{
|
|
||||||
cpu_usage += results->cores[i]->percent;
|
|
||||||
free(results->cores[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
cpu_usage = cpu_usage / system_cpu_online_count_get();
|
|
||||||
|
|
||||||
elm_progressbar_value_set(ui->progress_cpu, cpu_usage / 100);
|
|
||||||
|
|
||||||
progress = ui->progress_mem;
|
|
||||||
ratio = results->memory.total / 100.0;
|
|
||||||
value = results->memory.used / ratio;
|
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
|
||||||
elm_progressbar_unit_format_set(progress, eina_slstr_printf("%s / %s",
|
|
||||||
evisum_size_format(results->memory.used << 10),
|
|
||||||
evisum_size_format(results->memory.total << 10)));
|
|
||||||
out:
|
|
||||||
free(results->cores);
|
|
||||||
free(results);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_sort_by_pid(const void *p1, const void *p2)
|
_sort_by_pid(const void *p1, const void *p2)
|
||||||
{
|
{
|
||||||
|
@ -1695,6 +1563,67 @@ _evisum_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
_config_save(ui);
|
_config_save(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
evisum_size_format(unsigned long value)
|
||||||
|
{
|
||||||
|
const char *s;
|
||||||
|
double res = value;
|
||||||
|
|
||||||
|
if (value > (1024 * 1024 * 1024))
|
||||||
|
{
|
||||||
|
res /= (1024 * 1024 * 1024);
|
||||||
|
s = eina_slstr_printf("%1.1f %c", res, DATA_UNIT_GB);
|
||||||
|
}
|
||||||
|
else if (value > (1024 * 1024))
|
||||||
|
{
|
||||||
|
res /= (1024 * 1024);
|
||||||
|
s = eina_slstr_printf("%1.1f %c", res, DATA_UNIT_MB);
|
||||||
|
}
|
||||||
|
else if (value > (1024))
|
||||||
|
{
|
||||||
|
res /= (1024);
|
||||||
|
s = eina_slstr_printf("%1.1f %c", res, DATA_UNIT_KB);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s = eina_slstr_printf("%1.0f %c", res, DATA_UNIT_B);
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
_path_append(const char *path, const char *file)
|
||||||
|
{
|
||||||
|
char *concat;
|
||||||
|
int len;
|
||||||
|
char separator = '/';
|
||||||
|
|
||||||
|
len = strlen(path) + strlen(file) + 2;
|
||||||
|
concat = malloc(len * sizeof(char));
|
||||||
|
snprintf(concat, len, "%s%c%s", path, separator, file);
|
||||||
|
|
||||||
|
return concat;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
evisum_icon_path_get(const char *name)
|
||||||
|
{
|
||||||
|
char *path;
|
||||||
|
const char *icon_path, *directory = PACKAGE_DATA_DIR "/images";
|
||||||
|
icon_path = name;
|
||||||
|
|
||||||
|
path = _path_append(directory, eina_slstr_printf("%s.png", name));
|
||||||
|
if (path)
|
||||||
|
{
|
||||||
|
if (ecore_file_exists(path))
|
||||||
|
icon_path = eina_slstr_printf("%s", path);
|
||||||
|
|
||||||
|
free(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
return icon_path;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evisum_ui_shutdown(Ui *ui)
|
evisum_ui_shutdown(Ui *ui)
|
||||||
{
|
{
|
||||||
|
@ -1733,6 +1662,77 @@ evisum_ui_shutdown(Ui *ui)
|
||||||
eina_lock_free(&_lock);
|
eina_lock_free(&_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_system_stats(void *data, Ecore_Thread *thread)
|
||||||
|
{
|
||||||
|
Ui *ui = data;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
results_t *results = system_stats_get();
|
||||||
|
if (!results)
|
||||||
|
{
|
||||||
|
ecore_main_loop_quit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ecore_thread_feedback(thread, results);
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
if (ecore_thread_check(thread)) return;
|
||||||
|
|
||||||
|
if (ui->skip_wait)
|
||||||
|
{
|
||||||
|
ui->skip_wait = EINA_FALSE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
usleep(250000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_system_stats_feedback_cb(void *data, Ecore_Thread *thread, void *msg)
|
||||||
|
{
|
||||||
|
Ui *ui;
|
||||||
|
Evas_Object *progress;
|
||||||
|
results_t *results;
|
||||||
|
double ratio, value, cpu_usage = 0.0;
|
||||||
|
|
||||||
|
ui = data;
|
||||||
|
results = msg;
|
||||||
|
|
||||||
|
if (ecore_thread_check(thread))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
ui_tab_cpu_update(ui, results);
|
||||||
|
ui_tab_memory_update(ui, results);
|
||||||
|
ui_tab_disk_update(ui);
|
||||||
|
ui_tab_misc_update(ui, results);
|
||||||
|
|
||||||
|
for (int i = 0; i < results->cpu_count; i++)
|
||||||
|
{
|
||||||
|
cpu_usage += results->cores[i]->percent;
|
||||||
|
free(results->cores[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
cpu_usage = cpu_usage / system_cpu_online_count_get();
|
||||||
|
|
||||||
|
elm_progressbar_value_set(ui->progress_cpu, cpu_usage / 100);
|
||||||
|
|
||||||
|
progress = ui->progress_mem;
|
||||||
|
ratio = results->memory.total / 100.0;
|
||||||
|
value = results->memory.used / ratio;
|
||||||
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
|
elm_progressbar_unit_format_set(progress, eina_slstr_printf("%s / %s",
|
||||||
|
evisum_size_format(results->memory.used << 10),
|
||||||
|
evisum_size_format(results->memory.total << 10)));
|
||||||
|
out:
|
||||||
|
free(results->cores);
|
||||||
|
free(results);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ui_launch(Ui *ui)
|
_ui_launch(Ui *ui)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue