Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_int_border_prop.c 


Log Message:


more props!

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_prop.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_int_border_prop.c 29 May 2006 07:35:41 -0000      1.1
+++ e_int_border_prop.c 16 Jun 2006 04:16:13 -0000      1.2
@@ -6,7 +6,6 @@
 /* PROTOTYPES - same all the time */
 static void *_create_data(E_Config_Dialog *cfd);
 static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
-static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata);
 static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata);
 
 /* Actual config data we will be playing with whil the dialog is active */
@@ -31,9 +30,19 @@
       char *max;
       char *base;
       char *step;
+
+      char *aspect;
+      char *initial_state;
+      char *state;
+      char *window_id;
+      char *window_group;
+      char *transient_for;
+      char *client_leader;
+      char *gravity;
+      char *command;
       
       int take_focus;
-      int accept_focus;
+      int accepts_focus;
       int urgent;
       int delete_request;
       int request_pos;
@@ -54,7 +63,7 @@
          /* methods */
          v->create_cfdata           = _create_data;
          v->free_cfdata             = _free_data;
-         v->basic.apply_cfdata      = _basic_apply_data;
+         v->basic.apply_cfdata      = NULL;
          v->basic.create_widgets    = _basic_create_widgets;
          v->advanced.apply_cfdata   = NULL;
          v->advanced.create_widgets = NULL;
@@ -71,7 +80,7 @@
 _create_data(E_Config_Dialog *cfd)
 {
    E_Config_Dialog_Data *cfdata;
-   char buf[256];
+   char buf[4096];
    
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
    cfdata->border = cfd->data;
@@ -114,6 +123,135 @@
                 cfdata->border->client.icccm.step_h);
        cfdata->icccm.step = strdup(buf);
      }
+   if ((cfdata->border->client.icccm.min_aspect > 0.0) &&
+       (cfdata->border->client.icccm.max_aspect > 0.0))
+     {
+       snprintf(buf, sizeof(buf), "%1.3f-%1.3f",
+                cfdata->border->client.icccm.min_aspect,
+                cfdata->border->client.icccm.max_aspect);
+       cfdata->icccm.aspect = strdup(buf);
+     }
+   if (cfdata->border->client.icccm.initial_state != 
ECORE_X_WINDOW_STATE_HINT_NONE)
+     {
+       switch (cfdata->border->client.icccm.initial_state)
+         {
+          case ECORE_X_WINDOW_STATE_HINT_WITHDRAWN:
+            snprintf(buf, sizeof(buf), "Withdrawn");
+            break;
+          case ECORE_X_WINDOW_STATE_HINT_NORMAL:
+            snprintf(buf, sizeof(buf), "Normal");
+            break;
+          case ECORE_X_WINDOW_STATE_HINT_ICONIC:
+            snprintf(buf, sizeof(buf), "Iconic");
+            break;
+          default:
+            buf[0] = 0;
+            break;
+         }
+       cfdata->icccm.initial_state = strdup(buf);
+     }
+   if (cfdata->border->client.icccm.state != ECORE_X_WINDOW_STATE_HINT_NONE)
+     {
+       switch (cfdata->border->client.icccm.state)
+         {
+          case ECORE_X_WINDOW_STATE_HINT_WITHDRAWN:
+            snprintf(buf, sizeof(buf), "Withdrawn");
+            break;
+          case ECORE_X_WINDOW_STATE_HINT_NORMAL:
+            snprintf(buf, sizeof(buf), "Normal");
+            break;
+          case ECORE_X_WINDOW_STATE_HINT_ICONIC:
+            snprintf(buf, sizeof(buf), "Iconic");
+            break;
+          default:
+            buf[0] = 0;
+            break;
+         }
+       cfdata->icccm.state = strdup(buf);
+     }
+   snprintf(buf, sizeof(buf), "0x%08x",
+           cfdata->border->client.win);
+   cfdata->icccm.window_id = strdup(buf);
+   if (cfdata->border->client.icccm.window_group != 0)
+     {
+       snprintf(buf, sizeof(buf), "0x%08x",
+                cfdata->border->client.icccm.window_group);
+       cfdata->icccm.window_group = strdup(buf);
+     }
+   if (cfdata->border->client.icccm.transient_for != 0)
+     {
+       snprintf(buf, sizeof(buf), "0x%08x",
+                cfdata->border->client.icccm.transient_for);
+       cfdata->icccm.transient_for = strdup(buf);
+     }
+   if (cfdata->border->client.icccm.client_leader != 0)
+     {
+       snprintf(buf, sizeof(buf), "0x%08x",
+                cfdata->border->client.icccm.client_leader);
+       cfdata->icccm.client_leader = strdup(buf);
+     }
+   switch (cfdata->border->client.icccm.gravity)
+     {
+      case ECORE_X_GRAVITY_FORGET:
+       snprintf(buf, sizeof(buf), "Forget/Unmap");
+       break;
+      case ECORE_X_GRAVITY_NW:
+       snprintf(buf, sizeof(buf), "Northwest");
+       break;
+      case ECORE_X_GRAVITY_N:
+       snprintf(buf, sizeof(buf), "North");
+       break;
+      case ECORE_X_GRAVITY_NE:
+       snprintf(buf, sizeof(buf), "Northeast");
+       break;
+      case ECORE_X_GRAVITY_W:
+       snprintf(buf, sizeof(buf), "West");
+       break;
+      case ECORE_X_GRAVITY_CENTER:
+       snprintf(buf, sizeof(buf), "Center");
+       break;
+      case ECORE_X_GRAVITY_E:
+       snprintf(buf, sizeof(buf), "East");
+       break;
+      case ECORE_X_GRAVITY_SW:
+       snprintf(buf, sizeof(buf), "Sowthwest");
+       break;
+      case ECORE_X_GRAVITY_S:
+       snprintf(buf, sizeof(buf), "South");
+       break;
+      case ECORE_X_GRAVITY_SE:
+       snprintf(buf, sizeof(buf), "Southeast");
+       break;
+      case ECORE_X_GRAVITY_STATIC:
+       snprintf(buf, sizeof(buf), "Static");
+       break;
+      default:
+       buf[0] = 0;
+       break;
+     }
+   cfdata->icccm.gravity = strdup(buf);
+   if (cfdata->border->client.icccm.command.argv)
+     {
+       int i;
+       
+       buf[0] = 0;
+       for (i = 0; i < cfdata->border->client.icccm.command.argc; i++)
+         {
+            if ((sizeof(buf) - strlen(buf)) < 
+                (strlen(cfdata->border->client.icccm.command.argv[i]) - 2))
+              break;
+            strcat(buf, cfdata->border->client.icccm.command.argv[i]);
+            strcat(buf, " ");
+         }
+       cfdata->icccm.command = strdup(buf);
+     }
+   
+   cfdata->icccm.take_focus = cfdata->border->client.icccm.take_focus;
+   cfdata->icccm.accepts_focus = cfdata->border->client.icccm.accepts_focus;
+   cfdata->icccm.urgent = cfdata->border->client.icccm.urgent;
+   cfdata->icccm.delete_request = cfdata->border->client.icccm.delete_request;
+   cfdata->icccm.request_pos = cfdata->border->client.icccm.request_pos;
+   
    return cfdata;
 }
 
@@ -132,16 +270,18 @@
    IFREE(icccm.max);
    IFREE(icccm.base);
    IFREE(icccm.step);
+   IFREE(icccm.aspect);
+   IFREE(icccm.initial_state);
+   IFREE(icccm.state);
+   IFREE(icccm.window_id);
+   IFREE(icccm.window_group);
+   IFREE(icccm.transient_for);
+   IFREE(icccm.client_leader);
+   IFREE(icccm.gravity);
+   IFREE(icccm.command);
    free(cfdata);
 }
 
-/**--APPLY--**/
-static int
-_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
-{
-   return 1; /* Apply was OK */
-}
-
 /**--GUI--**/
 static Evas_Object *
 _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata)
@@ -160,23 +300,46 @@
       ob = e_widget_entry_add(evas, &(cfdata->val)); \
       if (!cfdata->val) e_widget_disabled_set(ob, 1); \
       e_widget_min_size_get(ob, &mw, &mh); \
-      e_widget_min_size_set(ob, 80, mh); \
+      e_widget_min_size_set(ob, 160, mh); \
+      e_widget_frametable_object_append(of, ob, x + 1, y, 1, 1,    1, 1, 1, 
1); \
+   }
+#define CHK_ENTRY(label, x, y, val) \
+   { \
+      ob = e_widget_label_add(evas, label); \
+      e_widget_frametable_object_append(of, ob, x, y, 1, 1,    1, 1, 1, 1); \
+      ob = e_widget_check_add(evas, "", &(cfdata->val)); \
       e_widget_frametable_object_append(of, ob, x + 1, y, 1, 1,    1, 1, 1, 
1); \
    }
    
    of = e_widget_frametable_add(evas, _("ICCCM"), 0);
 
-   STR_ENTRY(_("Title"),     0, 0, icccm.title);
-   STR_ENTRY(_("Name"),      0, 1, icccm.name);
-   STR_ENTRY(_("Class"),     0, 2, icccm.class);
-   STR_ENTRY(_("Icon Name"), 0, 3, icccm.icon_name);
-   STR_ENTRY(_("Machine"),   0, 4, icccm.machine);
-   STR_ENTRY(_("Role"),      0, 5, icccm.role);
-   
-   STR_ENTRY(_("Minimum Size"),   0, 6,  icccm.min);
-   STR_ENTRY(_("Maximum Size"),   0, 7,  icccm.max);
-   STR_ENTRY(_("Base Size"),      0, 8,  icccm.base);
-   STR_ENTRY(_("Resize Steps"),   0, 9,  icccm.step);
+   STR_ENTRY(_("Title"),          0, 0,    icccm.title);
+   STR_ENTRY(_("Name"),           0, 1,    icccm.name);
+   STR_ENTRY(_("Class"),          0, 2,    icccm.class);
+   STR_ENTRY(_("Icon Name"),      0, 3,    icccm.icon_name);
+   STR_ENTRY(_("Machine"),        0, 4,    icccm.machine);
+   STR_ENTRY(_("Role"),           0, 5,    icccm.role);
+   
+   STR_ENTRY(_("Minimum Size"),   0, 6,    icccm.min);
+   STR_ENTRY(_("Maximum Size"),   0, 7,    icccm.max);
+   STR_ENTRY(_("Base Size"),      0, 8,    icccm.base);
+   STR_ENTRY(_("Resize Steps"),   0, 9,    icccm.step);
+
+   STR_ENTRY(_("Aspect Ratio"),   0, 10,   icccm.aspect);
+   STR_ENTRY(_("Initial State"),  0, 11,   icccm.initial_state);
+   STR_ENTRY(_("State"),          0, 12,   icccm.state);
+   STR_ENTRY(_("Window ID"),      0, 13,   icccm.window_id);
+   STR_ENTRY(_("Window Group"),   0, 14,   icccm.window_group);
+   STR_ENTRY(_("Transient For"),  0, 15,   icccm.transient_for);
+   STR_ENTRY(_("Client Leader"),  0, 16,   icccm.client_leader);
+   STR_ENTRY(_("Gravity"),        0, 17,   icccm.gravity);
+   STR_ENTRY(_("Command"),        0, 18,   icccm.command);
+
+   CHK_ENTRY(_("Take Focus"),       0, 19, icccm.take_focus);
+   CHK_ENTRY(_("Accepts Focus"),    0, 20, icccm.accepts_focus);
+   CHK_ENTRY(_("Urgent"),           0, 21, icccm.urgent);
+   CHK_ENTRY(_("Request Delete"),   0, 22, icccm.delete_request);
+   CHK_ENTRY(_("Request Position"), 0, 23, icccm.request_pos);
    
    e_widget_table_object_append(o, of, 0, 0, 1, 1,    1, 1, 1, 1);
    




_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to