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