Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/cpufreq


Modified Files:
        e_mod_main.c e_mod_main.h 


Log Message:


2 pending patches in my inbox.

1. "allow overlap" patch for modules - needs better names in the gui (Allow
windows to overlap maybe - as allow overlap is very vague)
2. itray module (buggy - buggy - beware. i know why. beware i said!)
3. TODO items

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/cpufreq/e_mod_main.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- e_mod_main.c        7 Jan 2006 14:20:48 -0000       1.31
+++ e_mod_main.c        20 Jan 2006 04:04:13 -0000      1.32
@@ -25,6 +25,7 @@
 static void     _cpufreq_menu_normal(void *data, E_Menu *m, E_Menu_Item *mi);
 static void     _cpufreq_menu_slow(void *data, E_Menu *m, E_Menu_Item *mi);
 static void     _cpufreq_menu_very_slow(void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void    _cpufreq_menu_cb_allow_overlap(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void     _cpufreq_menu_restore_governor(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void     _cpufreq_menu_governor(void *data, E_Menu *m, E_Menu_Item *mi);
 static void     _cpufreq_menu_frequency(void *data, E_Menu *m, E_Menu_Item 
*mi);
@@ -50,6 +51,8 @@
 static void          _cpufreq_face_cb_set_frequency(void *data, Evas_Object 
*o, const char *emission, const char *source);
 static void          _cpufreq_face_cb_set_governor(void *data, Evas_Object *o, 
const char *emission, const char *source);
 
+static void    _cpufreq_cb_update_policy(Cpufreq *e);
+
 static E_Config_DD *conf_edd;
 static E_Config_DD *conf_face_edd;
 
@@ -141,6 +144,7 @@
 #define T Config
 #define D conf_edd
    E_CONFIG_VAL(D, T, poll_time, DOUBLE);
+   E_CONFIG_VAL(D, T, allow_overlap, INT);
    E_CONFIG_LIST(D, T, faces, conf_face_edd);
    E_CONFIG_VAL(D, T, restore_governor, INT);
    E_CONFIG_VAL(D, T, governor, STR);
@@ -152,8 +156,10 @@
        e->conf->poll_time = 2.0;
        e->conf->restore_governor = 0;
        e->conf->governor = NULL;
+       e->conf->allow_overlap = 0;
      }
    E_CONFIG_LIMIT(e->conf->poll_time, 0.5, 60.0);
+   E_CONFIG_LIMIT(e->conf->allow_overlap, 0, 1);
 #ifdef __FreeBSD__     
    /* does e_module_dir_get(module) work correctly in linux???  - yes it 
does... what's wrong in bsd? */
    snprintf(buf, sizeof(buf), "%s/%s/cpufreq/freqset", 
e_module_dir_get(module), MODULE_ARCH);
@@ -209,6 +215,13 @@
 
                  _cpufreq_face_menu_new(ef);
 
+                 /* Add 'Allow Overlap' option */
+                 mi = e_menu_item_new(ef->menu);
+                 e_menu_item_label_set(mi, _("Allow Overlap"));
+                 e_menu_item_check_set(mi, 1);
+                 e_menu_item_toggle_set(mi, e->conf->allow_overlap);
+                 e_menu_item_callback_set(mi, _cpufreq_menu_cb_allow_overlap, 
e);
+
                  /* Add poll time menu to this face */
                  mi = e_menu_item_new(ef->menu);
                  e_menu_item_label_set(mi, _("Set Poll Time"));
@@ -396,6 +409,38 @@
    e_config_save_queue();
 }
 
+static void _cpufreq_cb_update_policy(Cpufreq *e)
+{
+  Cpufreq_Face     *cf;
+  Evas_List        *l;
+  E_Gadman_Policy   policy;
+
+  for (l = e->faces; l; l = l->next)
+    {
+      cf = l->data;
+      policy = cf->gmc->policy;
+
+      if (e->conf->allow_overlap == 0)
+       policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
+      else
+       policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
+
+      e_gadman_client_policy_set(cf->gmc, policy);
+    }
+}
+
+static void _cpufreq_menu_cb_allow_overlap(void *data, E_Menu *m, E_Menu_Item 
*mi)
+{
+  Cpufreq *e;
+
+  e = data;
+  e->conf->allow_overlap = e_menu_item_toggle_get(mi);
+  _cpufreq_cb_update_policy(e);
+  e_config_save_queue();
+}
+
+
+
 static void
 _cpufreq_menu_restore_governor(void *data, E_Menu *m, E_Menu_Item *mi)
 {
@@ -543,6 +588,12 @@
    mn = e_menu_new();
 
    mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, _("Allow Overlap"));
+   e_menu_item_check_set(mi, 1);
+   e_menu_item_toggle_set(mi, e->conf->allow_overlap);
+   e_menu_item_callback_set(mi, _cpufreq_menu_cb_allow_overlap, e);
+   
+   mi = e_menu_item_new(mn);
    e_menu_item_label_set(mi, _("Set Poll Time"));
    e_menu_item_submenu_set(mi, e->config_menu_poll);
 
@@ -861,6 +912,7 @@
 {
    Evas_Object *o;
    Cpufreq_Face *ef;
+   E_Gadman_Policy  policy;
 
    ef = E_NEW(Cpufreq_Face, 1);
    if (!ef) return NULL;
@@ -890,9 +942,19 @@
 
    ef->gmc = e_gadman_client_new(ef->con->gadman);
    e_gadman_client_domain_set(ef->gmc, "module.cpufreq", cpufreq_count++);
-   e_gadman_client_policy_set(ef->gmc, E_GADMAN_POLICY_ANYWHERE |
-                             E_GADMAN_POLICY_HMOVE | E_GADMAN_POLICY_VMOVE |
-                             E_GADMAN_POLICY_HSIZE | E_GADMAN_POLICY_VSIZE);
+
+   policy = E_GADMAN_POLICY_ANYWHERE  |
+           E_GADMAN_POLICY_HMOVE     |
+           E_GADMAN_POLICY_VMOVE     |
+           E_GADMAN_POLICY_HSIZE     |
+           E_GADMAN_POLICY_VSIZE;
+
+   if (owner->conf->allow_overlap == 0)
+     policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
+   else
+     policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
+
+   e_gadman_client_policy_set(ef->gmc, policy);
    e_gadman_client_min_size_set(ef->gmc, 4, 4);
    e_gadman_client_max_size_set(ef->gmc, 128, 128);
    /* This module needs a slightly higher min size */
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/cpufreq/e_mod_main.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_mod_main.h        27 Dec 2005 17:16:58 -0000      1.7
+++ e_mod_main.h        20 Jan 2006 04:04:13 -0000      1.8
@@ -23,6 +23,7 @@
 struct _Config
 {
    double poll_time;
+   int   allow_overlap;
    Evas_List *faces;
 
    int   restore_governor;




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to