diff --git a/CREDITS b/CREDITS
index 476b979..621d304 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,3 +1,8 @@
+# Artwork
+
+Beautiful background images of the sky by rasterman.
+In the public domain.
+
# About Evisum (Imagery)
Lichfield Cathedral - West Midlands Constabulary.
diff --git a/data/images/battery.png b/data/images/battery.png
index dae852f..c5b4607 100644
Binary files a/data/images/battery.png and b/data/images/battery.png differ
diff --git a/data/images/effects.png b/data/images/effects.png
new file mode 100644
index 0000000..cccdea1
Binary files /dev/null and b/data/images/effects.png differ
diff --git a/data/images/go-down.png b/data/images/go-down.png
index c02a83a..457b86a 100644
Binary files a/data/images/go-down.png and b/data/images/go-down.png differ
diff --git a/data/images/go-up.png b/data/images/go-up.png
index 1e38916..598df16 100644
Binary files a/data/images/go-up.png and b/data/images/go-up.png differ
diff --git a/data/images/meson.build b/data/images/meson.build
index a5bdbc5..8704f45 100644
--- a/data/images/meson.build
+++ b/data/images/meson.build
@@ -6,4 +6,6 @@ install_data('go-up.png', 'go-down.png',
'sensor.png', 'mount.png', 'ladyhand.png',
'find.png', 'bug.png', 'exit.png', 'cpu.png',
'memory.png', 'storage.png', 'misc.png',
+ 'sky_01.jpg', 'sky_02.jpg', 'sky_03.jpg',
+ 'sky_04.jpg', 'sky_05.jpg', 'effects.png',
install_dir: join_paths(dir_data, 'evisum/images'))
diff --git a/data/images/network.png b/data/images/network.png
index 42ec51f..31b6716 100644
Binary files a/data/images/network.png and b/data/images/network.png differ
diff --git a/data/images/sensor.png b/data/images/sensor.png
index 965f0f6..ce47e1a 100644
Binary files a/data/images/sensor.png and b/data/images/sensor.png differ
diff --git a/data/images/sky_01.jpg b/data/images/sky_01.jpg
new file mode 100644
index 0000000..11bd83c
Binary files /dev/null and b/data/images/sky_01.jpg differ
diff --git a/data/images/sky_02.jpg b/data/images/sky_02.jpg
new file mode 100644
index 0000000..1fae0ba
Binary files /dev/null and b/data/images/sky_02.jpg differ
diff --git a/data/images/sky_03.jpg b/data/images/sky_03.jpg
new file mode 100644
index 0000000..17d74fb
Binary files /dev/null and b/data/images/sky_03.jpg differ
diff --git a/data/images/sky_04.jpg b/data/images/sky_04.jpg
new file mode 100644
index 0000000..a6655b5
Binary files /dev/null and b/data/images/sky_04.jpg differ
diff --git a/data/images/sky_05.jpg b/data/images/sky_05.jpg
new file mode 100644
index 0000000..4e8fbb1
Binary files /dev/null and b/data/images/sky_05.jpg differ
diff --git a/src/bin/evisum_config.h b/src/bin/evisum_config.h
index e11f5ef..bd3465f 100644
--- a/src/bin/evisum_config.h
+++ b/src/bin/evisum_config.h
@@ -3,7 +3,7 @@
#include "ui/ui.h"
-#define CONFIG_VERSION 0x0002
+#define CONFIG_VERSION 0x0003
typedef struct _Evisum_Config
{
@@ -12,6 +12,7 @@ typedef struct _Evisum_Config
Eina_Bool sort_reverse;
int width;
int height;
+ Eina_Bool effects;
} Evisum_Config;
void config_init(void);
diff --git a/src/bin/main.c b/src/bin/main.c
index 7961548..0e9002c 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -99,6 +99,7 @@ int
main(int argc, char **argv)
{
Ui *ui;
+ Eina_Bool restart = EINA_FALSE;
int i;
for (i = 0; i < argc; i++)
@@ -135,9 +136,13 @@ main(int argc, char **argv)
if (ui)
{
ecore_main_loop_begin();
+ restart = ui->restart;
evisum_ui_del(ui);
}
+ if (restart)
+ ecore_exe_run("evisum", NULL);
+
elm_shutdown();
config_shutdown();
ecore_shutdown();
diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c
index 61c5e10..bbb7f43 100644
--- a/src/bin/ui/ui.c
+++ b/src/bin/ui/ui.c
@@ -28,6 +28,7 @@ _config_save(Ui *ui)
_evisum_config->sort_reverse = ui->sort_reverse;
_evisum_config->width = w;
_evisum_config->height = h;
+ _evisum_config->effects = evisum_ui_effects_enabled_get();
config_save(_evisum_config);
}
@@ -42,6 +43,8 @@ _config_load(Ui *ui)
if ((_evisum_config->width > 0) && (_evisum_config->height > 0))
evas_object_resize(ui->win, _evisum_config->width, _evisum_config->height);
+
+ evisum_ui_effects_enabled_set(_evisum_config->effects);
}
static int
@@ -359,7 +362,8 @@ _item_create(Evas_Object *parent)
evas_object_size_hint_weight_set(table, FILL, FILL);
evas_object_show(table);
- _item_column_add(table, "proc_pid", 0);
+ label = _item_column_add(table, "proc_pid", 0);
+ evas_object_size_hint_align_set(label, 1.0, EXPAND);
_item_column_add(table, "proc_uid", 1);
_item_column_add(table, "proc_size", 2);
_item_column_add(table, "proc_rss", 3);
@@ -573,18 +577,26 @@ _process_list_feedback_cb(void *data, Ecore_Thread *thread EINA_UNUSED,
}
_genlist_ensure_n_items(ui->genlist_procs, eina_list_count(list));
+
it = elm_genlist_first_item_get(ui->genlist_procs);
list = _list_sort(ui, list);
+
EINA_LIST_FREE(list, proc)
{
- Proc_Info *prev = elm_object_item_data_get(it);
- if (prev)
- proc_info_free(prev);
+ if (!it)
+ proc_info_free(proc);
+ else
+ {
+ Proc_Info *prev = elm_object_item_data_get(it);
+ if (prev)
+ proc_info_free(prev);
+
+ elm_object_item_data_set(it, proc);
+ elm_genlist_item_update(it);
- elm_object_item_data_set(it, proc);
- elm_genlist_item_update(it);
- it = elm_genlist_item_next_get(it);
+ it = elm_genlist_item_next_get(it);
+ }
}
eina_lock_release(&_lock);
@@ -631,7 +643,7 @@ _btn_icon_state_update(Evas_Object *button, Eina_Bool reverse)
Evas_Object *icon = elm_icon_add(button);
if (_selected)
- evas_object_color_set(_selected, 47, 153, 255, 255);
+ evas_object_color_set(_selected, 255, 255, 255, 255);
if (reverse)
elm_icon_standard_set(icon, evisum_icon_path_get("go-down"));
@@ -639,7 +651,7 @@ _btn_icon_state_update(Evas_Object *button, Eina_Bool reverse)
elm_icon_standard_set(icon, evisum_icon_path_get("go-up"));
_selected = icon;
- evas_object_color_set(_selected, 228, 228, 228, 255);
+ evas_object_color_set(_selected, 255, 255, 255, 255);
elm_object_part_content_set(button, "icon", icon);
evas_object_show(icon);
@@ -656,11 +668,11 @@ _btn_icon_state_init(Evas_Object *button, Eina_Bool reverse, Eina_Bool selected)
elm_icon_standard_set(icon, evisum_icon_path_get("go-up"));
if (!selected)
- evas_object_color_set(icon, 47, 153, 255, 255);
+ evas_object_color_set(icon, 255, 255, 255, 255);
else
{
_selected = icon;
- evas_object_color_set(icon, 228, 228, 228, 255);
+ evas_object_color_set(icon, 255, 255, 255, 255);
}
elm_object_part_content_set(button, "icon", icon);
@@ -796,8 +808,6 @@ _item_menu_start_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
Ui *ui = data;
- if (!ui) return;
-
kill(ui->selected_pid, SIGCONT);
}
@@ -807,8 +817,6 @@ _item_menu_stop_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
Ui *ui = data;
- if (!ui) return;
-
kill(ui->selected_pid, SIGSTOP);
}
@@ -818,8 +826,6 @@ _item_menu_kill_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
Ui *ui = data;
- if (!ui) return;
-
kill(ui->selected_pid, SIGKILL);
}
@@ -841,7 +847,8 @@ _item_menu_priority_increase_cb(void *data, Evas_Object *obj EINA_UNUSED,
Proc_Info *proc;
ui = data;
- if (!ui) return;
+
+ _item_menu_cancel_cb(ui, NULL, NULL);
proc = proc_info_by_pid(ui->selected_pid);
if (!proc) return;
@@ -860,6 +867,8 @@ _item_menu_priority_decrease_cb(void *data, Evas_Object *obj EINA_UNUSED,
ui = data;
+ _item_menu_cancel_cb(ui, NULL, NULL);
+
proc = proc_info_by_pid(ui->selected_pid);
if (!proc) return;
@@ -877,7 +886,8 @@ _item_menu_debug_cb(void *data, Evas_Object *obj EINA_UNUSED,
const char *terminal = "xterm";
ui = data;
- if (!ui) return;
+
+ _item_menu_cancel_cb(ui, NULL, NULL);
proc = proc_info_by_pid(ui->selected_pid);
if (!proc) return;
@@ -895,7 +905,9 @@ _item_menu_priority_add(Evas_Object *menu, Elm_Object_Item *menu_it,
Ui *ui)
{
Elm_Object_Item *it;
- Proc_Info *proc = proc_info_by_pid(ui->selected_pid);
+ Proc_Info *proc;
+
+ proc = proc_info_by_pid(ui->selected_pid);
if (!proc) return;
it = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("window"),
@@ -925,7 +937,8 @@ _item_menu_properties_cb(void *data, Evas_Object *obj EINA_UNUSED,
Proc_Info *proc;
ui = data;
- if (!ui) return;
+
+ _item_menu_cancel_cb(ui, NULL, NULL);
proc = proc_info_by_pid(ui->selected_pid);
if (!proc) return;
@@ -1035,26 +1048,11 @@ _item_pid_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
ui_process_win_add(ui->win, proc->pid, proc->command);
}
-static void
-_genlist_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- Ui *ui;
- Evas_Coord w, ow;
-
- ui = data;
-
- evas_object_geometry_get(ui->genlist_procs, NULL, NULL, &ow, NULL);
- evas_object_geometry_get(ui->win, NULL, NULL, &w, NULL);
-
- if (ow > w)
- elm_genlist_realized_items_update(ui->genlist_procs);
-}
-
static void
_ui_content_system_add(Ui *ui)
{
- Evas_Object *parent, *box, *hbox, *frame, *table;
- Evas_Object *pb, *button, *plist;
+ Evas_Object *parent, *box, *box2, *hbox, *frame, *table;
+ Evas_Object *entry, *pb, *button, *plist;
int i = 0;
parent = ui->content;
@@ -1085,6 +1083,7 @@ _ui_content_system_add(Ui *ui)
elm_progressbar_span_size_set(pb, 1.0);
elm_progressbar_unit_format_set(pb, "%1.2f%%");
elm_object_content_set(frame, pb);
+ elm_object_tooltip_text_set(pb, _("CPU average usage. For a more detailed view,
use the CPU option from the menu."));
evas_object_show(pb);
frame = elm_frame_add(hbox);
@@ -1098,6 +1097,7 @@ _ui_content_system_add(Ui *ui)
evas_object_size_hint_align_set(pb, FILL, FILL);
evas_object_size_hint_weight_set(pb, EXPAND, EXPAND);
elm_progressbar_span_size_set(pb, 1.0);
+ elm_object_tooltip_text_set(pb, _("System memory. There is a more detailed view
in the application menu."));
evas_object_show(pb);
elm_object_content_set(frame, pb);
@@ -1185,11 +1185,39 @@ _ui_content_system_add(Ui *ui)
evas_object_size_hint_weight_set(plist, EXPAND, EXPAND);
evas_object_size_hint_align_set(plist, FILL, FILL);
evas_object_show(plist);
- evas_object_event_callback_add(ui->genlist_procs, EVAS_CALLBACK_RESIZE,
- _genlist_resize_cb, ui);
- elm_box_pack_end(box, table);
- elm_box_pack_end(box, plist);
+ frame = elm_frame_add(parent);
+ evas_object_size_hint_weight_set(frame, EXPAND, EXPAND);
+ evas_object_size_hint_align_set(frame, FILL, FILL);
+ elm_object_text_set(frame, "Processes");
+ evas_object_show(frame);
+
+ box2 = elm_box_add(parent);
+ evas_object_size_hint_weight_set(box2, EXPAND, EXPAND);
+ evas_object_size_hint_align_set(box2, FILL, FILL);
+ evas_object_show(box2);
+
+ elm_box_pack_end(box2, table);
+ elm_box_pack_end(box2, plist);
+ elm_object_content_set(frame, box2);
+
+ hbox = elm_box_add(parent);
+ evas_object_size_hint_weight_set(hbox, EXPAND, 0);
+ evas_object_size_hint_align_set(hbox, FILL, FILL);
+ elm_box_horizontal_set(hbox, EINA_TRUE);
+ evas_object_show(hbox);
+ elm_box_pack_end(box2, hbox);
+
+ ui->entry_search = entry = elm_entry_add(parent);
+ evas_object_size_hint_weight_set(entry, EXPAND, 0); //EXPAND);
+ evas_object_size_hint_align_set(entry, FILL, FILL);
+ elm_entry_single_line_set(entry, EINA_TRUE);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_entry_editable_set(entry, EINA_TRUE);
+ evas_object_show(entry);
+
+ elm_box_pack_end(hbox, entry);
+ elm_box_pack_end(ui->system_activity, frame);
evas_object_smart_callback_add(ui->btn_pid, "clicked",
_btn_pid_clicked_cb, ui);
@@ -1258,6 +1286,19 @@ _menu_cpu_activity_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
ui_win_cpu_add(ui);
}
+static void
+_menu_effects_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ Ui *ui = data;
+
+ evisum_ui_effects_enabled_set(!evisum_ui_effects_enabled_get());
+
+ _config_save(ui);
+ ui->restart = EINA_TRUE;
+ ecore_main_loop_quit();
+}
+
static void
_evisum_process_filter(Ui *ui, const char *text)
{
@@ -1297,8 +1338,7 @@ _evisum_search_keypress_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
static Evas_Object *
_ui_content_add(Evas_Object *parent, Ui *ui)
{
- Evas_Object *table, *box, *entry, *hbox, *frame;
- Evas_Object *ic;
+ Evas_Object *table;
ui->content = table = elm_table_add(parent);
evas_object_size_hint_weight_set(table, EXPAND, EXPAND);
@@ -1306,45 +1346,6 @@ _ui_content_add(Evas_Object *parent, Ui *ui)
elm_object_content_set(parent, table);
evas_object_show(table);
- frame = elm_frame_add(parent);
- evas_object_size_hint_weight_set(frame, EXPAND, 0);
- evas_object_size_hint_align_set(frame, FILL, FILL);
- elm_object_style_set(frame, "pad_medium");
- evas_object_show(frame);
-
- hbox = elm_box_add(parent);
- evas_object_size_hint_weight_set(hbox, EXPAND, 0);
- evas_object_size_hint_align_set(hbox, FILL, FILL);
- elm_box_horizontal_set(hbox, EINA_TRUE);
- evas_object_show(hbox);
-
- box = elm_box_add(parent);
- evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
- evas_object_size_hint_align_set(box, FILL, FILL);
- elm_box_horizontal_set(box, EINA_TRUE);
- evas_object_show(box);
-
- ui->entry_search = entry = elm_entry_add(parent);
- evas_object_size_hint_weight_set(entry, EXPAND, EXPAND);
- evas_object_size_hint_align_set(entry, FILL, FILL);
- elm_entry_single_line_set(entry, EINA_TRUE);
- elm_entry_scrollable_set(entry, EINA_TRUE);
- elm_entry_editable_set(entry, EINA_TRUE);
- evas_object_show(entry);
-
- ic = elm_icon_add(parent);
- elm_icon_standard_set(ic, evisum_icon_path_get("find"));
- evas_object_size_hint_min_set(ic, 24, 24);
- evas_object_show(ic);
- evas_object_color_set(ic, 64, 64, 64, 255);
- elm_object_part_content_set(entry, "icon", ic);
-
- elm_box_pack_end(box, entry);
-
- elm_object_content_set(frame, box);
- elm_box_pack_end(hbox, frame);
- elm_table_pack(ui->content, hbox, 0, 2, 1, 1);
-
_ui_content_system_add(ui);
return table;
@@ -1392,7 +1393,9 @@ _evisum_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Ui *ui = data;
- elm_genlist_realized_items_update(ui->genlist_procs);
+ elm_genlist_clear(ui->genlist_procs);
+
+ _process_list_update(ui);
_config_save(ui);
}
@@ -1570,6 +1573,9 @@ _menu_setup(Ui *ui)
_menu_disk_activity_clicked_cb, ui);
elm_menu_item_add(menu, menu_it, evisum_icon_path_get("misc"), _("Misc"),
_menu_misc_activity_clicked_cb, ui);
+ elm_menu_item_separator_add(menu, menu_it);
+ elm_menu_item_add(menu, menu_it, evisum_icon_path_get("effects"), _("Effects"),
+ _menu_effects_clicked_cb, ui);
menu_it = elm_menu_item_add(menu, NULL, NULL, _("Help"), NULL, NULL);
elm_menu_item_add(menu, menu_it, "evisum", _("About"), _about_clicked_cb, ui);
diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h
index dc7f7c9..00f248f 100644
--- a/src/bin/ui/ui.h
+++ b/src/bin/ui/ui.h
@@ -89,6 +89,7 @@ typedef struct Ui
Eina_Bool sort_reverse;
Eina_Bool show_self;
Eina_Bool shutdown_now;
+ Eina_Bool restart;
Eina_Bool zfs_mounted;
diff --git a/src/bin/ui/ui_cpu.c b/src/bin/ui/ui_cpu.c
index 3418180..f3ec071 100644
--- a/src/bin/ui/ui_cpu.c
+++ b/src/bin/ui/ui_cpu.c
@@ -164,7 +164,6 @@ _core_times_cb(void *data, Ecore_Thread *thread)
for (int i = 0; !ecore_thread_check(thread); i = 0)
{
cores = system_cpu_usage_get(&ncpu);
-
EINA_LIST_FOREACH(ui->cpu_list, l, progress)
{
*progress->value = cores[i]->percent;
@@ -193,7 +192,7 @@ _win_del_cb(void *data, Evas_Object *obj,
free(progress);
}
- ecore_thread_wait(ui->thread_cpu, 1.0);
+ ecore_thread_wait(ui->thread_cpu, 0.1);
evas_object_del(obj);
ui->win_cpu = NULL;
}
@@ -213,6 +212,8 @@ ui_win_cpu_add(Ui *ui)
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());
+
hbox = elm_box_add(win);
evas_object_size_hint_weight_set(hbox, EXPAND, EXPAND);
evas_object_size_hint_align_set(hbox, FILL, FILL);
@@ -258,7 +259,7 @@ ui_win_cpu_add(Ui *ui)
pb = elm_progressbar_add(frame);
evas_object_size_hint_align_set(pb, FILL, FILL);
- evas_object_size_hint_weight_set(pb, 0.1, EXPAND);
+ evas_object_size_hint_weight_set(pb, 0.2, EXPAND);
elm_progressbar_span_size_set(pb, 1.0);
elm_progressbar_unit_format_set(pb, "%1.2f%%");
evas_object_show(pb);
@@ -275,7 +276,7 @@ ui_win_cpu_add(Ui *ui)
evas_object_size_hint_align_set(bg, FILL, FILL);
evas_object_size_hint_weight_set(bg, EXPAND, EXPAND);
evas_object_show(bg);
- evas_object_size_hint_min_set(bg, 1, 80);
+ evas_object_size_hint_min_set(bg, 1, 60);
line = evas_object_rectangle_add(evas_object_evas_get(bg));
evas_object_size_hint_align_set(line, FILL, FILL);
diff --git a/src/bin/ui/ui_disk.c b/src/bin/ui/ui_disk.c
index 0f54dec..96b64d5 100644
--- a/src/bin/ui/ui_disk.c
+++ b/src/bin/ui/ui_disk.c
@@ -177,6 +177,7 @@ ui_win_disk_add(Ui *ui)
_("Storage"));
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());
box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
@@ -187,6 +188,7 @@ ui_win_disk_add(Ui *ui)
evas_object_size_hint_weight_set(vbox, EXPAND, 0.0);
evas_object_size_hint_align_set(vbox, FILL, 0.5);
evas_object_show(vbox);
+ elm_win_resize_object_add(win, vbox);
scroller = elm_scroller_add(win);
evas_object_size_hint_weight_set(scroller, EXPAND, EXPAND);
diff --git a/src/bin/ui/ui_memory.c b/src/bin/ui/ui_memory.c
index bb18f84..901ce50 100644
--- a/src/bin/ui/ui_memory.c
+++ b/src/bin/ui/ui_memory.c
@@ -134,6 +134,7 @@ ui_win_memory_add(Ui *ui)
_("Memory Usage"));
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());
frame = elm_frame_add(win);
evas_object_size_hint_weight_set(frame, EXPAND, EXPAND);
diff --git a/src/bin/ui/ui_misc.c b/src/bin/ui/ui_misc.c
index 91abeb7..36de28e 100644
--- a/src/bin/ui/ui_misc.c
+++ b/src/bin/ui/ui_misc.c
@@ -349,6 +349,7 @@ ui_win_misc_add(Ui *ui)
ui->win_misc = win = elm_win_util_dialog_add(ui->win, "evisum", _("Stuff"));
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());
box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
diff --git a/src/bin/ui/ui_process_view.c b/src/bin/ui/ui_process_view.c
index 9ea9315..ad9bc8e 100644
--- a/src/bin/ui/ui_process_view.c
+++ b/src/bin/ui/ui_process_view.c
@@ -511,6 +511,7 @@ _process_tab_add(Evas_Object *parent, Ui_Process *ui)
Evas_Object *frame, *hbox, *table;
Evas_Object *label, *entry, *button, *border;
int i = 0;
+ int r, g, b , a;
frame = elm_frame_add(parent);
elm_object_text_set(frame, _("General"));
@@ -518,6 +519,12 @@ _process_tab_add(Evas_Object *parent, Ui_Process *ui)
evas_object_size_hint_align_set(frame, FILL, FILL);
evas_object_show(frame);
+ if (evisum_ui_effects_enabled_get())
+ {
+ evas_object_color_get(frame, &r, &g, &b, &a);
+ evas_object_color_set(frame, r * 0.75, g * 0.75, b * 0.75, a * 0.75);
+ }
+
table = elm_table_add(parent);
evas_object_size_hint_weight_set(table, EXPAND, EXPAND);
evas_object_size_hint_align_set(table, FILL, FILL);
@@ -632,8 +639,8 @@ _process_tab_add(Evas_Object *parent, Ui_Process *ui)
elm_object_style_set(border, "pad_small");
evas_object_show(border);
- button = evisum_ui_button_add(parent, &ui->btn_stop, _("Stop"),
- "stop",_btn_stop_clicked_cb, ui);
+ button = evisum_ui_tab_add(parent, &ui->btn_stop, _("Stop"),
+ _btn_stop_clicked_cb, ui);
ui->btn_stop = button;
elm_object_content_set(border, button);
elm_box_pack_end(hbox, border);
@@ -643,8 +650,8 @@ _process_tab_add(Evas_Object *parent, Ui_Process *ui)
elm_object_style_set(border, "pad_small");
evas_object_show(border);
- button = evisum_ui_button_add(parent, &ui->btn_start, _("Start"),
- "start", _btn_start_clicked_cb, ui);
+ button = evisum_ui_tab_add(parent, &ui->btn_start, _("Start"),
+ _btn_start_clicked_cb, ui);
ui->btn_start = button;
elm_object_content_set(border, button);
elm_box_pack_end(hbox, border);
@@ -655,8 +662,8 @@ _process_tab_add(Evas_Object *parent, Ui_Process *ui)
elm_object_style_set(border, "pad_small");
evas_object_show(border);
- button = evisum_ui_button_add(parent, &ui->btn_kill, _("Kill"),
- "kill", _btn_kill_clicked_cb, ui);
+ button = evisum_ui_tab_add(parent, &ui->btn_kill, _("Kill"),
+ _btn_kill_clicked_cb, ui);
ui->btn_kill = button;
elm_object_content_set(border, button);
elm_box_pack_end(hbox, border);
@@ -675,7 +682,7 @@ _btn_icon_state_set(Evas_Object *button, Eina_Bool reverse)
elm_icon_standard_set(icon, evisum_icon_path_get("go-up"));
elm_object_part_content_set(button, "icon", icon);
- evas_object_color_set(icon, 47, 153, 255, 255);
+ evas_object_color_set(icon, 255, 255, 255, 255);
evas_object_show(icon);
}
@@ -749,12 +756,19 @@ static Evas_Object *
_threads_tab_add(Evas_Object *parent, Ui_Process *ui)
{
Evas_Object *frame, *box, *hbox, *btn, *genlist;
+ int r, g, b, a;
frame = elm_frame_add(parent);
evas_object_size_hint_weight_set(frame, EXPAND, EXPAND);
evas_object_size_hint_align_set(frame, FILL, FILL);
elm_object_text_set(frame, _("Threads"));
+ if (evisum_ui_effects_enabled_get())
+ {
+ evas_object_color_get(frame, &r, &g, &b, &a);
+ evas_object_color_set(frame, r * 0.75, g * 0.75, b * 0.75, a * 0.75);
+ }
+
box = elm_box_add(parent);
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
evas_object_size_hint_align_set(box, FILL, FILL);
@@ -835,12 +849,19 @@ static Evas_Object *
_info_tab_add(Evas_Object *parent, Ui_Process *ui)
{
Evas_Object *frame, *box, *entry;
+ int r, g, b, a;
frame = elm_frame_add(parent);
evas_object_size_hint_weight_set(frame, EXPAND, EXPAND);
evas_object_size_hint_align_set(frame, FILL, FILL);
elm_object_text_set(frame, _("Documentation"));
+ if (evisum_ui_effects_enabled_get())
+ {
+ evas_object_color_get(frame, &r, &g, &b, &a);
+ evas_object_color_set(frame, r * 0.75, g * 0.75, b * 0.75, a * 0.75);
+ }
+
box = elm_box_add(parent);
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
evas_object_size_hint_align_set(box, FILL, FILL);
@@ -1055,6 +1076,8 @@ ui_process_win_add(Evas_Object *parent_win, int pid, const char *cmd)
elm_win_icon_object_set(win, ic);
tabs = _tabs_add(win, ui);
+ evisum_ui_background_random_add(win, evisum_ui_effects_enabled_get());
+
box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
evas_object_size_hint_align_set(box, FILL, FILL);
diff --git a/src/bin/ui/ui_util.c b/src/bin/ui/ui_util.c
index d42afcb..818f169 100644
--- a/src/bin/ui/ui_util.c
+++ b/src/bin/ui/ui_util.c
@@ -3,6 +3,10 @@
#include
#include "config.h"
+#define ARRAY_SIZE(n) sizeof(n) / sizeof(n[0])
+
+static Eina_Bool _effects_enabled = EINA_FALSE;
+
Evas_Object *
evisum_ui_tab_add(Evas_Object *parent, Evas_Object **alias, const char *text,
Evas_Smart_Cb clicked_cb, void *data)
@@ -354,3 +358,73 @@ evisum_about_window_show(void *data)
evas_object_show(win);
}
+
+const char *
+evisum_image_path_get(const char *name)
+{
+ char *path;
+ const char *icon_path = NULL, *directory = PACKAGE_DATA_DIR "/images";
+
+ path = _path_append(directory, eina_slstr_printf("%s.jpg", name));
+ if (path)
+ {
+ if (ecore_file_exists(path))
+ icon_path = eina_slstr_printf("%s", path);
+
+ free(path);
+ }
+
+ return icon_path;
+}
+
+Evas_Object *
+evisum_ui_background_random_add(Evas_Object *win, Eina_Bool enabled)
+{
+ Evas_Object *bg;
+ int i;
+ char *images[] = { "sky_01", "sky_02", "sky_03", "sky_04", "sky_05" };
+
+ if (!enabled) return NULL;
+
+ srand(time(NULL));
+
+ i = rand() % ARRAY_SIZE(images);
+
+ bg = elm_bg_add(win);
+ elm_bg_file_set(bg, evisum_image_path_get(images[i]), NULL);
+ evas_object_size_hint_align_set(bg, FILL, FILL);
+ evas_object_size_hint_weight_set(bg, EXPAND, EXPAND);
+ elm_win_resize_object_add(win, bg);
+ evas_object_show(bg);
+
+ return bg;
+}
+
+Evas_Object *
+evisum_ui_background_add(Evas_Object *win, Eina_Bool enabled)
+{
+ Evas_Object *bg;
+
+ if (!enabled) return NULL;
+
+ bg = elm_bg_add(win);
+ elm_bg_file_set(bg, evisum_image_path_get("sky_01"), NULL);
+ evas_object_size_hint_align_set(bg, FILL, FILL);
+ evas_object_size_hint_weight_set(bg, EXPAND, EXPAND);
+ elm_win_resize_object_add(win, bg);
+ evas_object_show(bg);
+
+ return bg;
+}
+
+Eina_Bool
+evisum_ui_effects_enabled_get(void)
+{
+ return _effects_enabled;
+}
+
+void
+evisum_ui_effects_enabled_set(Eina_Bool enabled)
+{
+ _effects_enabled = enabled;
+}
diff --git a/src/bin/ui/ui_util.h b/src/bin/ui/ui_util.h
index 089fefb..af6cd50 100644
--- a/src/bin/ui/ui_util.h
+++ b/src/bin/ui/ui_util.h
@@ -6,8 +6,8 @@
#define FILL EVAS_HINT_FILL
#define EXPAND EVAS_HINT_EXPAND
-#define TAB_BTN_WIDTH 96
-#define TAB_BTN_HEIGHT 32
+#define TAB_BTN_WIDTH 84
+#define TAB_BTN_HEIGHT 28
#define BTN_WIDTH 80
#define BTN_HEIGHT 24
@@ -32,6 +32,21 @@ evisum_size_format(unsigned long long bytes);
const char *
evisum_icon_path_get(const char *name);
+const char *
+evisum_image_path_get(const char *name);
+
+Evas_Object *
+evisum_ui_background_add(Evas_Object *win, Eina_Bool enabled);
+
+Evas_Object *
+evisum_ui_background_random_add(Evas_Object *win, Eina_Bool enabled);
+
+void
+evisum_ui_effects_enabled_set(Eina_Bool enabled);
+
+Eina_Bool
+evisum_ui_effects_enabled_get(void);
+
int
evisum_ui_textblock_font_size_get(Evas_Object *tb);