davemds pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/edgar.git/commit/?id=81bda2a9ce99f03f1e13094cd192234e994cb111

commit 81bda2a9ce99f03f1e13094cd192234e994cb111
Author: Dave Andreoli <d...@gurumeditation.it>
Date:   Fri Sep 11 22:47:26 2015 +0200

    Add a new ram+swap gadget
    
    screenshot and info at:
    https://phab.enlightenment.org/w/emodules/edgar/
---
 GADGETS/cpu/cpu.edc           |   2 +-
 GADGETS/cpu/images/mockup.xcf | Bin 67599 -> 72916 bytes
 GADGETS/mem/Makefile          |  36 ++++++++++
 GADGETS/mem/__init__.py       |  58 ++++++++++++++++
 GADGETS/mem/images/bar_bg.png | Bin 0 -> 274 bytes
 GADGETS/mem/images/blu_on.png | Bin 0 -> 286 bytes
 GADGETS/mem/images/mem.png    | Bin 0 -> 1962 bytes
 GADGETS/mem/mem.edc           | 154 ++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 249 insertions(+), 1 deletion(-)

diff --git a/GADGETS/cpu/cpu.edc b/GADGETS/cpu/cpu.edc
index 6686263..6867cc4 100644
--- a/GADGETS/cpu/cpu.edc
+++ b/GADGETS/cpu/cpu.edc
@@ -1,5 +1,5 @@
 /**
- *  EDGAR Dropbox Gadget
+ *  EDGAR Multicore CPU Gadget
  */
 
 #define DBG_SHOW(_PART, _R, _G, _B) \
diff --git a/GADGETS/cpu/images/mockup.xcf b/GADGETS/cpu/images/mockup.xcf
index ec00d27..1cf6c18 100644
Binary files a/GADGETS/cpu/images/mockup.xcf and 
b/GADGETS/cpu/images/mockup.xcf differ
diff --git a/GADGETS/mem/Makefile b/GADGETS/mem/Makefile
new file mode 100644
index 0000000..1d3957d
--- /dev/null
+++ b/GADGETS/mem/Makefile
@@ -0,0 +1,36 @@
+# Simple Makefile for Enlightenment (edgar) gadgets
+
+# gadget specific config
+GADGET_NAME = mem
+EXTRA_FILES = 
+
+
+# nothing  should be changed below this point
+GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
+prefix = $(shell pkg-config --variable=libdir enlightenment)
+gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
+
+.PHONY: all install clean
+
+all: $(GADGET_FILES) $(EXTRA_FILES)
+
+install: all
+       @mkdir -p -v ${gadget_folder}
+       @cp --preserve=mode -v $(GADGET_FILES) $(EXTRA_FILES) $(gadget_folder)
+
+uninstall: all
+       @rm -rfv ${gadget_folder}
+
+clean:
+       @rm -fv *.edj *.pyc
+
+
+EDJE_CC = edje_cc
+EDJE_FLAGS = -v -id images/ -fd fonts/
+
+%.edj: %.edc images/*
+       $(EDJE_CC) $(EDJE_FLAGS) $<
+       @chmod -v og+r $@
+
+%.pyc: %.py
+       python3 -c "from py_compile import compile; compile('$<', '$@')"
diff --git a/GADGETS/mem/__init__.py b/GADGETS/mem/__init__.py
new file mode 100644
index 0000000..4dce6c6
--- /dev/null
+++ b/GADGETS/mem/__init__.py
@@ -0,0 +1,58 @@
+# This python file use the following encoding: utf-8
+
+import psutil
+
+import e
+
+from efl import ecore
+from efl import evas
+from efl import edje
+
+
+__gadget_name__ = 'Memory Monitor'
+__gadget_vers__ = '0.1'
+__gadget_auth__ = 'DaveMDS'
+__gadget_mail__ = 'd...@gurumeditation.it'
+__gadget_desc__ = 'Ram + Swap monitor'
+__gadget_vapi__ = 1
+__gadget_opts__ = { 'popup_on_desktop': False }
+
+
+
+class Gadget(e.Gadget):
+
+    def __init__(self):
+        super().__init__()
+
+        self.poller = None
+        self.mem = 0
+        self.swp = 0
+
+    def instance_created(self, obj, site):
+        super().instance_created(obj, site)
+
+        obj.size_hint_aspect = (evas.EVAS_ASPECT_CONTROL_BOTH,
+                                int(obj.data_get('aspect_w')),
+                                int(obj.data_get('aspect_h')))
+
+        if self.poller is None:
+            self.poller = ecore.Poller(8, self.poller_cb, 
ecore.ECORE_POLLER_CORE)
+
+    def instance_destroyed(self, obj):
+        super().instance_destroyed(obj)
+
+        if len(self._instances) < 1 and self.poller is not None:
+            self.poller.delete()
+            self.poller = None
+
+    def poller_cb(self):
+        mem = psutil.virtual_memory().percent
+        swp = psutil.swap_memory().percent
+
+        if mem != self.mem or swp != self.swp:
+            for obj in self._instances:
+                obj.message_send(0, (mem, swp))
+            self.mem = mem
+            self.swp = swp
+
+        return ecore.ECORE_CALLBACK_RENEW
diff --git a/GADGETS/mem/images/bar_bg.png b/GADGETS/mem/images/bar_bg.png
new file mode 100644
index 0000000..1d2686d
Binary files /dev/null and b/GADGETS/mem/images/bar_bg.png differ
diff --git a/GADGETS/mem/images/blu_on.png b/GADGETS/mem/images/blu_on.png
new file mode 100644
index 0000000..48d3f04
Binary files /dev/null and b/GADGETS/mem/images/blu_on.png differ
diff --git a/GADGETS/mem/images/mem.png b/GADGETS/mem/images/mem.png
new file mode 100644
index 0000000..ed7d0cb
Binary files /dev/null and b/GADGETS/mem/images/mem.png differ
diff --git a/GADGETS/mem/mem.edc b/GADGETS/mem/mem.edc
new file mode 100644
index 0000000..055b2df
--- /dev/null
+++ b/GADGETS/mem/mem.edc
@@ -0,0 +1,154 @@
+/**
+ *  EDGAR Memory + Swap Gadget
+ */
+
+#define DBG_SHOW(_PART, _R, _G, _B) \
+   part { name: "dbg_show"_PART; \
+      type: RECT; mouse_events: 0; \
+      description { state: "default" 0.0; \
+         rel1.to: _PART; rel2.to: _PART; \
+         color: _R _G _B 50; } }
+
+#define SHOW(_PART) DBG_SHOW(_PART, 50, 0, 0)
+
+images {
+   image: "mem.png" COMP;
+   image: "bar_bg.png" COMP;
+   image: "blu_on.png" COMP;
+}
+
+
+collections {
+/**
+ *  API [e/gadget/icon] The group used for the icon of the gadget
+ */
+   group { name: "e/gadgets/mem/icon";
+      parts {
+         image { "icon";
+            desc { "default";
+               aspect: 1.0 1.0;
+               aspect_preference: BOTH;
+               image.normal: "mem.png";
+            }
+         }
+      }
+   }
+
+/**
+ *  API [e/gadget/main] The main group of the gadget
+ */
+   group { name: "e/gadgets/mem/main";
+      data {
+         item: "aspect_w" "28";
+         item: "aspect_h" "56";
+      }
+      script {
+         public message(Msg_Type:type, id, ...) {
+            if ((type == MSG_FLOAT_SET) && (id == 0)) {
+               new Float:val;
+
+               val = getfarg(2);
+               if (val > (100 / 9 * 1)) set_state(PART:"mem_led1", "on", 0.0);
+               else                     set_state(PART:"mem_led1", "default", 
0.0);
+               if (val > (100 / 9 * 2)) set_state(PART:"mem_led2", "on", 0.0);
+               else                     set_state(PART:"mem_led2", "default", 
0.0);
+               if (val > (100 / 9 * 3)) set_state(PART:"mem_led3", "on", 0.0);
+               else                     set_state(PART:"mem_led3", "default", 
0.0);
+               if (val > (100 / 9 * 4)) set_state(PART:"mem_led4", "on", 0.0);
+               else                     set_state(PART:"mem_led4", "default", 
0.0);
+               if (val > (100 / 9 * 5)) set_state(PART:"mem_led5", "on", 0.0);
+               else                     set_state(PART:"mem_led5", "default", 
0.0);
+               if (val > (100 / 9 * 6)) set_state(PART:"mem_led6", "on", 0.0);
+               else                     set_state(PART:"mem_led6", "default", 
0.0);
+               if (val > (100 / 9 * 7)) set_state(PART:"mem_led7", "on", 0.0);
+               else                     set_state(PART:"mem_led7", "default", 
0.0);
+               if (val > (100 / 9 * 8)) set_state(PART:"mem_led8", "on", 0.0);
+               else                     set_state(PART:"mem_led8", "default", 
0.0);
+
+               val = getfarg(3);
+               if (val > (100 / 9 * 1)) set_state(PART:"swp_led1", "on", 0.0);
+               else                     set_state(PART:"swp_led1", "default", 
0.0);
+               if (val > (100 / 9 * 2)) set_state(PART:"swp_led2", "on", 0.0);
+               else                     set_state(PART:"swp_led2", "default", 
0.0);
+               if (val > (100 / 9 * 3)) set_state(PART:"swp_led3", "on", 0.0);
+               else                     set_state(PART:"swp_led3", "default", 
0.0);
+               if (val > (100 / 9 * 4)) set_state(PART:"swp_led4", "on", 0.0);
+               else                     set_state(PART:"swp_led4", "default", 
0.0);
+               if (val > (100 / 9 * 5)) set_state(PART:"swp_led5", "on", 0.0);
+               else                     set_state(PART:"swp_led5", "default", 
0.0);
+               if (val > (100 / 9 * 6)) set_state(PART:"swp_led6", "on", 0.0);
+               else                     set_state(PART:"swp_led6", "default", 
0.0);
+               if (val > (100 / 9 * 7)) set_state(PART:"swp_led7", "on", 0.0);
+               else                     set_state(PART:"swp_led7", "default", 
0.0);
+               if (val > (100 / 9 * 8)) set_state(PART:"swp_led8", "on", 0.0);
+               else                     set_state(PART:"swp_led8", "default", 
0.0);
+            }
+         }
+      }
+      parts {
+         #define LED(_name_, _pos_)                            \
+            part { name: _name_;                               \
+               desc { "default"; hid;                          \
+                  rel1.relative: 0.0 (1.0 / 8 * (_pos_ - 1));  \
+                  rel2.relative: 1.0 (1.0 / 8 * _pos_);        \
+                  image.normal: "blu_on.png";                  \
+               }                                               \
+               desc { "on"; inherit: "default"; vis; }         \
+            }                                                  \
+
+         part { name: "mem";
+            desc { "default";
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 0.5 1.0;
+               image.normal: "bar_bg.png";
+            }
+            LED("mem_led1", 8)
+            LED("mem_led2", 7)
+            LED("mem_led3", 6)
+            LED("mem_led4", 5)
+            LED("mem_led5", 4)
+            LED("mem_led6", 3)
+            LED("mem_led7", 2)
+            LED("mem_led8", 1)
+         }
+
+         part { name: "swp";
+            desc { "default";
+               rel1.relative: 0.5 0.0;
+               rel2.relative: 1.0 1.0;
+               image.normal: "bar_bg.png";
+            }
+            LED("swp_led1", 8)
+            LED("swp_led2", 7)
+            LED("swp_led3", 6)
+            LED("swp_led4", 5)
+            LED("swp_led5", 4)
+            LED("swp_led6", 3)
+            LED("swp_led7", 2)
+            LED("swp_led8", 1)
+         }
+
+         #undef LED
+      }
+   }
+
+/**
+ *  API [e/gadget/popup] This is the group that will be placed inside popups
+ */
+/*
+   group { name: "e/gadgets/mem/popup";
+      min: 310 0;
+      parts {
+         box { "popup.box";
+            desc { "default";
+               box {
+                  layout: "vertical";
+                  padding: 0 6;
+                  min: 1 1;
+               }
+            }
+         }
+      }
+   }
+*/
+}

-- 


Reply via email to