Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

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


Modified Files:
        e_mod_config.c 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/pager/e_mod_config.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_mod_config.c      14 Jan 2006 16:10:57 -0000      1.9
+++ e_mod_config.c      20 Jan 2006 04:04:14 -0000      1.10
@@ -11,6 +11,7 @@
    int name_pos;
    int show_popup;
    double popup_speed;
+   int allow_overlap;
 };
 
 struct _Cfg_File_Data 
@@ -61,6 +62,7 @@
    
    cfdata->show_popup = p->conf->popup;
    cfdata->popup_speed = p->conf->popup_speed;
+   cfdata->allow_overlap = p->conf->allow_overlap;
 }
 
 static void *
@@ -108,6 +110,11 @@
    e_widget_framelist_object_append(of, ob);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
+   of = e_widget_framelist_add(evas, _("Extras"), 0);
+   ob = e_widget_check_add(evas, _("Allow Overlap"), &(cfdata->allow_overlap));
+   e_widget_framelist_object_append(of, ob);
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
+
    /* Not Supported Yet ??
    ob = e_widget_radio_add(evas, _("Left"), PAGER_DESKNAME_LEFT, rg);
    e_widget_framelist_object_append(of, ob);
@@ -130,6 +137,11 @@
    p->conf->deskname_pos = cfdata->name_pos;
    if (!cfdata->show_name) p->conf->deskname_pos = PAGER_DESKNAME_NONE;
    
+   if (cfdata->allow_overlap && !p->conf->allow_overlap)
+     p->conf->allow_overlap = 1;
+   else if (!cfdata->allow_overlap && p->conf->allow_overlap)
+     p->conf->allow_overlap = 0;
+
    e_border_button_bindings_grab_all();
    e_config_save_queue();
    
@@ -176,6 +188,12 @@
    ob = e_widget_slider_add(evas, 1, 0, _("%1.1f seconds"), 0.1, 10.0, 0.1, 0, 
&(cfdata->popup_speed), NULL, 200);
    e_widget_framelist_object_append(of, ob);
    e_widget_list_object_append(o, of, 1, 1, 0.5);   
+
+   of = e_widget_framelist_add(evas, _("Extras"), 0);
+   ob = e_widget_check_add(evas, _("Allow Overlap"), &(cfdata->allow_overlap));
+   e_widget_framelist_object_append(of, ob);
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
+
    return o;
 }
 
@@ -192,6 +210,11 @@
    if (!cfdata->show_name) p->conf->deskname_pos = PAGER_DESKNAME_NONE;
    p->conf->popup_speed = cfdata->popup_speed;
    
+   if (cfdata->allow_overlap && !p->conf->allow_overlap)
+     p->conf->allow_overlap = 1;
+   else if (!cfdata->allow_overlap && p->conf->allow_overlap)
+     p->conf->allow_overlap = 0;
+
    e_border_button_bindings_grab_all();
    e_config_save_queue();
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.c,v
retrieving revision 1.162
retrieving revision 1.163
diff -u -3 -r1.162 -r1.163
--- e_mod_main.c        14 Jan 2006 12:30:46 -0000      1.162
+++ e_mod_main.c        20 Jan 2006 04:04:14 -0000      1.163
@@ -85,6 +85,8 @@
 static void        _pager_menu_cb_aspect_keep_width(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void        _pager_menu_cb_configure(void *data, E_Menu *m, E_Menu_Item 
*mi);
 
+static void       _pager_cb_update_policy(void *data);
+
 static int         _pager_count;
 
 static E_Config_DD *_conf_edd;
@@ -223,6 +225,7 @@
    E_CONFIG_VAL(D, T, deskname_pos, UINT);
    E_CONFIG_VAL(D, T, popup_speed, DOUBLE);
    E_CONFIG_VAL(D, T, popup, UINT);
+   E_CONFIG_VAL(D, T, allow_overlap, INT);
 
    pager->conf = e_config_domain_load("module.pager", _conf_edd);
 
@@ -232,10 +235,12 @@
        pager->conf->deskname_pos = PAGER_DESKNAME_NONE;
        pager->conf->popup_speed = 1.0;
        pager->conf->popup = 1;
+       pager->conf->allow_overlap = 0;
      }
    E_CONFIG_LIMIT(pager->conf->deskname_pos, PAGER_DESKNAME_NONE, 
PAGER_DESKNAME_RIGHT);
    E_CONFIG_LIMIT(pager->conf->popup_speed, 0.1, 10.0);
    E_CONFIG_LIMIT(pager->conf->popup, 0, 1);
+   E_CONFIG_LIMIT(pager->conf->allow_overlap, 0, 1);
 
    _pager_config_menu_new(pager);
 
@@ -424,6 +429,7 @@
    Evas_Coord   x, y, w, h;
    double       aspect;
    const char  *drop[] = { "enlightenment/border", "enlightenment/pager_win" };
+   E_Gadman_Policy  policy;
 
    face = E_NEW(Pager_Face, 1);
    if (!face) return NULL;
@@ -471,13 +477,21 @@
 
    e_gadman_client_domain_set(face->gmc, "module.pager", _pager_count++);
    e_gadman_client_zone_set(face->gmc, face->zone);
-   e_gadman_client_policy_set(face->gmc,
-//                           E_GADMAN_POLICY_FIXED_ZONE |
-                             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_FIXED_ZONE |
+           E_GADMAN_POLICY_VSIZE;
+
+   if (pager->conf->allow_overlap == 0)
+     policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
+   else
+     policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
+
+   e_gadman_client_policy_set(face->gmc, policy);
+
    e_gadman_client_min_size_set(face->gmc, 8, 8);
    e_gadman_client_max_size_set(face->gmc, 600, 600);
    e_gadman_client_auto_size_set(face->gmc,
@@ -2139,6 +2153,7 @@
 
    /* Handle Desktop Name Position Change */
    pager = data;
+   _pager_cb_update_policy(pager);
    for (l = pager->faces; l; l = l->next)
      {
        Pager_Face *face;
@@ -2147,3 +2162,24 @@
        _pager_face_deskname_position_change(face);
      }   
 }
+static void _pager_cb_update_policy(void *data)
+{
+  Pager     *pg;
+  Pager_Face *pf;
+  Evas_List   *l;
+  E_Gadman_Policy policy;
+
+  pg = data;
+  for (l = pg->faces; l; l = l->next)
+    {
+      pf = l->data;
+      policy = pf->gmc->policy;
+
+      if (pg->conf->allow_overlap == 0)
+       policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
+      else
+       policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
+      e_gadman_client_policy_set(pf->gmc , policy);
+    }
+}
+
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- e_mod_main.h        6 Jan 2006 21:45:57 -0000       1.40
+++ e_mod_main.h        20 Jan 2006 04:04:14 -0000      1.41
@@ -32,6 +32,8 @@
    double popup_speed;
    /* Show popup? */
    unsigned int popup;
+
+   int allow_overlap;
 };
 
 struct _Config_Face




-------------------------------------------------------
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