netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=7351bff3afd35c1f2851f7540f11b8fbe0c7295b

commit 7351bff3afd35c1f2851f7540f11b8fbe0c7295b
Author: Alastair Poole <nets...@gmail.com>
Date:   Fri Mar 12 16:59:27 2021 +0000

    effects: does something...
---
 data/themes/evisum.edc       | 57 ++++++++++++++++++++++++++++++++++++++++++--
 src/bin/ui/evisum_ui.c       | 23 ++++++++++++++----
 src/bin/ui/evisum_ui.h       |  8 +++++++
 src/bin/ui/ui_process_list.c | 32 +++++++++++++++++++++++--
 4 files changed, 112 insertions(+), 8 deletions(-)

diff --git a/data/themes/evisum.edc b/data/themes/evisum.edc
index fbba875..89ea43e 100644
--- a/data/themes/evisum.edc
+++ b/data/themes/evisum.edc
@@ -64,7 +64,44 @@ collections {
                     visible: 1;
                 }
             }
-
+            part
+            {
+                name: "evisum/indicator-clip";
+                type: RECT;
+                description
+                {
+                   state: "default" 0.0;
+                   min: 128 128;
+                   max: 128 128;
+                   visible: 0;
+                   color: 255 255 255 0;
+                }
+                description
+                {
+                   inherit: "default";
+                   state: "visible" 0.0;
+                   visible: 1;
+                   color: 255 255 255 255;
+                }
+            }
+            part
+            {
+                name: "evisum/indicator";
+                type: SWALLOW;
+                description
+                {
+                    aspect: 1.0 1.0; aspect_preference: BOTH;
+                    clip_to: "evisum/indicator-clip";
+                    state: "default" 0.0;
+                    visible: 1;
+                }
+                description
+                {
+                    clip_to: "evisum/indicator-clip";
+                    state: "visible" 0.0;
+                    visible: 1;
+                }
+            }
         }
         programs
         {
@@ -76,7 +113,6 @@ collections {
                 transition: SINUSOIDAL 0.5;
                 target: "evisum/menu-clip";
             }
-
             program
             {
                 signal: "menu,hide";
@@ -85,6 +121,23 @@ collections {
                 transition: SINUSOIDAL 0.5;
                 target: "evisum/menu-clip";
             }
+            program
+            {
+                signal: "indicator,show";
+                source: "evisum/indicator";
+                action: STATE_SET "visible" 0.0;
+                target: "evisum/indicator-clip";
+                after: "indicator_hide";
+            }
+            program
+            {
+                name: "indicator_hide";
+                signal: "indicator,hide";
+                source: "evisum/indicator";
+                action: STATE_SET "default" 0.0;
+                transition: SINUSOIDAL 2.0;
+                target: "evisum/indicator-clip";
+            }
         }
     }
 }
diff --git a/src/bin/ui/evisum_ui.c b/src/bin/ui/evisum_ui.c
index 27dc128..1c4a1b2 100644
--- a/src/bin/ui/evisum_ui.c
+++ b/src/bin/ui/evisum_ui.c
@@ -26,7 +26,7 @@ evisum_ui_config_save(Evisum_Ui *ui)
 
    if (!_evisum_config) return;
 
-   _evisum_config->effects = 0;
+   _evisum_config->effects = ui->effects;
    _evisum_config->backgrounds = 0;
 
    if (ui->proc.win)
@@ -110,6 +110,18 @@ evisum_ui_config_save(Evisum_Ui *ui)
      ecore_event_add(EVISUM_EVENT_CONFIG_CHANGED, NULL, NULL, NULL);
 }
 
+Eina_Bool
+evisum_ui_effects_enabled_get(Evisum_Ui *ui)
+{
+   return ui->effects;
+}
+
+void
+evisum_ui_effects_enabled_set(Evisum_Ui *ui, Eina_Bool enabled)
+{
+   ui->effects = enabled;
+}
+
 void
 evisum_ui_config_load(Evisum_Ui *ui)
 {
@@ -117,6 +129,8 @@ evisum_ui_config_load(Evisum_Ui *ui)
 
    _evisum_config = config_load();
 
+   ui->effects           = _evisum_config->effects;
+
    ui->proc.sort_type    = _evisum_config->proc.sort_type;
    ui->proc.sort_reverse = _evisum_config->proc.sort_reverse;
    ui->proc.poll_delay   = _evisum_config->proc.poll_delay;
@@ -249,14 +263,15 @@ _menu_effects_clicked_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
                          void *event_info EINA_UNUSED)
 {
    Evisum_Ui *ui;
+   Eina_Bool state;
 
    ui = data;
 
-#if 0
-   evisum_ui_config_save(ui);
+   state = evisum_ui_effects_enabled_get(ui);
+   evisum_ui_effects_enabled_set(ui, !state);
 
+   evisum_ui_config_save(ui);
    evisum_ui_restart(ui);
-#endif
 }
 
 static Evas_Object *
diff --git a/src/bin/ui/evisum_ui.h b/src/bin/ui/evisum_ui.h
index 0ef567c..9d8ebe3 100644
--- a/src/bin/ui/evisum_ui.h
+++ b/src/bin/ui/evisum_ui.h
@@ -21,6 +21,8 @@ typedef struct _Evisum_Ui
    pid_t                program_pid;
    Ecore_Event_Handler *handler_sig;
 
+   Eina_Bool            effects;
+
    struct
    {
       Evas_Object  *win;
@@ -117,4 +119,10 @@ evisum_ui_config_save(Evisum_Ui *ui);
 void
 evisum_ui_restart(Evisum_Ui *ui);
 
+Eina_Bool
+evisum_ui_effects_enabled_get(Evisum_Ui *ui);
+
+void
+evisum_ui_effects_enabled_set(Evisum_Ui *ui, Eina_Bool enabled);
+
 #endif
diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c
index 6ec7e6a..ab0a7c0 100644
--- a/src/bin/ui/ui_process_list.c
+++ b/src/bin/ui/ui_process_list.c
@@ -90,6 +90,7 @@ typedef struct
       int                  dsleep;
    } summary;
  
+   Elm_Layout             *indicator;
    Evisum_Ui              *ui;
 
 } Data;
@@ -992,6 +993,8 @@ _process_list_feedback_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED,
      ecore_timer_add(1.0, _bring_in, pd);
    pd->poll_count++;
 
+   if (evisum_ui_effects_enabled_get(pd->ui))
+     elm_object_signal_emit(pd->indicator, "indicator,show", 
"evisum/indicator");
 }
 
 static void
@@ -1963,6 +1966,7 @@ _win_resize_cb(void *data, Evas *e, Evas_Object *obj, 
void *event_info)
 
    evas_object_geometry_get(obj, NULL, NULL,
                             &ui->proc.width, &ui->proc.height);
+   evas_object_move(pd->indicator, 32, ui->proc.height - 32);
 }
 
 static void
@@ -2084,6 +2088,30 @@ _win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
    pd = NULL;
 }
 
+static void
+_effects_add(Data *pd, Evas_Object *win)
+{
+   Elm_Layout *lay;
+   Evas_Object *pb;
+
+   if (evisum_ui_effects_enabled_get(pd->ui))
+     {
+        pb = elm_progressbar_add(win);
+        elm_object_style_set(pb, "wheel");
+        elm_progressbar_pulse_set(pb, 1);
+        elm_progressbar_pulse(pb, 1);
+        evas_object_show(pb);
+
+        pd->indicator = lay = elm_layout_add(win);
+        elm_layout_file_set(lay, PACKAGE_DATA_DIR"/themes/evisum.edj", 
"evisum");
+        elm_layout_content_set(lay, "evisum/indicator", pb);
+        evas_object_show(lay);
+     }
+
+   _win_alpha_set(pd);
+   evas_object_show(win);
+}
+
 static void
 _init(Data *pd)
 {
@@ -2161,8 +2189,8 @@ ui_process_list_win_add(Evisum_Ui *ui)
                                   _win_move_cb, pd);
    evas_object_event_callback_add(tb, EVAS_CALLBACK_KEY_DOWN,
                                   _win_key_down_cb, pd);
-   _win_alpha_set(pd);
-   evas_object_show(win);
+
+   _effects_add(pd, win);
 
    _win_resize_cb(pd, NULL, win, NULL);
    pd->thread = ecore_thread_feedback_run(_process_list,

-- 


Reply via email to