forked from enlightenment/evisum
parent
30e2b481bf
commit
70e03a6df2
|
@ -9,6 +9,26 @@
|
|||
#include "evisum_server.h"
|
||||
#include "ui/ui.h"
|
||||
|
||||
static Eina_Bool
|
||||
_shutdown_cb(void *data, int type, void *event EINA_UNUSED)
|
||||
{
|
||||
Ui *ui = data;
|
||||
|
||||
if (ui->cpu.win) evas_object_del(ui->cpu.win);
|
||||
if (ui->mem.win) evas_object_del(ui->mem.win);
|
||||
if (ui->disk.win) evas_object_del(ui->disk.win);
|
||||
if (ui->sensors.win) evas_object_del(ui->sensors.win);
|
||||
if (ui->win) evas_object_del(ui->win);
|
||||
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_signals(Ui *ui)
|
||||
{
|
||||
ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _shutdown_cb, ui);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
@ -44,6 +64,7 @@ main(int argc, char **argv)
|
|||
ecore_init();
|
||||
config_init();
|
||||
elm_init(argc, argv);
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
|
||||
#if ENABLE_NLS
|
||||
setlocale(LC_ALL, "");
|
||||
|
@ -58,12 +79,14 @@ main(int argc, char **argv)
|
|||
ui = evisum_ui_init();
|
||||
if (!ui) return 1;
|
||||
|
||||
_signals(ui);
|
||||
|
||||
evisum_server_init(ui);
|
||||
evisum_ui_activate(ui, action, pid);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
evisum_ui_del(ui);
|
||||
evisum_ui_shutdown(ui);
|
||||
evisum_server_shutdown();
|
||||
|
||||
elm_shutdown();
|
||||
|
|
|
@ -414,14 +414,6 @@ evisum_ui_main_menu_create(Ui *ui, Evas_Object *parent)
|
|||
ui->main_menu = o;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evisum_ui_can_exit(Ui *ui)
|
||||
{
|
||||
if (!ui->win && !ui->cpu.win && !ui->mem.win && !ui->sensors.win)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_init_system_probe(Ui *ui)
|
||||
{
|
||||
|
@ -468,7 +460,7 @@ evisum_ui_activate(Ui *ui, Evisum_Action action, int pid)
|
|||
}
|
||||
|
||||
void
|
||||
evisum_ui_del(Ui *ui)
|
||||
evisum_ui_shutdown(Ui *ui)
|
||||
{
|
||||
evisum_icon_cache_shutdown();
|
||||
|
||||
|
|
|
@ -91,10 +91,7 @@ Ui *
|
|||
evisum_ui_init(void);
|
||||
|
||||
void
|
||||
evisum_ui_del(Ui *ui);
|
||||
|
||||
Eina_Bool
|
||||
evisum_ui_can_exit(Ui *ui);
|
||||
evisum_ui_shutdown(Ui *ui);
|
||||
|
||||
void
|
||||
evisum_ui_main_menu_create(Ui *ui, Evas_Object *parent);
|
||||
|
|
|
@ -362,9 +362,6 @@ _win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
|||
free(ad->cpu_order);
|
||||
free(ad);
|
||||
ui->cpu.win = NULL;
|
||||
|
||||
if (evisum_ui_can_exit(ui))
|
||||
ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -466,7 +463,7 @@ _graph(Ui *ui, Evas_Object *parent)
|
|||
rec = evas_object_rectangle_add(evas_object_evas_get(parent));
|
||||
evas_object_size_hint_align_set(rec, FILL, FILL);
|
||||
evas_object_size_hint_weight_set(rec, EXPAND, EXPAND);
|
||||
evas_object_color_set(rec, 0, 0, 0, 128);
|
||||
evas_object_color_set(rec, 0, 0, 0, 64);
|
||||
evas_object_show(rec);
|
||||
elm_table_pack(tbl, rec, 0, 0, 4, ad->cpu_count);
|
||||
|
||||
|
|
|
@ -261,7 +261,7 @@ _disks_poll_timer_cb(void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
_win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ui *ui = data;
|
||||
|
@ -277,9 +277,6 @@ _win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
|
||||
eina_lock_free(&_lock);
|
||||
ui->disk.win = NULL;
|
||||
|
||||
if (evisum_ui_can_exit(ui))
|
||||
ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -446,6 +443,7 @@ ui_win_disk_add(Ui *ui)
|
|||
eina_lock_new(&_lock);
|
||||
|
||||
ui->disk.win = win = elm_win_util_standard_add("evisum", _("Storage"));
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||
evisum_ui_background_random_add(win, (evisum_ui_effects_enabled_get() ||
|
||||
|
@ -560,7 +558,7 @@ ui_win_disk_add(Ui *ui)
|
|||
else
|
||||
elm_win_center(win, 1, 1);
|
||||
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, ui);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, ui);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize_cb, ui);
|
||||
evas_object_show(win);
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ _memory_update(void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
_win_del_cb(void *data, Evas_Object *obj,
|
||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Widgets *widgets;
|
||||
|
@ -138,9 +138,6 @@ _win_del_cb(void *data, Evas_Object *obj,
|
|||
|
||||
evas_object_del(obj);
|
||||
ui->mem.win = NULL;
|
||||
|
||||
if (evisum_ui_can_exit(ui))
|
||||
ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -173,6 +170,7 @@ ui_win_memory_add(Ui *ui)
|
|||
system_memory_usage_get(&memory);
|
||||
|
||||
ui->mem.win = win = elm_win_util_standard_add("evisum", _("Memory Usage"));
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||
evisum_ui_background_random_add(win, (evisum_ui_effects_enabled_get() ||
|
||||
|
@ -247,7 +245,7 @@ ui_win_memory_add(Ui *ui)
|
|||
elm_object_content_set(win, frame);
|
||||
|
||||
evas_object_data_set(win, "widgets", widgets);
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, ui);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, ui);
|
||||
|
||||
if (ui->mem.width > 0 && ui->mem.height > 0)
|
||||
evas_object_resize(win, ui->mem.width, ui->mem.height);
|
||||
|
|
|
@ -607,6 +607,15 @@ _bring_in(void *data)
|
|||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_process_list_cancel_cb(void *data, Ecore_Thread *thread)
|
||||
{
|
||||
Ui_Data *pd = data;
|
||||
|
||||
_proc_pid_cpu_times_free(pd);
|
||||
}
|
||||
|
||||
static void
|
||||
_process_list_feedback_cb(void *data, Ecore_Thread *thread EINA_UNUSED,
|
||||
void *msg EINA_UNUSED)
|
||||
|
@ -720,6 +729,7 @@ _process_list(void *data, Ecore_Thread *thread)
|
|||
|
||||
while (1)
|
||||
{
|
||||
if (ecore_thread_check(thread)) return;
|
||||
ecore_thread_feedback(thread, ui);
|
||||
for (int i = 0; i < delay * 4; i++)
|
||||
{
|
||||
|
@ -1536,7 +1546,7 @@ _evisum_config_changed_cb(void *data, int type EINA_UNUSED, void *event EINA_UNU
|
|||
}
|
||||
|
||||
static void
|
||||
_win_del_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
_win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ui *ui;
|
||||
|
@ -1574,9 +1584,6 @@ _win_del_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
eina_lock_free(&_lock);
|
||||
|
||||
free(pd);
|
||||
|
||||
if (evisum_ui_can_exit(ui))
|
||||
ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1599,11 +1606,12 @@ ui_process_list_win_add(Ui *ui)
|
|||
pd->ui = ui;
|
||||
|
||||
ui->win = win = elm_win_util_standard_add("evisum", "evisum");
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
elm_win_title_set(win, _("EFL System Monitor"));
|
||||
icon = elm_icon_add(win);
|
||||
elm_icon_standard_set(icon, "evisum");
|
||||
elm_win_icon_object_set(win, icon);
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, pd);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
||||
|
||||
if (_evisum_config->width > 1 && _evisum_config->height > 1)
|
||||
evas_object_resize(win, _evisum_config->width, _evisum_config->height);
|
||||
|
@ -1630,7 +1638,7 @@ ui_process_list_win_add(Ui *ui)
|
|||
pd->thread =
|
||||
ecore_thread_feedback_run(_process_list,
|
||||
_process_list_feedback_cb,
|
||||
NULL, NULL, pd, EINA_FALSE);
|
||||
_process_list_cancel_cb, NULL, pd, EINA_FALSE);
|
||||
_process_list_update(pd);
|
||||
|
||||
evas_object_event_callback_add(ui->win, EVAS_CALLBACK_RESIZE,
|
||||
|
|
|
@ -1295,7 +1295,7 @@ _tabs_add(Evas_Object *parent, Ui_Data *pd)
|
|||
}
|
||||
|
||||
static void
|
||||
_win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Evas_Object *win;
|
||||
|
@ -1340,6 +1340,7 @@ ui_process_win_add(Evas_Object *parent_win, int pid, const char *cmd, int poll_d
|
|||
pd->sort_cb = _sort_by_cpu_usage;
|
||||
|
||||
pd->win = win = elm_win_util_standard_add("evisum", "evisum");
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
_win_title_set(win, "%s (%d)", cmd, pid);
|
||||
ic = elm_icon_add(win);
|
||||
elm_icon_standard_set(ic, "evisum");
|
||||
|
@ -1371,7 +1372,7 @@ ui_process_win_add(Evas_Object *parent_win, int pid, const char *cmd, int poll_d
|
|||
|
||||
elm_box_pack_end(box, pd->content);
|
||||
elm_object_content_set(win, box);
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, pd);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE,
|
||||
_win_resize_cb, pd);
|
||||
|
||||
|
|
|
@ -230,7 +230,7 @@ _sensors_update(void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
_win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ui *ui = data;
|
||||
|
@ -241,9 +241,6 @@ _win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
|
||||
evas_object_del(obj);
|
||||
ui->sensors.win = NULL;
|
||||
|
||||
if (evisum_ui_can_exit(ui))
|
||||
ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -268,6 +265,7 @@ ui_win_sensors_add(Ui *ui)
|
|||
}
|
||||
|
||||
ui->sensors.win = win = elm_win_util_standard_add("evisum", _("Sensors"));
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||
evisum_ui_background_random_add(win, (evisum_ui_effects_enabled_get() ||
|
||||
|
@ -322,7 +320,7 @@ ui_win_sensors_add(Ui *ui)
|
|||
elm_box_pack_end(box, frame);
|
||||
elm_object_content_set(win, box);
|
||||
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, ui);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, ui);
|
||||
|
||||
if (ui->sensors.width > 0 && ui->sensors.height > 0)
|
||||
evas_object_resize(win, ui->sensors.width, ui->sensors.height);
|
||||
|
|
|
@ -289,7 +289,7 @@ typedef struct {
|
|||
} Animate_Data;
|
||||
|
||||
static void
|
||||
_win_del_cb(void *data, Evas_Object *obj,
|
||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Animate_Data *ad;
|
||||
|
@ -308,7 +308,20 @@ _win_del_cb(void *data, Evas_Object *obj,
|
|||
}
|
||||
|
||||
static void
|
||||
_about_resize_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
_btn_close_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Animate_Data *ad;
|
||||
Ui *ui;
|
||||
|
||||
ad = data;
|
||||
ui = ad->ui;
|
||||
|
||||
evas_object_del(ui->win_about);
|
||||
}
|
||||
|
||||
static void
|
||||
_about_resize_cb(void *data, Evas *e, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Animate_Data *ad = data;
|
||||
|
@ -403,6 +416,7 @@ evisum_about_window_show(void *data)
|
|||
if (ui->win_about) return;
|
||||
|
||||
ui->win_about = win = elm_win_add(ui->win, "evisum", ELM_WIN_DIALOG_BASIC);
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
elm_win_title_set(win, _("About"));
|
||||
|
||||
/* All that moves */
|
||||
|
@ -446,8 +460,8 @@ evisum_about_window_show(void *data)
|
|||
about->pos2 = h + ih + ih;
|
||||
about->im_upwards = 1;
|
||||
about->animator = ecore_animator_add(about_anim, about);
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, about);
|
||||
evas_object_smart_callback_add(win, "resize", _about_resize_cb, about);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, about);
|
||||
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _about_resize_cb, about);
|
||||
|
||||
/* Version overlay */
|
||||
|
||||
|
@ -497,7 +511,7 @@ evisum_about_window_show(void *data)
|
|||
evas_object_color_set(rec, 0, 0, 0, 128);
|
||||
evas_object_show(rec);
|
||||
|
||||
evas_object_smart_callback_add(btn, "clicked", _win_del_cb, about);
|
||||
evas_object_smart_callback_add(btn, "clicked", _btn_close_cb, about);
|
||||
|
||||
elm_table_pack(tbl, label, 0, 1, 1, 1);
|
||||
elm_table_pack(tbl, im, 0, 1, 1, 1);
|
||||
|
|
Loading…
Reference in New Issue