Enlightenment CVS committal

Author  : handyande
Project : e17
Module  : apps/examine

Dir     : e17/apps/examine/src


Modified Files:
        Makefile.am ecore_config_client.c ecore_config_client.h 
        examine.c examine_client.c examine_client.h exsh.c ipc.h 


Log Message:
Yay, fixed the save bug :)
ecore_main_loop is now only manipulated if in text mode (exsh)
ran indent again :)
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/Makefile.am,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- Makefile.am 13 Jan 2004 19:51:50 -0000      1.2
+++ Makefile.am 25 Mar 2004 20:01:31 -0000      1.3
@@ -27,11 +27,11 @@
 exsh_DEPENDENCIES =
 
 examine_SOURCES = \
-examine.c \
 examine_client.c \
 examine_client.h \
 ecore_config_client.c \
-ecore_config_client.h 
+ecore_config_client.h \
+examine.c
 
 examine_LDADD = \
 @ewl_libs@ -ldl
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/ecore_config_client.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ecore_config_client.c       15 Mar 2004 20:54:06 -0000      1.4
+++ ecore_config_client.c       25 Mar 2004 20:01:31 -0000      1.5
@@ -89,7 +89,7 @@
 
 int
 ecore_config_ipc_init(Ecore_Config_Ipc_Server_List ** srv_list, char *pipe_name,
-                        connstate * cs)
+                      connstate * cs)
 {
   int global     , port, connected;
   struct stat     st;
@@ -240,7 +240,7 @@
 
 int
 ecore_config_ipc_send(Ecore_Config_Ipc_Server_List ** srv_list, int major,
-            int minor, void *data, int size)
+                      int minor, void *data, int size)
 {
   Ecore_Config_Ipc_Server_List *tmp = *srv_list;
   static int      ref = 0;
@@ -265,9 +265,9 @@
 
   if ((debug >= 2) && (size > 0))
     print_data(data, size);
-
+#ifdef EXSH
   ecore_main_loop_begin();
-
+#endif
   return ECORE_CONFIG_ERR_SUCC;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/ecore_config_client.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ecore_config_client.h       3 Mar 2004 23:51:29 -0000       1.3
+++ ecore_config_client.h       25 Mar 2004 20:01:31 -0000      1.4
@@ -14,11 +14,12 @@
 /* in client lib */
 const char     *ecore_config_error(int no);
 int             ecore_config_ipc_init(Ecore_Config_Ipc_Server_List ** srv_list,
-                            char *pipe_name, connstate * cs);
+                                      char *pipe_name, connstate * cs);
 int             ecore_config_ipc_exit(Ecore_Config_Ipc_Server_List ** srv_list);
 int             ecore_config_ipc_sigexit(void *data, int type, void *event);
 int             ecore_config_ipc_send(Ecore_Config_Ipc_Server_List ** srv_list,
-                            int major, int minor, void *data, int size);
+                                      int major, int minor, void *data,
+                                      int size);
 int             send_append(char **mp, int *lp, char *dp);
 
 extern int      debug;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/examine.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- examine.c   3 Mar 2004 23:51:29 -0000       1.7
+++ examine.c   25 Mar 2004 20:01:31 -0000      1.8
@@ -17,7 +17,6 @@
 int             debug = 1;
 
 void            render_ewl(void);
-void            draw_tree(void);
 void            print_usage(void);
 
 Ewl_Widget     *main_win;
@@ -54,7 +53,7 @@
   ecore_init();
   ecore_app_args_set(argc, (const char **) argv);
   ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, ecore_config_ipc_sigexit,
-                            &cs);
+                          &cs);
 
   ewl_init(&argc, argv);
 
@@ -118,7 +117,6 @@
 cb_revert(Ewl_Widget * w, void *ev_data, void *user_data)
 {
   examine_client_revert_list();
-  draw_tree();
 }
 
 void
@@ -154,26 +152,23 @@
 /* UI constructor */
 
 void
-draw_tree(void)
+draw_tree(examine_prop * prop_item)
 {
-  examine_prop   *prop_item;
   Ewl_Widget     *entries[2];
 
   ewl_container_reset(EWL_CONTAINER(tree_box));
-  prop_item = examine_client_list_props();
   while (prop_item) {
     entries[0] = ewl_text_new(prop_item->key);
 
     if (prop_item->type == PT_STR) {
-      entries[1] = ewl_entry_new(prop_item->value.ptr);
-      ewl_callback_append(EWL_ENTRY(entries[1])->text, EWL_CALLBACK_VALUE_CHANGED,
-                          cb_set_str, prop_item);
+      entries[1] = ewl_entry_new("");
+      ewl_callback_append(EWL_ENTRY(entries[1])->text,
+                          EWL_CALLBACK_VALUE_CHANGED, cb_set_str, prop_item);
     } else if (prop_item->type == PT_INT) {
       entries[1] = ewl_spinner_new();
 
       ewl_spinner_set_digits(EWL_SPINNER(entries[1]), 0);
       ewl_spinner_set_step(EWL_SPINNER(entries[1]), 1);
-      ewl_spinner_set_value(EWL_SPINNER(entries[1]), prop_item->value.val);
       if (prop_item->bound & BOUND_BOUND) {
         ewl_spinner_set_min_val(EWL_SPINNER(entries[1]), prop_item->min);
         ewl_spinner_set_max_val(EWL_SPINNER(entries[1]), prop_item->max);
@@ -187,7 +182,6 @@
 
 /*          ewl_spinner_set_digits(EWL_SPINNER(input), 0);
             ewl_spinner_set_step(EWL_SPINNER(input), 1);*/
-      ewl_spinner_set_value(EWL_SPINNER(entries[1]), prop_item->value.fval);
       if (prop_item->bound & BOUND_BOUND) {
         ewl_spinner_set_min_val(EWL_SPINNER(entries[1]), prop_item->fmin);
         ewl_spinner_set_max_val(EWL_SPINNER(entries[1]), prop_item->fmax);
@@ -197,11 +191,13 @@
       ewl_callback_append(entries[1], EWL_CALLBACK_VALUE_CHANGED, cb_set_float,
                           prop_item);
     } else if (prop_item->type == PT_RGB) {
-      entries[1] = ewl_entry_new(prop_item->value.ptr);
-      ewl_callback_append(EWL_ENTRY(entries[1])->text, EWL_CALLBACK_VALUE_CHANGED,
-                          cb_set_str, prop_item);
+      entries[1] = ewl_entry_new("");
+      ewl_callback_append(EWL_ENTRY(entries[1])->text,
+                          EWL_CALLBACK_VALUE_CHANGED, cb_set_str, prop_item);
     } else
       entries[1] = ewl_text_new("unknown");
+    prop_item->w = entries[1];
+    examine_client_get_val(prop_item->key);
 
     ewl_widget_show(entries[0]);
     ewl_widget_show(entries[1]);
@@ -235,7 +231,7 @@
   free(headers[0]);
   free(headers[1]);
 
-  draw_tree();
+  examine_client_list_props();
 
   row = ewl_hbox_new();
   ewl_container_append_child(EWL_CONTAINER(main_box), row);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/examine_client.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- examine_client.c    3 Mar 2004 23:51:29 -0000       1.3
+++ examine_client.c    25 Mar 2004 20:01:31 -0000      1.4
@@ -13,6 +13,13 @@
 
 #include "examine_client.h"
 
+typedef enum Examine_Callback_Type {
+  EX_DATA_SET = 0,
+  EX_DATA_GET = 1,
+  EX_DATA_LIST = 2
+} Examine_Callback_Type;
+
+Examine_Callback_Type expected_type;
 
 char           *examine_client_buf;
 Ecore_Config_Ipc_Server_List *examine_client_server;
@@ -39,7 +46,6 @@
   connstate      *cs = (connstate *) data;
 
   *cs = OFFLINE;
-  ecore_main_loop_quit();
   E(1, "examine: Disconnected.\n");
   return 1;
 }
@@ -65,7 +71,17 @@
     E(3, "OK\n");
   else
     E(2, "result: %d\n", e->response);
-  ecore_main_loop_quit();
+
+  switch (expected_type) {
+  case EX_DATA_GET:
+    examine_client_get_val_cb();
+    break;
+  case EX_DATA_LIST:
+    examine_client_list_props_cb();
+    break;
+  default:
+    break;
+  }
   return 1;
 }
 
@@ -142,10 +158,25 @@
     free(m);
 }
 
-examine_prop   *
+void
 examine_client_list_props(void)
 {
   call           *c;
+
+  if (prop_list) {
+    draw_tree(prop_list);
+    return;
+  }
+
+  c = find_call("prop-list");
+  examine_client_send(c, NULL, NULL);
+
+  expected_type = EX_DATA_LIST;
+}
+
+void
+examine_client_list_props_cb(void)
+{
   examine_prop   *prop_tmp;
   char           *label, *typename, *start, *end;
   int             tmpi;
@@ -154,13 +185,6 @@
   int             mini, maxi;
   float           mind, maxd;
 
-
-  if (prop_list)
-    return prop_list;
-
-  c = find_call("prop-list");
-  examine_client_send(c, NULL, NULL);
-
   if (examine_client_buf && (strlen(examine_client_buf) > 0)) {
 
     start = examine_client_buf;
@@ -204,14 +228,8 @@
 
         if (!strcmp(type, "string")) {
           prop_tmp->type = PT_STR;
-          prop_tmp->value.ptr = strdup(examine_client_get_val(label));
-          prop_tmp->oldvalue.ptr = strdup(examine_client_get_val(label));
         } else if (!strcmp(type, "integer")) {
           prop_tmp->type = PT_INT;
-
-          sscanf(examine_client_get_val(label), "%d", &tmpi);
-          prop_tmp->value.val = tmpi;
-          prop_tmp->oldvalue.val = tmpi;
           if (*range) {
             prop_tmp->bound |= BOUND_BOUND;
             sscanf(range, "%d..%d", &mini, &maxi);
@@ -225,10 +243,6 @@
           }
         } else if (!strcmp(type, "float")) {
           prop_tmp->type = PT_FLT;
-
-          sscanf(examine_client_get_val(label), "%lf", &tmpd);
-          prop_tmp->value.fval = tmpd;
-          prop_tmp->oldvalue.fval = tmpd;
           if (*range) {
             prop_tmp->bound |= BOUND_BOUND;
             sscanf(range, "%lf..%lf", &mind, &maxd);
@@ -242,8 +256,6 @@
           }
         } else if (!strcmp(type, "colour")) {
           prop_tmp->type = PT_RGB;
-          prop_tmp->value.ptr = strdup(label);
-          prop_tmp->oldvalue.ptr = strdup(label);
         } else
           prop_tmp->value.ptr = NULL;
 
@@ -256,7 +268,7 @@
   }
   free(examine_client_buf);
 
-  return prop_list;
+  draw_tree(prop_list);
 }
 
 void
@@ -269,6 +281,7 @@
     examine_client_revert(prop_item);
     prop_item = prop_item->next;
   }
+  draw_tree(prop_list);
 }
 
 void
@@ -322,26 +335,66 @@
       examine_client_set_val(target);
     }
   }
-
 }
 
-char           *
+void
 examine_client_get_val(char *key)
 {
-  char           *ret, *end;
   call           *c;
 
   c = find_call("prop-get");
+  expected_type = EX_DATA_GET;
   examine_client_send(c, key, NULL);
+}
+
+void
+examine_client_get_val_cb(void)
+{
+  char           *ret, *key, *end, *tmp;
+  int             tmpi;
+  float           tmpd;
+  examine_prop   *prop;
+
   ret = strstr(examine_client_buf, "=") + 1;
   if (*ret == '"') {
     ret++;
     if (end = strstr(ret, "\""))
       *end = '\0';
   }
+
   if (*(ret + strlen(ret) - 1) == '\n')
     *(ret + strlen(ret) - 1) = '\0';
-  return ret;
+  key = examine_client_buf;
+  tmp = strstr(examine_client_buf, ":");
+  *tmp = '\0';
+
+  prop = prop_list;
+  while (prop) {
+    if (!strcmp(key, prop->key))
+      break;
+    prop = prop->next;
+  }
+  if (!prop)
+    return;
+
+  switch (prop->type) {
+  case PT_INT:
+    sscanf(ret, "%d", &tmpi);
+    prop->value.val = tmpi;
+    prop->oldvalue.val = tmpi;
+    ewl_spinner_set_value(EWL_SPINNER(prop->w), (double) tmpi);
+    break;
+  case PT_FLT:
+    sscanf(ret, "%lf", &tmpd);
+    prop->value.fval = tmpd;
+    prop->oldvalue.fval = tmpd;
+    ewl_spinner_set_value(EWL_SPINNER(prop->w), tmpd);
+    break;
+  default:                     /* PT_STR, PT_RGB */
+    prop->value.ptr = strdup(ret);
+    prop->oldvalue.ptr = strdup(ret);
+    ewl_entry_set_text(EWL_ENTRY(prop->w), ret);
+  }
 }
 
 void
@@ -366,6 +419,8 @@
   }
 
   examine_client_send(c, target->key, valstr);
+
+  expected_type = EX_DATA_SET;
 }
 
 int
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/examine_client.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- examine_client.h    3 Mar 2004 23:51:29 -0000       1.3
+++ examine_client.h    25 Mar 2004 20:01:31 -0000      1.4
@@ -1,5 +1,6 @@
 #include "ecore_config_client.h"
 #include "ipc.h"
+#include <Ewl.h>
 
 typedef enum {
   P_NONE = 0,
@@ -15,7 +16,7 @@
 
 
 typedef struct _call {
-  Ecore_Config_Ipc_Call     id;
+  Ecore_Config_Ipc_Call id;
   char           *name;
   para            signature;
 } call;
@@ -43,6 +44,7 @@
     long            val;
     float           fval;
   } oldvalue;
+  Ewl_Widget       *w;
   struct examine_prop *next;
 } examine_prop;
 
@@ -75,12 +77,12 @@
 
 
 int             examine_client_send(call * c, char *key, char *val);
-examine_prop   *examine_client_list_props(void);
+void            examine_client_list_props(void);
 void            examine_client_revert_list(void);
 void            examine_client_revert(examine_prop * target);
 void            examine_client_save_list(void);
 void            examine_client_save(examine_prop * target);
-char           *examine_client_get_val(char *key);
+void            examine_client_get_val(char *key);
 void            examine_client_set_val(examine_prop * target);
 int             examine_client_init(char *pipe_name, connstate * cs);
 int             examine_client_exit(void);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/exsh.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- exsh.c      3 Mar 2004 23:51:29 -0000       1.4
+++ exsh.c      25 Mar 2004 20:01:31 -0000      1.5
@@ -13,6 +13,8 @@
 #include <string.h>
 #include <ctype.h>
 
+#define EXSH 1
+
 #ifdef HAVE_LIBREADLINE
 #  define HISTORY "/.ecore/exsh_history"
 #  if defined(HAVE_READLINE_READLINE_H)
@@ -67,7 +69,7 @@
 
 
 typedef struct _call {
-  Ecore_Config_Ipc_Call     id;
+  Ecore_Config_Ipc_Call id;
   char           *name;
   para            signature;
   const char     *help;
@@ -622,11 +624,13 @@
 
   ecore_init();
   ecore_app_args_set(argc, (const char **) argv);
-  ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, ecore_config_ipc_sigexit, &cs);
+  ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, ecore_config_ipc_sigexit,
+                          &cs);
 
 reconnect:
   cc++;
-  if ((ret = ecore_config_ipc_init(&server, pipe_name, &cs)) != ECORE_CONFIG_ERR_SUCC)
+  if ((ret =
+       ecore_config_ipc_init(&server, pipe_name, &cs)) != ECORE_CONFIG_ERR_SUCC)
     E(0, "exsh: %sconnect to %s failed: %d\n", (cc > 1) ? "re" : "", pipe_name,
       ret);
   else {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/examine/src/ipc.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ipc.h       3 Mar 2004 23:51:29 -0000       1.3
+++ ipc.h       25 Mar 2004 20:01:31 -0000      1.4
@@ -19,14 +19,22 @@
 
 Ecore_Config_Server *_ecore_config_server_convert(void *srv);
 
-char *_ecore_config_ipc_prop_list(Ecore_Config_Server *srv, const long serial);
-char *_ecore_config_ipc_prop_desc(Ecore_Config_Server *srv, const long serial,const 
char *key);
-char *_ecore_config_ipc_prop_get(Ecore_Config_Server *srv, const long serial,const 
char *key);
-int   _ecore_config_ipc_prop_set(Ecore_Config_Server *srv, const long serial,const 
char *key,const char *val);
-
-char *_ecore_config_ipc_bundle_list(Ecore_Config_Server *srv);
-int   _ecore_config_ipc_bundle_new(Ecore_Config_Server *srv, const char *);
-char *_ecore_config_ipc_bundle_label_get(Ecore_Config_Server *srv, const long);
-int   _ecore_config_ipc_bundle_label_set(Ecore_Config_Server *srv, const long,const 
char *);
-long  _ecore_config_ipc_bundle_label_find(Ecore_Config_Server *srv, const char *);
+char           *_ecore_config_ipc_prop_list(Ecore_Config_Server * srv,
+                                            const long serial);
+char           *_ecore_config_ipc_prop_desc(Ecore_Config_Server * srv,
+                                            const long serial, const char *key);
+char           *_ecore_config_ipc_prop_get(Ecore_Config_Server * srv,
+                                           const long serial, const char *key);
+int             _ecore_config_ipc_prop_set(Ecore_Config_Server * srv,
+                                           const long serial, const char *key,
+                                           const char *val);
 
+char           *_ecore_config_ipc_bundle_list(Ecore_Config_Server * srv);
+int             _ecore_config_ipc_bundle_new(Ecore_Config_Server * srv,
+                                             const char *);
+char           *_ecore_config_ipc_bundle_label_get(Ecore_Config_Server * srv,
+                                                   const long);
+int             _ecore_config_ipc_bundle_label_set(Ecore_Config_Server * srv,
+                                                   const long, const char *);
+long            _ecore_config_ipc_bundle_label_find(Ecore_Config_Server * srv,
+                                                    const char *);




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to