From: Enlightenment S. <no-...@en...> - 2010-06-25 09:03:05
|
Log: Fix paths for finding assurances. Author: nash Date: 2010-06-25 02:02:58 -0700 (Fri, 25 Jun 2010) New Revision: 49856 Modified: trunk/ensure/src/enasn.c trunk/ensure/src/ensure.c Modified: trunk/ensure/src/enasn.c =================================================================== --- trunk/ensure/src/enasn.c 2010-06-25 08:57:32 UTC (rev 49855) +++ trunk/ensure/src/enasn.c 2010-06-25 09:02:58 UTC (rev 49856) @@ -41,20 +41,22 @@ DIR *dir; char buf[BUFSIZ]; - if (path == NULL) path = "assurances"; + if (path == NULL) path = PACKAGE_MODULE_DIR; +printf("Tring: %s\n",path); dir = opendir(path); if (!dir) return -1; while ((de = readdir(dir))){ if (de->d_name[0] == '.') continue; - if (!(p = strstr(de->d_name,".asn"))) continue; - if (p[4]) continue; + if (!(p = strstr(de->d_name,".so"))) continue; + if (p[3]) continue; snprintf(buf,sizeof(buf),"%s/%s",path,de->d_name); dlh = dlopen(buf,RTLD_NOW|RTLD_LOCAL); if (!dlh){ - printf("Unable to open %s\n",buf); + printf("Unable to open %s: %s\n",buf, + dlerror()); continue; } asn = dlsym(dlh,"assurance"); Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2010-06-25 08:57:32 UTC (rev 49855) +++ trunk/ensure/src/ensure.c 2010-06-25 09:02:58 UTC (rev 49856) @@ -116,7 +116,7 @@ signal_init(); - enasn_load("assurances"); + enasn_load(NULL); elm_list_go(mainwindow); elm_run(); |
From: Enlightenment S. <no-...@en...> - 2010-06-25 09:16:37
|
Log: Remvoe makefile Author: nash Date: 2010-06-25 02:16:30 -0700 (Fri, 25 Jun 2010) New Revision: 49858 Removed: trunk/ensure/src/Makefile |
From: Enlightenment S. <no-...@en...> - 2010-06-25 09:18:06
|
Log: Ignore makefile Author: nash Date: 2010-06-25 02:17:59 -0700 (Fri, 25 Jun 2010) New Revision: 49859 Modified: trunk/ensure/src/ Property changes on: trunk/ensure/src ___________________________________________________________________ Modified: svn:ignore - ensure .deps Makefile.in + ensure .deps Makefile.in Makefile |
From: Enlightenment S. <no-...@en...> - 2010-06-26 04:56:19
|
Log: Finalise autoflub work. Author: nash Date: 2010-06-25 21:56:11 -0700 (Fri, 25 Jun 2010) New Revision: 49871 Modified: trunk/ensure/src/Makefile.am trunk/ensure/src/enasn.c trunk/ensure/src/ensure.c trunk/ensure/src/libensure.c trunk/ensure/src/parser.c trunk/ensure/src/parser.h Modified: trunk/ensure/src/Makefile.am =================================================================== --- trunk/ensure/src/Makefile.am 2010-06-25 22:40:42 UTC (rev 49870) +++ trunk/ensure/src/Makefile.am 2010-06-26 04:56:11 UTC (rev 49871) @@ -4,7 +4,9 @@ AM_LDFLAGS = @ELEMENTARY_LIBS@ AM_CFLAGS = @ELEMENTARY_CFLAGS@ -Wall \ - -DPACKAGE_MODULE_DIR=\"$(libdir)/ensure/assurances/\" -rdynamic + -DPACKAGE_MODULE_DIR=\"$(libdir)/assurances/\" \ + -DLIBENSURE_DIR=\"$(libdir)/\" \ + -rdynamic bin_PROGRAMS = ensure @@ -24,6 +26,7 @@ lib_LTLIBRARIES = libensure.la +libdir = $(prefix)/lib/ensure/ libensure_la_SOURCES = \ libensure.c Modified: trunk/ensure/src/enasn.c =================================================================== --- trunk/ensure/src/enasn.c 2010-06-25 22:40:42 UTC (rev 49870) +++ trunk/ensure/src/enasn.c 2010-06-26 04:56:11 UTC (rev 49871) @@ -42,7 +42,6 @@ char buf[BUFSIZ]; if (path == NULL) path = PACKAGE_MODULE_DIR; -printf("Tring: %s\n",path); dir = opendir(path); if (!dir) return -1; Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2010-06-25 22:40:42 UTC (rev 49870) +++ trunk/ensure/src/ensure.c 2010-06-26 04:56:11 UTC (rev 49871) @@ -65,7 +65,7 @@ static void dochild(char **args, int fd); static int signal_init(void); -static int signalfd_child(void *data, Ecore_Fd_Handler *fd_handler); +static Eina_Bool signalfd_child(void *data, Ecore_Fd_Handler *fd_handler); static void config_add_classes(Evas_Object *gl); static void cfg_sel(void *data, Evas_Object *obj, void *event); @@ -248,7 +248,6 @@ config_add_classes(Evas_Object *gl){ int i; for (i = 0 ; i < ENSURE_N_SEVERITIES ; i ++){ - printf("Add %s\n",severity[i].name); severity[i].item = elm_genlist_item_append(gl,&clc, severity + i, NULL, /* No parent */ @@ -455,7 +454,7 @@ return 0; } -static int +static Eina_Bool signalfd_child(void *data ensure_unused, Ecore_Fd_Handler *fdh){ int fd; struct signalfd_siginfo siginfo; @@ -568,7 +567,7 @@ dochild(char **args, int fd){ char buf[4]; - setenv("LD_PRELOAD", "./libensure.so.0",1); + setenv("LD_PRELOAD", LIBENSURE_DIR "/libensure.so",1); snprintf(buf, sizeof(buf), "%d",fd); setenv("ENSURE_FD", buf, 1); execvp(args[0],args); Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2010-06-25 22:40:42 UTC (rev 49870) +++ trunk/ensure/src/libensure.c 2010-06-26 04:56:11 UTC (rev 49871) @@ -15,15 +15,9 @@ #define ensure_unused __attribute__((unused)) -static int libensure_dump(void *data ensure_unused, Ecore_Fd_Handler *fdh); +static Eina_Bool libensure_dump(void *data ensure_unused, Ecore_Fd_Handler *fdh); static void libensure_objdump(Evas_Object *o, Evas_Object *parent); -struct Ecore_Evas_Wrap { - EINA_INLIST; -}; - -extern struct Ecore_Evas_Wrap *ecore_evases; - static FILE *outfile; __attribute__((constructor)) void @@ -60,13 +54,14 @@ } -static int +static Eina_Bool libensure_dump(void *data ensure_unused, Ecore_Fd_Handler *fdh){ int fd; struct signalfd_siginfo siginfo; Eina_List *os,*ot; Evas_Object *o; - struct Ecore_Evas_Wrap *eew; + Eina_List *ees,*l; + Ecore_Evas *ee; fd = ecore_main_fd_handler_fd_get(fdh); @@ -74,11 +69,14 @@ fprintf(outfile,"Ensure dump!\n"); - EINA_INLIST_FOREACH(ecore_evases, eew){ + ees = ecore_evas_ecore_evas_list_get(); + + EINA_LIST_FOREACH(ees, l, ee){ Evas *e; int w,h; - e = ecore_evas_get((Ecore_Evas *)eew); + e = ecore_evas_get(ee); evas_output_size_get(e,&w,&h); + fprintf(outfile,"E: %p %d %d\n",e,w,h); os = evas_objects_in_rectangle_get(e,SHRT_MIN, SHRT_MIN, USHRT_MAX, USHRT_MAX, true, true); Modified: trunk/ensure/src/parser.c =================================================================== --- trunk/ensure/src/parser.c 2010-06-25 22:40:42 UTC (rev 49870) +++ trunk/ensure/src/parser.c 2010-06-26 04:56:11 UTC (rev 49871) @@ -62,7 +62,7 @@ /* * Child data received: Hopefully an object */ -int +Eina_Bool child_data(void *data, Ecore_Fd_Handler *hdlr){ int fd; struct ensure *ensure = data; Modified: trunk/ensure/src/parser.h =================================================================== --- trunk/ensure/src/parser.h 2010-06-25 22:40:42 UTC (rev 49870) +++ trunk/ensure/src/parser.h 2010-06-26 04:56:11 UTC (rev 49871) @@ -1,3 +1,3 @@ -int child_data(void *data ensure_unused, Ecore_Fd_Handler *hdlr); +Eina_Bool child_data(void *data ensure_unused, Ecore_Fd_Handler *hdlr); |
From: Enlightenment S. <no-...@en...> - 2010-07-12 01:54:02
|
Log: More stringsharing. Author: nash Date: 2010-07-11 18:37:31 -0700 (Sun, 11 Jul 2010) New Revision: 50191 Modified: trunk/ensure/src/enedj.c trunk/ensure/src/enobj.c trunk/ensure/src/parser.c Modified: trunk/ensure/src/enedj.c =================================================================== --- trunk/ensure/src/enedj.c 2010-07-12 01:15:52 UTC (rev 50190) +++ trunk/ensure/src/enedj.c 2010-07-12 01:37:31 UTC (rev 50191) @@ -137,7 +137,7 @@ count = eina_list_count(file->image_dir->entries); images = calloc(1,sizeof(struct enedj)); - images->file = strdup(filename); + images->file = eina_stringshare_add(filename); images->images = calloc(count + 1, sizeof(char *)); images->nitems = count; images->nalloc = count + 1; @@ -150,7 +150,7 @@ continue; } /* FIXME: Check it's in range */ - images->images[ei->id] = strdup(ei->entry); + images->images[ei->id] = eina_stringshare_add(ei->entry); } return 0; Modified: trunk/ensure/src/enobj.c =================================================================== --- trunk/ensure/src/enobj.c 2010-07-12 01:15:52 UTC (rev 50190) +++ trunk/ensure/src/enobj.c 2010-07-12 01:37:31 UTC (rev 50191) @@ -72,12 +72,12 @@ enobj_free(void *enobjv){ struct enobj *enobj = enobjv; struct bug *bug; - printf("Free! %p\n",enobj); if (!enobj) return; - if (enobj->name) free(enobj->name); + if (enobj->name) eina_stringshare_del(enobj->name); if (streq(enobj->type, "text")){ - if (enobj->data.text.text) free(enobj->data.text.text); + if (enobj->data.text.text) + eina_stringshare_del(enobj->data.text.text); if (enobj->data.text.font) eina_stringshare_del(enobj->data.text.font); if (enobj->data.text.source) @@ -97,7 +97,7 @@ if (enobj->data.edje.err) eina_stringshare_del(enobj->data.edje.err); } - eina_stringshare_del(enobj->name); + eina_stringshare_del(enobj->type); /* Genlist item */ // elm_genlist_item_del(enobj->genitem); @@ -107,11 +107,11 @@ free(bug->desc); } - evas_object_del(enobj->win); + if (enobj->win) evas_object_del(enobj->win); eina_stringshare_del(enobj->type); - + free(enobj); } Modified: trunk/ensure/src/parser.c =================================================================== --- trunk/ensure/src/parser.c 2010-07-12 01:15:52 UTC (rev 50190) +++ trunk/ensure/src/parser.c 2010-07-12 01:37:31 UTC (rev 50191) @@ -37,7 +37,6 @@ static int parse_edje_err(struct enobj *eno, const char *prefix, char **linep); - static const struct parser { const char *prefix; int (*parser)(struct enobj *eno, const char *prefix, char **linep); @@ -275,7 +274,7 @@ p ++; p ++; start = p; while (*p != ']') p ++; - eno->data.text.text = strndup(start, p - start); + eno->data.text.text = eina_stringshare_add_length(start, p - start); p ++; p ++; *linep = p; |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:00
|
Log: Ignore more stuff Author: nash Date: 2011-03-22 02:03:53 -0700 (Tue, 22 Mar 2011) New Revision: 57964 Trac: http://trac.enlightenment.org/e/changeset/57964 Modified: trunk/ensure/src/.gitignore Modified: trunk/ensure/src/.gitignore =================================================================== --- trunk/ensure/src/.gitignore 2011-03-22 07:54:24 UTC (rev 57963) +++ trunk/ensure/src/.gitignore 2011-03-22 09:03:53 UTC (rev 57964) @@ -5,3 +5,5 @@ tags libensure.so.0 core +*.la +*.lo |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:20
|
Log: Remove some consts to make things saner. Author: nash Date: 2011-03-22 02:04:13 -0700 (Tue, 22 Mar 2011) New Revision: 57965 Trac: http://trac.enlightenment.org/e/changeset/57965 Modified: trunk/ensure/src/enasn.c trunk/ensure/src/ensure.c Modified: trunk/ensure/src/enasn.c =================================================================== --- trunk/ensure/src/enasn.c 2011-03-22 09:03:53 UTC (rev 57964) +++ trunk/ensure/src/enasn.c 2011-03-22 09:04:13 UTC (rev 57965) @@ -13,10 +13,10 @@ #include "ensure.h" #include "enobj.h" -static void bug_del(const void *, Evas_Object *obj); -static char *bug_label_get(const void *data, Evas_Object *, const char *); -static Evas_Object *bug_icon_get(const void *data, Evas_Object *, const char *); -static Eina_Bool bug_state_get(const void *data, Evas_Object *, const char *); +static void bug_del(void *, Evas_Object *obj); +static char *bug_label_get(void *data, Evas_Object *, const char *); +static Evas_Object *bug_icon_get(void *data, Evas_Object *, const char *); +static Eina_Bool bug_state_get(void *data, Evas_Object *, const char *); static const Elm_Genlist_Item_Class bugc = { @@ -146,23 +146,23 @@ static void -bug_del(const void *data ensure_unused, Evas_Object *obj ensure_unused){ +bug_del(void *data ensure_unused, Evas_Object *obj ensure_unused){ } static char * -bug_label_get(const void *data, Evas_Object *obj ensure_unused, +bug_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ const struct bug *bug = data; return strdup(bug->desc); } static Evas_Object * -bug_icon_get(const void *data ensure_unused, Evas_Object *obj ensure_unused, +bug_icon_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *part ensure_unused){ /* FIXME: Severity icon would be good */ return NULL; } static Eina_Bool -bug_state_get(const void *data ensure_unused, Evas_Object *obj ensure_unused, +bug_state_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *part ensure_unused){ return false; } Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:03:53 UTC (rev 57964) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:13 UTC (rev 57965) @@ -76,28 +76,28 @@ static void enobj_select(void *data, Evas_Object *obj, void *event); //static void enobj_expand(void *data, Evas_Object *obj, void *event); -static char *enobj_label_get(const void *data, Evas_Object *, const char *); -static Evas_Object *enobj_icon_get(const void *data, Evas_Object *, const char *); -static Eina_Bool enobj_state_get(const void *data, Evas_Object *, const char *); +static char *enobj_label_get(void *data, Evas_Object *, const char *); +static Evas_Object *enobj_icon_get(void *data, Evas_Object *, const char *); +static Eina_Bool enobj_state_get(void *data, Evas_Object *, const char *); -static char *cfg_label_get(const void *, Evas_Object *, const char *part); -static Evas_Object *cfg_icon_get(const void *, Evas_Object *, const char *part); -static Eina_Bool cfg_state_get(const void *, Evas_Object *, const char *part); -static void cfg_del(const void *, Evas_Object *obj); +static char *cfg_label_get(void *, Evas_Object *, const char *part); +static Evas_Object *cfg_icon_get(void *, Evas_Object *, const char *part); +static Eina_Bool cfg_state_get(void *, Evas_Object *, const char *part); +static void cfg_del(void *, Evas_Object *obj); -static char *asn_label_get(const void *data, Evas_Object *, const char *); -static Evas_Object *asn_icon_get(const void *data, Evas_Object *, const char *); -static Eina_Bool asn_state_get(const void *data, Evas_Object *, const char *); -static void asn_del(const void *data, Evas_Object *obj); +static char *asn_label_get(void *data, Evas_Object *, const char *); +static Evas_Object *asn_icon_get(void *data, Evas_Object *, const char *); +static Eina_Bool asn_state_get(void *data, Evas_Object *, const char *); +static void asn_del(void *data, Evas_Object *obj); static void asn_select(void *data, Evas_Object *obj, void *event); static void asn_select_toggle(void *data, Evas_Object *obj, void *event); -static char *enwin_label_get(const void *data, Evas_Object *, const char *); +static char *enwin_label_get(void *data, Evas_Object *, const char *); //static Evas_Object *enwin_icon_get(const void *data, Evas_Object *, const char *); -static Eina_Bool enwin_state_get(const void *data, Evas_Object *, const char *); +static Eina_Bool enwin_state_get(void *data, Evas_Object *, const char *); static void enwin_select(void *data, Evas_Object *obj, void *event); -static void enwin_del(const void *data, Evas_Object *obj); +static void enwin_del(void *data, Evas_Object *obj); @@ -108,15 +108,27 @@ Evas_Object *configlist; Evas_Object *box; Evas_Object *mainwindow; +bool changedir = false; #include "enedj.h" int elm_main(int argc, char **argv){ if (argc < 2){ - printf("Usage: %s <program>\n", argv[0]); + printf("Usage: %s [-c] <program>\n", argv[0]); + printf("\t-c\tStart subprogram in it's path directory\n"); + exit(0); } + + /* FIXME: this isn't implemented */ + if (streq(argv[1],"-c")){ + changedir = true; + memmove(argv + 1, argv + 2, argc - 1); + argv[argc] = 0; + argc --; + } + mainwindow = window_add(argv); signal_init(); @@ -318,13 +330,13 @@ elm_genlist_item_expanded_set(it, 0); } static void -cfg_del(const void *data ensure_unused, Evas_Object *obj ensure_unused){ +cfg_del(void *data ensure_unused, Evas_Object *obj ensure_unused){ } static char * -cfg_label_get(const void *data, Evas_Object *obj ensure_unused, +cfg_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ const struct severityinfo *info; @@ -332,29 +344,29 @@ return strdup(info->name); } static Evas_Object * -cfg_icon_get(const void *data ensure_unused, Evas_Object *obj ensure_unused, +cfg_icon_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *part ensure_unused){ return NULL; } static Eina_Bool -cfg_state_get(const void *data ensure_unused, Evas_Object *obj ensure_unused, +cfg_state_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *part ensure_unused){ return false; } /** Handlers for the subitems in the assurance list */ static char * -asn_label_get(const void *data, Evas_Object *obj ensure_unused, +asn_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ - const struct asninfo *info; + struct asninfo *info; info = data; return strdup(info->asn->summary); } static Evas_Object * -asn_icon_get(const void *data, Evas_Object *obj, const char *part){ - const struct asninfo *ai = data; +asn_icon_get(void *data, Evas_Object *obj, const char *part){ + struct asninfo *ai = data; Evas_Object *ck; if (strcmp(part, "elm.swallow.end") == 0){ @@ -369,15 +381,15 @@ return NULL; } static Eina_Bool -asn_state_get(const void *data, Evas_Object *obj ensure_unused, +asn_state_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ - const struct asninfo *ai; + struct asninfo *ai; ai = data; return ai->enabled; } static void -asn_del(const void *data ensure_unused, Evas_Object *obj ensure_unused){ +asn_del(void *data ensure_unused, Evas_Object *obj ensure_unused){ struct enwin *enwin = data; enwin->genitem = NULL; @@ -399,7 +411,7 @@ static char * -enwin_label_get(const void *data, Evas_Object *obj ensure_unused, +enwin_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ const struct enwin *enwin; const char *fmt = "Untitled Window '%p'"; @@ -428,7 +440,7 @@ return NULL; }*/ static Eina_Bool -enwin_state_get(const void *data ensure_unused, Evas_Object *obj ensure_unused, +enwin_state_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *state ensure_unused){ return false; } @@ -437,7 +449,7 @@ /* FIXME: Do something or delete this */ printf("Select... ignoring\n"); } -static void enwin_del(const void *data, Evas_Object *obj){ +static void enwin_del(void *data, Evas_Object *obj){ /* FIXME: Do something or delete this */ } @@ -466,7 +478,7 @@ elm_genlist_item_expanded_set(itemv, true); } static char * -enobj_label_get(const void *data, Evas_Object *obj ensure_unused, +enobj_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ const struct enobj *enobj = data; char buf[200]; @@ -481,7 +493,7 @@ return strdup(buf); } static Evas_Object * -enobj_icon_get(const void *enobjv, Evas_Object *obj, +enobj_icon_get(void *enobjv, Evas_Object *obj, const char *part){ Evas_Object *bt; if (strcmp(part, "elm.swallow.end") == 0){ @@ -498,7 +510,7 @@ return NULL; } static Eina_Bool -enobj_state_get(const void *data ensure_unused, Evas_Object *obj ensure_unused, +enobj_state_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *part ensure_unused){ return false; } @@ -576,7 +588,10 @@ /* clear the list of items */ enobj_clear(); - kill(childid, SIGUSR2); + printf("Sending kill to %d\n",childid); + if (kill(childid, SIGUSR2)) + perror("kill(child, SIGUSR2))"); + printf("Done\n"); } @@ -604,6 +619,11 @@ return; } + /* Watch the fd */ + ensure = calloc(1,sizeof(struct ensure)); + ecore_main_fd_handler_add(pipefd[0], ECORE_FD_READ, child_data, + ensure, NULL, NULL); + /* I'm sure someone will complain I'm doing this myself... but anyway */ switch ((pid = fork())){ @@ -622,11 +642,6 @@ break; } - /* Watch the fd */ - ensure = calloc(1,sizeof(struct ensure)); - ecore_main_fd_handler_add(pipefd[0], ECORE_FD_READ, child_data, - ensure, NULL, NULL); - return; } @@ -637,6 +652,7 @@ dochild(char **args, int fd){ char buf[4]; +// setlinebuf(fd); setenv("LD_PRELOAD", LIBENSURE_DIR "/libensure.so",1); snprintf(buf, sizeof(buf), "%d",fd); setenv("ENSURE_FD", buf, 1); |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:22
|
Log: Add beter support for tracking object. Author: nash Date: 2011-03-22 02:04:16 -0700 (Tue, 22 Mar 2011) New Revision: 57966 Trac: http://trac.enlightenment.org/e/changeset/57966 Modified: trunk/ensure/src/libensure.c Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2011-03-22 09:04:13 UTC (rev 57965) +++ trunk/ensure/src/libensure.c 2011-03-22 09:04:16 UTC (rev 57966) @@ -15,11 +15,16 @@ #define ensure_unused __attribute__((unused)) -static Eina_Bool libensure_dump(void *data ensure_unused, Ecore_Fd_Handler *fdh); +static Eina_Bool libensure_dump(void); +static Eina_Bool ecore_signal(void *data, int tyoe, void *event); +static Eina_Bool ecore_fd_signal(void *data ensure_unused, Ecore_Fd_Handler *fdh); + static void libensure_objdump(Evas_Object *o, Evas_Object *parent); static FILE *outfile; +static int verbose = -1; + __attribute__((constructor)) void libensure_init(void){ int fd; @@ -27,47 +32,77 @@ const char *p; sigset_t sigusr2; + if (verbose == -1) + verbose = !!getenv("LIBENSURE_DEBUG"); + ecore_init(); sigemptyset(&sigusr2); sigaddset(&sigusr2, SIGUSR2); fd = signalfd(-1, &sigusr2, SFD_CLOEXEC | SFD_NONBLOCK); + if (fd == -1){ + perror("signalfd"); + exit(1); + } + if (verbose) fprintf(stderr,"Signal fd is %d\n",fd); ecore_main_fd_handler_add(fd,ECORE_FD_READ|ECORE_FD_ERROR, - libensure_dump, NULL, + ecore_fd_signal, NULL, NULL, NULL); + ecore_event_handler_add(ECORE_EVENT_SIGNAL_USER, ecore_signal, NULL); + p = getenv("ENSURE_FD"); if (p){ sendfd = strtol(p, NULL, 0); - fprintf(stderr,"Ensure: Using fd %d!\n",sendfd); + if (verbose) fprintf(stderr,"LibEnsure: Using fd %d!\n",sendfd); outfile = fdopen(sendfd, "w"); } if (!outfile) { - fprintf(stderr,"Ensure: Warning using stdout!\n"); + if(verbose) fprintf(stderr,"LibEnsure: Warning using stdout\n"); outfile = stdout; } fprintf(outfile,"ensure init\n"); + if (verbose) fprintf(stderr, "LibEnsure: Init done\n"); return; } +static Eina_Bool +ecore_signal(void *data, int tyoe, void *event){ + Ecore_Event_Signal_User *user = event; + if (!event || user->number != 2) return 1; + libensure_dump(); + + return 0; +} + static Eina_Bool -libensure_dump(void *data ensure_unused, Ecore_Fd_Handler *fdh){ +ecore_fd_signal(void *data ensure_unused, Ecore_Fd_Handler *fdh){ + struct signalfd_siginfo siginfo; int fd; - struct signalfd_siginfo siginfo; + + fd = ecore_main_fd_handler_fd_get(fdh); + + read(fd, &siginfo, sizeof(struct signalfd_siginfo)); + + libensure_dump(); + return 0; +} + + +static Eina_Bool +libensure_dump(void){ Eina_List *os,*ot; Evas_Object *o; Eina_List *ees,*l; Ecore_Evas *ee; +printf("libensure dump called\n"); - fd = ecore_main_fd_handler_fd_get(fdh); - - read(fd, &siginfo, sizeof(struct signalfd_siginfo)); - fprintf(outfile,"Ensure dump!\n"); + if (verbose) fprintf(stderr,"Starting ensure dump\n"); ees = ecore_evas_ecore_evas_list_get(); @@ -79,6 +114,7 @@ evas_output_size_get(e,&w,&h); name = ecore_evas_title_get(ee); if (!name) name = ""; + if (verbose) fprintf(stderr,"E: %p '%s' %d %d\n",e,name,w,h); fprintf(outfile,"E: %p '%s' %d %d\n",e,name,w,h); os = evas_objects_in_rectangle_get(e,SHRT_MIN, SHRT_MIN, USHRT_MAX, USHRT_MAX, true, true); @@ -103,6 +139,7 @@ type = evas_object_type_get(o); fprintf(outfile,"Object: %p '%s' ",o,type); + if (verbose) fprintf(stderr,"Object: %p '%s'\n",o,type); // type = evas_object_name_get(o); // if (type) fprintf(outfile, "Name: '%s' ",type); @@ -118,6 +155,7 @@ /* Type specific things here */ if (strcmp(type, "image") == 0){ const char *file,*key; + Evas_Object *src; int err; evas_object_image_file_get(o,&file,&key); if (key) @@ -129,6 +167,9 @@ fprintf(outfile, "ImageErr: '%s' ", evas_load_error_str(err)); } + src = evas_object_image_source_get(o); + if (src) + fprintf(outfile, "ImageSrc: '%p' ",src); } else if (strcmp(type, "text") == 0){ int size; const char *font; |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:26
|
Log: Split out config and hidden, refactor main progam. Basic display of hidden objects. Framework for the object tree. Author: nash Date: 2011-03-22 02:04:19 -0700 (Tue, 22 Mar 2011) New Revision: 57967 Trac: http://trac.enlightenment.org/e/changeset/57967 Added: trunk/ensure/src/enconfig.c trunk/ensure/src/enconfig.h trunk/ensure/src/hidden.c trunk/ensure/src/hidden.h Modified: trunk/ensure/src/Makefile.am trunk/ensure/src/enasn.c trunk/ensure/src/enasn.h trunk/ensure/src/enobj.c trunk/ensure/src/ensure.c trunk/ensure/src/ensure.h trunk/ensure/src/parser.c Modified: trunk/ensure/src/Makefile.am =================================================================== --- trunk/ensure/src/Makefile.am 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/Makefile.am 2011-03-22 09:04:19 UTC (rev 57967) @@ -12,17 +12,21 @@ ensure_SOURCES = \ display.c \ + enconfig.c \ enedj.c \ ensure.c \ parser.c \ enasn.c \ enobj.c \ + hidden.c \ display.h \ + enconfig.h \ enedj.h \ ensure.h \ enasn.h \ enobj.h \ - parser.h + parser.h \ + hidden.h lib_LTLIBRARIES = libensure.la Modified: trunk/ensure/src/enasn.c =================================================================== --- trunk/ensure/src/enasn.c 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/enasn.c 2011-03-22 09:04:19 UTC (rev 57967) @@ -9,8 +9,8 @@ #include <Eina.h> #include <Elementary.h> +#include "ensure.h" #include "enasn.h" -#include "ensure.h" #include "enobj.h" static void bug_del(void *, Evas_Object *obj); Modified: trunk/ensure/src/enasn.h =================================================================== --- trunk/ensure/src/enasn.h 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/enasn.h 2011-03-22 09:04:19 UTC (rev 57967) @@ -1,16 +1,7 @@ struct ensure; struct enobj; -enum ensure_severity { - ENSURE_CRITICAL, - ENSURE_BUG, - ENSURE_BADFORM, - ENSURE_PEDANTIC, - ENSURE_POLICY, - ENSURE_N_SEVERITIES, -}; - struct assurance { const char *summary; const char *description; Modified: trunk/ensure/src/enobj.c =================================================================== --- trunk/ensure/src/enobj.c 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/enobj.c 2011-03-22 09:04:19 UTC (rev 57967) @@ -1,3 +1,7 @@ +/** + * Manages the list of all objects + */ + #include <assert.h> #include <inttypes.h> #include <stdbool.h> Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:19 UTC (rev 57967) @@ -12,11 +12,13 @@ #include <Eina.h> #include <Elementary.h> +#include "ensure.h" #include "enobj.h" #include "enasn.h" -#include "ensure.h" #include "parser.h" #include "display.h" +#include "enconfig.h" +#include "hidden.h" struct error { const char *msg; @@ -28,38 +30,14 @@ struct assurance *asn; }; -struct severityinfo { - const char *name; - const char *icon; - Elm_Genlist_Item *item; - Eina_List *asninfo; -} severity[] = { - [ENSURE_CRITICAL] = { - .name = "Critical", - }, - [ENSURE_BUG] = { - .name = "Bug", - }, - [ENSURE_BADFORM] = { - .name = "Bad Form", - }, - [ENSURE_POLICY] = { - .name = "Local Policy", - }, - [ENSURE_PEDANTIC] = { - .name = "Pedantry", - } -}; +Evas_Object *window_add(struct ensure *ensure, char **argv); -Evas_Object *window_add(char **argv); - static void on_run(void *data, Evas_Object *button, void *event_info); static void on_check(void *data, Evas_Object *button, void *event_info); -static void on_switch_config(void *data, Evas_Object *button, void *event_info); static void dochild(char **args, int fd); @@ -67,39 +45,35 @@ static int signal_init(void); static Eina_Bool signalfd_child(void *data, Ecore_Fd_Handler *fd_handler); -static void config_add_classes(Evas_Object *gl); -static void cfg_sel(void *data, Evas_Object *obj, void *event); -static void cfg_exp(void *data, Evas_Object *obj, void *event); -static void generic_contract(void *data, Evas_Object *obj, void *event); -static void generic_exp_req(void *data, Evas_Object *obj, void *event); -static void generic_con_req(void *data, Evas_Object *obj, void *event); static void enobj_select(void *data, Evas_Object *obj, void *event); //static void enobj_expand(void *data, Evas_Object *obj, void *event); static char *enobj_label_get(void *data, Evas_Object *, const char *); static Evas_Object *enobj_icon_get(void *data, Evas_Object *, const char *); static Eina_Bool enobj_state_get(void *data, Evas_Object *, const char *); +void asn_del(void *data ensure_unused, Evas_Object *obj ensure_unused); +void asn_select_toggle(void *data, Evas_Object *obj ensure_unused, void *event ensure_unused); -static char *cfg_label_get(void *, Evas_Object *, const char *part); -static Evas_Object *cfg_icon_get(void *, Evas_Object *, const char *part); -static Eina_Bool cfg_state_get(void *, Evas_Object *, const char *part); -static void cfg_del(void *, Evas_Object *obj); - -static char *asn_label_get(void *data, Evas_Object *, const char *); -static Evas_Object *asn_icon_get(void *data, Evas_Object *, const char *); -static Eina_Bool asn_state_get(void *data, Evas_Object *, const char *); -static void asn_del(void *data, Evas_Object *obj); -static void asn_select(void *data, Evas_Object *obj, void *event); -static void asn_select_toggle(void *data, Evas_Object *obj, void *event); - static char *enwin_label_get(void *data, Evas_Object *, const char *); //static Evas_Object *enwin_icon_get(const void *data, Evas_Object *, const char *); static Eina_Bool enwin_state_get(void *data, Evas_Object *, const char *); static void enwin_select(void *data, Evas_Object *obj, void *event); static void enwin_del(void *data, Evas_Object *obj); +static void view_set_error(void *, Evas_Object *, void *); +static void view_set_object(void *, Evas_Object *, void *); +static struct views { + const char *label; + void (*cb)(void *, Evas_Object *, void *); +} views[] = { + { "Errors", view_set_error }, + { "Config", view_set_config }, + { "Object Tree", view_set_object }, + { "Hidden", view_set_hidden }, +}; +#define N_VIEWS ((int)(sizeof(views)/sizeof(views[0]))) static Evas_Object *runbutton; static Evas_Object *checkbutton; @@ -113,6 +87,7 @@ #include "enedj.h" int elm_main(int argc, char **argv){ + struct ensure *ensure; if (argc < 2){ printf("Usage: %s [-c] <program>\n", argv[0]); @@ -121,6 +96,10 @@ exit(0); } + ensure = calloc(1,sizeof(struct ensure)); + ensure->magic = ENSURE_MAGIC; + ensure->current_view = ENVIEW_NONE; + /* FIXME: this isn't implemented */ if (streq(argv[1],"-c")){ changedir = true; @@ -129,12 +108,16 @@ argc --; } - mainwindow = window_add(argv); + mainwindow = window_add(ensure, argv); signal_init(); enasn_load(NULL); +hidden_object_add(ensure, (void *)0x44556677); +hidden_object_add(ensure, (void *)0x99887766); +hidden_object_add(ensure, (void *)0x11223344); + elm_list_go(mainwindow); elm_run(); elm_shutdown(); @@ -145,8 +128,10 @@ Evas_Object * -window_add(char **args){ - Evas_Object *win,*bg,*bx,*ctrls,*run,*check,*gl,*gl2,*config; +window_add(struct ensure *ensure, char **args){ + Evas_Object *win,*bg,*bx,*ctrls,*run,*check,*gl; + Evas_Object *viewbx, *view, *lbl; + int i; win = elm_win_add(NULL, "Ensure", ELM_WIN_BASIC); elm_win_title_set(win, "Ensure"); @@ -163,29 +148,50 @@ elm_win_resize_object_add(win, bx); evas_object_show(bx); + /* Window to select view */ + viewbx = elm_box_add(win); + elm_box_horizontal_set(viewbx, true); + evas_object_size_hint_weight_set(viewbx, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(viewbx, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(viewbx); + elm_box_pack_end(bx, viewbx); + + lbl = elm_label_add(win); + elm_label_label_set(lbl, "View:"); + evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND); + evas_object_show(lbl); + elm_box_pack_end(viewbx, lbl); + + /* Select which view */ + view = elm_hoversel_add(win); + ensure->viewselect = view; + elm_hoversel_label_set(view, "View"); + for (i = 0 ; i < N_VIEWS ; i ++){ + elm_hoversel_item_add(view, views[i].label, NULL, 0, + views[i].cb, ensure); + } + evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, 0); + evas_object_show(view); + elm_box_pack_end(viewbx, view); + + /* Add object list */ gl = elm_genlist_add(win); - configlist = gl; - elm_genlist_always_select_mode_set(gl, false); + objlist = gl; + ensure->view = gl; + elm_genlist_always_select_mode_set(gl, true); evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - config_add_classes(gl); -// evas_object_show(gl); - - /* Add object list */ - gl2 = elm_genlist_add(win); - objlist = gl2; - elm_genlist_always_select_mode_set(gl2, true); - evas_object_size_hint_align_set(gl2, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(gl2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(gl2); - + evas_object_show(gl); +/* evas_object_smart_callback_add(gl2, "expand,request", generic_exp_req, gl2); evas_object_smart_callback_add(gl2, "contract,request",generic_con_req, gl2); evas_object_smart_callback_add(gl2, "expanded", enasn_display_bugs, gl2); evas_object_smart_callback_add(gl2, "contracted", generic_contract,gl2); - elm_box_pack_end(bx, gl2); + */ + elm_box_pack_end(bx, gl); ctrls = elm_box_add(win); elm_box_horizontal_set(ctrls, true); @@ -194,6 +200,7 @@ /* Buttons: Main event is the 'clicked' event */ + /* config = elm_button_add(ctrls); elm_button_label_set(config, "Config"); elm_button_autorepeat_set(config, false); @@ -201,6 +208,7 @@ evas_object_show(config); evas_object_smart_callback_add(config, "clicked", on_switch_config, NULL); + */ run = elm_button_add(ctrls); elm_button_label_set(run, "Run"); @@ -222,7 +230,6 @@ elm_box_pack_end(bx, ctrls); evas_object_show(ctrls); - evas_object_resize(win, 320, 480); evas_object_show(win); @@ -231,24 +238,6 @@ } -static const Elm_Genlist_Item_Class clc = { - .item_style = "default", - .func = { - .label_get = cfg_label_get, - .icon_get = cfg_icon_get, - .state_get = cfg_state_get, - .del = cfg_del, - }, -}; -static const Elm_Genlist_Item_Class asnclass = { - .item_style = "default", - .func = { - .label_get = asn_label_get, - .icon_get = asn_icon_get, - .state_get = asn_state_get, - .del = asn_del - }, -}; static const Elm_Genlist_Item_Class objc = { .item_style = "default", @@ -269,93 +258,27 @@ }, }; -static void -config_add_classes(Evas_Object *gl){ - int i; - for (i = 0 ; i < ENSURE_N_SEVERITIES ; i ++){ - severity[i].item = elm_genlist_item_append(gl,&clc, - severity + i, - NULL, /* No parent */ - ELM_GENLIST_ITEM_SUBITEMS, - cfg_sel, - severity + i /* data */); - - } - - evas_object_smart_callback_add(gl, "expand,request", generic_exp_req, gl); - evas_object_smart_callback_add(gl, "contract,request", generic_con_req, gl); - evas_object_smart_callback_add(gl, "expanded", cfg_exp, gl); - evas_object_smart_callback_add(gl, "contracted", generic_contract, gl); - -} - -static void -cfg_sel(void *data, Evas_Object *obj ensure_unused, void *event ensure_unused){ - const struct severityinfo *info = data; - - printf("Item selected! %s\n",info->name); -} -static void -cfg_exp(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event){ - Elm_Genlist_Item *parent = event; - Evas_Object *gl = elm_genlist_item_genlist_get(parent); - struct severityinfo *sev; - struct asninfo *ai; - Eina_List *l; - - - sev = (struct severityinfo *)elm_genlist_item_data_get(parent); - - EINA_LIST_FOREACH(sev->asninfo, l, ai){ - elm_genlist_item_append(gl, &asnclass, - ai, parent, - ELM_GENLIST_ITEM_NONE, - asn_select, ai); - } - -} -static void +void generic_contract(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event){ Elm_Genlist_Item *it = event; elm_genlist_item_subitems_clear(it); } -static void +void generic_exp_req(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event){ Elm_Genlist_Item *it = event; elm_genlist_item_expanded_set(it, 1); } -static void +void generic_con_req(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event){ Elm_Genlist_Item *it = event; elm_genlist_item_expanded_set(it, 0); } -static void -cfg_del(void *data ensure_unused, Evas_Object *obj ensure_unused){ -} -static char * -cfg_label_get(void *data, Evas_Object *obj ensure_unused, - const char *part ensure_unused){ - const struct severityinfo *info; - - info = data; - return strdup(info->name); -} -static Evas_Object * -cfg_icon_get(void *data ensure_unused, Evas_Object *obj ensure_unused, - const char *part ensure_unused){ - return NULL; -} -static Eina_Bool -cfg_state_get(void *data ensure_unused, Evas_Object *obj ensure_unused, - const char *part ensure_unused){ - return false; -} - /** Handlers for the subitems in the assurance list */ -static char * + +char * asn_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ struct asninfo *info; @@ -364,7 +287,7 @@ return strdup(info->asn->summary); } -static Evas_Object * +Evas_Object * asn_icon_get(void *data, Evas_Object *obj, const char *part){ struct asninfo *ai = data; Evas_Object *ck; @@ -380,7 +303,7 @@ return NULL; } -static Eina_Bool +Eina_Bool asn_state_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ struct asninfo *ai; @@ -388,28 +311,27 @@ ai = data; return ai->enabled; } -static void +void asn_del(void *data ensure_unused, Evas_Object *obj ensure_unused){ struct enwin *enwin = data; enwin->genitem = NULL; } -static void +void asn_select(void *data, Evas_Object *obj ensure_unused, void *event ensure_unused){ struct asninfo *info = data; info->enabled = !info->enabled; } -static void +void asn_select_toggle(void *data, Evas_Object *obj ensure_unused, void *event ensure_unused){ struct asninfo *ai = data; ai->enabled = elm_check_state_get(obj); } - static char * enwin_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused){ @@ -455,7 +377,6 @@ - int ensure_enobj_err_list_add(struct enobj *enobj){ @@ -516,7 +437,6 @@ } - /** * Initialise our signal handler */ @@ -555,29 +475,31 @@ + static void -on_switch_config(void *data ensure_unused, Evas_Object *button, void *event_info ensure_unused){ - bool state; +view_set_error(void *ensurev, Evas_Object *button, + void *event_info ensure_unused){ + struct ensure *ensure = ensurev; - state = evas_object_visible_get(objlist); - if (state){ - /* Front currently: Change to back */ - elm_button_label_set(button, "Report"); - evas_object_hide(objlist); - evas_object_show(configlist); - elm_box_unpack(box, objlist); - elm_box_pack_start(box, configlist); - } else { - elm_button_label_set(button, "Config"); - evas_object_show(objlist); - evas_object_hide(configlist); - elm_box_unpack(box, configlist); - elm_box_pack_start(box, objlist); - } + if (ensure->current_view == ENVIEW_ERROR) return; + ensure->current_view = ENVIEW_ERROR; +printf("Fill error\n"); + elm_hoversel_label_set(ensure->viewselect, "Error"); + elm_genlist_clear(ensure->view); + } +static void +view_set_object(void *ensurev, Evas_Object *button, void *event_info ensure_unused){ + struct ensure *ensure = ensurev; + if (ensure->current_view == ENVIEW_OBJECT_TREE) return; + ensure->current_view = ENVIEW_OBJECT_TREE; +printf("Fill object tree\n"); +} + + /** * The user clicked the 'check' button: Start checking the application. */ @@ -598,7 +520,6 @@ - /** * The user clicked the 'run' button: Start running the application. */ @@ -662,7 +583,6 @@ } - int ensure_assurance_add(struct assurance *enasn){ struct asninfo *info; @@ -702,7 +622,6 @@ return 1; } - int enasn_check(struct ensure *ensure){ int i; Modified: trunk/ensure/src/ensure.h =================================================================== --- trunk/ensure/src/ensure.h 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/ensure.h 2011-03-22 09:04:19 UTC (rev 57967) @@ -1,3 +1,6 @@ + +#include <Elementary.h> + #ifndef ensure_unused #define ensure_unused __attribute__((unused)) #define ensure_restrict __restrict__ @@ -8,12 +11,47 @@ struct enasn; struct assurance; +enum { ENSURE_MAGIC = 0xE45073EE }; +enum enview { + ENVIEW_NONE, + ENVIEW_ERROR, + ENVIEW_CONFIG, + ENVIEW_OBJECT_TREE, + ENVIEW_HIDDEN, +}; + +enum ensure_severity { + ENSURE_CRITICAL, + ENSURE_BUG, + ENSURE_BADFORM, + ENSURE_PEDANTIC, + ENSURE_POLICY, + ENSURE_N_SEVERITIES, +}; + struct ensure { int magic; + enum enview current_view; + Evas_Object *view; + Evas_Object *viewselect; + + /* The list of hidden objects */ + Eina_List *hidden; }; + + +struct severityinfo { + const char *name; + const char *icon; + Elm_Genlist_Item *item; + Eina_List *asninfo; +}; + +extern struct severityinfo severity[ENSURE_N_SEVERITIES]; + int ensure_assurance_add(struct assurance *); /* report a bug */ Modified: trunk/ensure/src/parser.c =================================================================== --- trunk/ensure/src/parser.c 2011-03-22 09:04:16 UTC (rev 57966) +++ trunk/ensure/src/parser.c 2011-03-22 09:04:19 UTC (rev 57967) @@ -12,9 +12,9 @@ #include <Eina.h> #include <Elementary.h> +#include "ensure.h" #include "enobj.h" #include "enasn.h" -#include "ensure.h" #include "parser.h" |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:30
|
Log: Tree view (partial) and hidden objects. Author: nash Date: 2011-03-22 02:04:22 -0700 (Tue, 22 Mar 2011) New Revision: 57968 Trac: http://trac.enlightenment.org/e/changeset/57968 Added: trunk/ensure/src/entree.c trunk/ensure/src/entree.h Modified: trunk/ensure/src/Makefile.am trunk/ensure/src/display.c trunk/ensure/src/enobj.c trunk/ensure/src/enobj.h trunk/ensure/src/ensure.c trunk/ensure/src/ensure.h trunk/ensure/src/hidden.c trunk/ensure/src/hidden.h trunk/ensure/src/parser.c Modified: trunk/ensure/src/Makefile.am =================================================================== --- trunk/ensure/src/Makefile.am 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/Makefile.am 2011-03-22 09:04:22 UTC (rev 57968) @@ -18,11 +18,13 @@ parser.c \ enasn.c \ enobj.c \ + entree.c \ hidden.c \ display.h \ enconfig.h \ enedj.h \ ensure.h \ + entree.h \ enasn.h \ enobj.h \ parser.h \ Modified: trunk/ensure/src/display.c =================================================================== --- trunk/ensure/src/display.c 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/display.c 2011-03-22 09:04:22 UTC (rev 57968) @@ -15,7 +15,7 @@ const char *label); static void add_text(Evas_Object *win, Evas_Object *tbl, int *pos, const char *label, const char *value); -static void add_id(Evas_Object *win, Evas_Object *tbl, int *pos, +static void add_id(struct ensure *ensure, Evas_Object *win, Evas_Object *tbl, int *pos, const char *label, uintptr_t id, bool viewable); static void add_fmt(Evas_Object *win, Evas_Object *tbl, int *pos, const char *label, const char *fmt, ...); @@ -29,6 +29,7 @@ display_enobj_cb(void *enobjv, Evas_Object *obj ensure_unused, void *event ensure_unused){ struct enobj *enobj = enobjv; + struct ensure *ensure; Evas_Object *win,*bg,*tbl; int pos; char buf[100]; @@ -36,6 +37,8 @@ assert(enobjv); assert(enobj->magic == ENOBJMAGIC); + ensure = enobj->ensure; + if (enobj->win){ evas_object_show(enobj->win); elm_win_raise(enobj->win); @@ -73,10 +76,10 @@ pos = 0; add_heading(win,tbl,&pos,"Object"); if (enobj->name) add_text(win, tbl, &pos, "Name:", enobj->name); - add_id(win, tbl, &pos, "ID:", enobj->id, false); + add_id(ensure, win, tbl, &pos, "ID:", enobj->id, false); add_text(win, tbl, &pos, "Type:", enobj->type); - if (enobj->parent) add_id(win, tbl, &pos, "Parent:",enobj->parent,true); - if (enobj->clip) add_id(win, tbl, &pos, "Clip:", enobj->clip,true); + if (enobj->parent) add_id(ensure, win, tbl, &pos, "Parent:",enobj->parent,true); + if (enobj->clip) add_id(ensure, win, tbl, &pos, "Clip:", enobj->clip,true); add_fmt(win,tbl, &pos, "Position:", "%+d%+d", enobj->x, enobj->y); add_fmt(win,tbl, &pos, "Size:", "(%dx%d)", enobj->w, enobj->h); add_fmt(win,tbl, &pos, "Colour (rgba):", "argb(%d,%d,%d,%d)", @@ -199,14 +202,14 @@ } static void -add_id(Evas_Object *win, Evas_Object *tbl, int *pos, const char *label, +add_id(struct ensure *ensure, Evas_Object *win, Evas_Object *tbl, int *pos, const char *label, uintptr_t id, bool viewable){ char buf[30]; Evas_Object *but; struct enobj *enobj; if (viewable){ - enobj = enobj_get(id); + enobj = enobj_get(ensure, id); but = elm_button_add(win); elm_button_label_set(but, "View"); Modified: trunk/ensure/src/enobj.c =================================================================== --- trunk/ensure/src/enobj.c 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/enobj.c 2011-03-22 09:04:22 UTC (rev 57968) @@ -13,65 +13,99 @@ #include "ensure.h" #include "enasn.h" -Eina_Hash *objdb; - static Eina_Bool enobj_hash_del_cb(const Eina_Hash *hash, const void *key, void *data, void *ensure); +static Eina_Bool enobj_prepare_object(const Eina_Hash *hash, const void *key, void *obj, void *ensurev); +/* void -enobj_clear(void){ +enobj_clear(){ if (!objdb) return; eina_hash_foreach(objdb, enobj_hash_del_cb, NULL); eina_hash_free(objdb); objdb = NULL; } +*/ int -enobj_add(struct enobj *eno){ +enobj_add(struct ensure *ensure, struct enobj *eno){ - if (!objdb) - objdb = eina_hash_pointer_new(enobj_free); - if (eno->magic != ENOBJMAGIC) eno->magic = ENOBJMAGIC; - eina_hash_add(objdb, &eno->id, eno); + eina_hash_add(ensure->cur->objdb, &eno->id, eno); + if (!eno->ensure) eno->ensure = ensure; + return 0; } struct enobj * -enobj_parent_get(struct enobj *eno){ +enobj_parent_get(struct ensure *ensure, struct enobj *eno){ struct enobj *parent; if (!eno) return NULL; if (eno->cache.parent) return eno->cache.parent; if (eno->parent == 0) return NULL; - parent = enobj_get(eno->id); + parent = enobj_get(ensure, eno->id); eno->cache.parent = parent; return parent; } struct enobj * -enobj_clip_get(struct enobj *eno){ +enobj_clip_get(struct ensure *ensure, struct enobj *eno){ struct enobj *clip; if (!eno) return NULL; if (eno->cache.clip) return eno->cache.clip; if (eno->clip == 0) return NULL; - clip = enobj_get(eno->id); + clip = enobj_get(ensure, eno->id); eno->cache.clip = clip; return clip; } struct enobj * -enobj_get(uintptr_t id){ +enobj_get(struct ensure *ensure, uintptr_t id){ struct enobj *obj; - obj = eina_hash_find(objdb, &id); + obj = eina_hash_find(ensure->cur->objdb, &id); assert(obj->magic == ENOBJMAGIC); assert(id == obj->id); return obj; } + +/** + * Prepares the enboj db by linking parents & children, and clips and clippees + * + * @param ensure Ensure pointer + * @retun 0 on success + */ +int +enobj_prepare(struct ensure *ensure){ + eina_hash_foreach(ensure->cur->objdb, enobj_prepare_object, ensure); + return 0; +} + + +static Eina_Bool +enobj_prepare_object(const Eina_Hash *hash, const void *key, void *obj, + void *ensurev){ + struct enobj *enobj = obj; + struct enobj *parent, *clip; +printf("Obj: %p %llx %llx\n",enobj, enobj->parent, enobj->clip); + if (enobj->parent){ + parent = enobj_parent_get(ensurev, enobj); + parent->children = eina_list_append(parent->children, enobj); + printf("\tChildren: %p\n",parent->children); + } + if (enobj->clip){ + clip = enobj_parent_get(ensurev, enobj); + clip->clippees = eina_list_append(clip->clippees, enobj); + printf("\tClips: %p\n",parent->clip); + } + return true; +} + + void enobj_free(void *enobjv){ struct enobj *enobj = enobjv; @@ -110,6 +144,8 @@ EINA_LIST_FREE(enobj->bugs, bug){ free(bug->desc); } + eina_list_free(enobj->children); + eina_list_free(enobj->clippees); if (enobj->win) evas_object_del(enobj->win); Modified: trunk/ensure/src/enobj.h =================================================================== --- trunk/ensure/src/enobj.h 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/enobj.h 2011-03-22 09:04:22 UTC (rev 57968) @@ -2,6 +2,8 @@ #define ENOBJMAGIC 0x8d882abc #endif +struct ensure; + enum edjemember { EDJEMEMBER_NOTCHECKED, EDJEMEMBER_TRUE, @@ -37,6 +39,8 @@ struct enobj { int magic; + struct ensure *ensure; /* Ensure pointer */ + /** ID of object (its address normally) */ uintptr_t id; @@ -52,9 +56,13 @@ /** ID of parent */ uintptr_t parent; + Eina_List *children; + /** ID of clip */ uintptr_t clip; + Eina_List *clippees; + /** Geo */ int x,y,w,h; @@ -94,13 +102,15 @@ Evas_Object *win; }; -extern Eina_Hash *objdb; void enobj_clear(void); -int enobj_add(struct enobj *eno); -struct enobj *enobj_parent_get(struct enobj *eno); -struct enobj * enobj_clip_get(struct enobj *eno); -struct enobj *enobj_get(uintptr_t id); +int enobj_add(struct ensure *ensure, struct enobj *eno); +struct enobj *enobj_parent_get(struct ensure *ensure, struct enobj *eno); +struct enobj * enobj_clip_get(struct ensure *ensure, struct enobj *eno); +struct enobj *enobj_get(struct ensure *, uintptr_t id); +/* Prepare current list of objects */ +int enobj_prepare(struct ensure *); + void enobj_free(void *enobj); Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:22 UTC (rev 57968) @@ -19,6 +19,7 @@ #include "display.h" #include "enconfig.h" #include "hidden.h" +#include "entree.h" struct error { const char *msg; @@ -45,7 +46,11 @@ static int signal_init(void); static Eina_Bool signalfd_child(void *data, Ecore_Fd_Handler *fd_handler); +void generic_contract(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event); +void generic_exp_req(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event); +void generic_expand(void *data ensure_unused, Evas_Object *obj ensure_unused, void *event); + static void enobj_select(void *data, Evas_Object *obj, void *event); //static void enobj_expand(void *data, Evas_Object *obj, void *event); static char *enobj_label_get(void *data, Evas_Object *, const char *); @@ -62,23 +67,22 @@ static void enwin_del(void *data, Evas_Object *obj); static void view_set_error(void *, Evas_Object *, void *); -static void view_set_object(void *, Evas_Object *, void *); static struct views { const char *label; void (*cb)(void *, Evas_Object *, void *); + void (*expand)(struct ensure *ensure, Elm_Genlist_Item *item); } views[] = { - { "Errors", view_set_error }, - { "Config", view_set_config }, - { "Object Tree", view_set_object }, - { "Hidden", view_set_hidden }, + { "Errors", view_set_error, NULL }, + { "Config", view_set_config, NULL }, + { "Object Tree", view_set_tree, tree_expand_item }, + { "Hidden", view_set_hidden, NULL }, }; #define N_VIEWS ((int)(sizeof(views)/sizeof(views[0]))) static Evas_Object *runbutton; static Evas_Object *checkbutton; static pid_t childid; -Evas_Object *objlist; Evas_Object *configlist; Evas_Object *box; Evas_Object *mainwindow; @@ -98,7 +102,7 @@ ensure = calloc(1,sizeof(struct ensure)); ensure->magic = ENSURE_MAGIC; - ensure->current_view = ENVIEW_NONE; + ensure->current_view = ENVIEW_ERROR; /* FIXME: this isn't implemented */ if (streq(argv[1],"-c")){ @@ -107,6 +111,7 @@ argv[argc] = 0; argc --; } + ensure->args = argv + 1; mainwindow = window_add(ensure, argv); @@ -114,10 +119,6 @@ enasn_load(NULL); -hidden_object_add(ensure, (void *)0x44556677); -hidden_object_add(ensure, (void *)0x99887766); -hidden_object_add(ensure, (void *)0x11223344); - elm_list_go(mainwindow); elm_run(); elm_shutdown(); @@ -177,15 +178,15 @@ /* Add object list */ gl = elm_genlist_add(win); - objlist = gl; ensure->view = gl; elm_genlist_always_select_mode_set(gl, true); evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(gl); + evas_object_smart_callback_add(gl, "expand,request", generic_exp_req, + ensure); + evas_object_smart_callback_add(gl, "expanded", generic_expand, ensure); /* - evas_object_smart_callback_add(gl2, "expand,request", generic_exp_req, - gl2); evas_object_smart_callback_add(gl2, "contract,request",generic_con_req, gl2); evas_object_smart_callback_add(gl2, "expanded", enasn_display_bugs, gl2); @@ -215,7 +216,7 @@ elm_button_autorepeat_set(run, false); elm_box_pack_end(ctrls,run); evas_object_show(run); - evas_object_smart_callback_add(run, "clicked", on_run, args + 1); + evas_object_smart_callback_add(run, "clicked", on_run, ensure); runbutton = run; check = elm_button_add(ctrls); @@ -224,7 +225,7 @@ elm_object_disabled_set(check, true); elm_box_pack_end(ctrls,check); evas_object_show(check); - evas_object_smart_callback_add(check, "clicked", on_check, NULL); + evas_object_smart_callback_add(check, "clicked", on_check, ensure); checkbutton = check; elm_box_pack_end(bx, ctrls); @@ -274,6 +275,14 @@ elm_genlist_item_expanded_set(it, 0); } +void +generic_expand(void *data, Evas_Object *obj ensure_unused, void *itemv){ + struct ensure *ensure = data; + if (views[ensure->current_view].expand) + views[ensure->current_view].expand(ensure,itemv); + else + printf("No expansion handler for currenct view\n"); +} /** Handlers for the subitems in the assurance list */ @@ -379,10 +388,11 @@ int ensure_enobj_err_list_add(struct enobj *enobj){ - +printf("Err list commned out\n"); +#if 0 /* Does the window have an item */ if (!enobj->enwin->genitem){ - enobj->enwin->genitem = elm_genlist_item_append(objlist, + enobj->enwin->genitem = elm_genlist_item_append(ensure->view, &windowclass, enobj->enwin, NULL, ELM_GENLIST_ITEM_SUBITEMS, enwin_select, enobj->enwin); @@ -391,6 +401,7 @@ enobj->genitem = elm_genlist_item_append(objlist, &objc, enobj, enobj->enwin->genitem, ELM_GENLIST_ITEM_SUBITEMS, enobj_select, enobj); +#endif return 0; } static void @@ -490,26 +501,27 @@ } -static void -view_set_object(void *ensurev, Evas_Object *button, void *event_info ensure_unused){ - struct ensure *ensure = ensurev; - if (ensure->current_view == ENVIEW_OBJECT_TREE) return; - ensure->current_view = ENVIEW_OBJECT_TREE; -printf("Fill object tree\n"); -} - - /** * The user clicked the 'check' button: Start checking the application. */ static void -on_check(void *data ensure_unused, Evas_Object *button ensure_unused, +on_check(void *ensurev, Evas_Object *button ensure_unused, void *event_info ensure_unused){ + struct ensure *ensure; + struct result *res; - /* clear the list of items */ - enobj_clear(); + ensure = ensurev; + res = calloc(1,sizeof(struct result)); + + res->tm = time(NULL); + res->windows = NULL; + res->objdb = eina_hash_pointer_new(enobj_free); + + ensure->results = eina_list_prepend(ensure->results, res); + ensure->cur = res; + printf("Sending kill to %d\n",childid); if (kill(childid, SIGUSR2)) perror("kill(child, SIGUSR2))"); @@ -524,16 +536,15 @@ * The user clicked the 'run' button: Start running the application. */ static void -on_run(void *data, Evas_Object *button ensure_unused, void *event_info ensure_unused){ +on_run(void *ensurev, Evas_Object *button ensure_unused, void *event_info ensure_unused){ pid_t pid; - char **args = data; int pipefd[2]; - struct ensure *ensure; + struct ensure *ensure = ensurev; elm_object_disabled_set(runbutton, true); elm_object_disabled_set(checkbutton, false); - printf("Running %s\n", args[0]); + printf("Running %s\n", ensure->args[0]); if (pipe(pipefd)){ fprintf(stderr,"Unable to create pipe\n"); @@ -541,9 +552,8 @@ } /* Watch the fd */ - ensure = calloc(1,sizeof(struct ensure)); ecore_main_fd_handler_add(pipefd[0], ECORE_FD_READ, child_data, - ensure, NULL, NULL); + ensure, NULL, ensure); /* I'm sure someone will complain I'm doing this myself... but anyway */ @@ -554,7 +564,7 @@ break; case 0: close(pipefd[0]); - dochild(args,pipefd[1]); + dochild(ensure->args,pipefd[1]); exit(7); default: /* Parent */ @@ -612,6 +622,8 @@ int i; assert(enobj->magic == ENOBJMAGIC); + if (hidden_get(ensure, enobj)) return 1; + for (i = 0 ; i < ENSURE_N_SEVERITIES ; i ++){ EINA_LIST_FOREACH(severity[i].asninfo, l, ai){ if (ai->enabled && ai->asn->object) @@ -635,7 +647,7 @@ } } - eina_hash_foreach(objdb, check_obj, ensure); + eina_hash_foreach(ensure->cur->objdb, check_obj, ensure); for (i = 0 ; i < ENSURE_N_SEVERITIES ; i ++){ EINA_LIST_FOREACH(severity[i].asninfo, l, ai){ Modified: trunk/ensure/src/ensure.h =================================================================== --- trunk/ensure/src/ensure.h 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/ensure.h 2011-03-22 09:04:22 UTC (rev 57968) @@ -14,7 +14,6 @@ enum { ENSURE_MAGIC = 0xE45073EE }; enum enview { - ENVIEW_NONE, ENVIEW_ERROR, ENVIEW_CONFIG, ENVIEW_OBJECT_TREE, @@ -30,15 +29,29 @@ ENSURE_N_SEVERITIES, }; +struct result { + time_t tm; + + /* A list of enwins */ + Eina_List *windows; + Eina_Hash *objdb; +}; + + struct ensure { int magic; + char **args; + enum enview current_view; Evas_Object *view; Evas_Object *viewselect; /* The list of hidden objects */ Eina_List *hidden; + + struct result *cur; + Eina_List *results; }; Modified: trunk/ensure/src/hidden.c =================================================================== --- trunk/ensure/src/hidden.c 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/hidden.c 2011-03-22 09:04:22 UTC (rev 57968) @@ -74,13 +74,33 @@ return 0; } +/** + * Returns true if an object is hidden. + * + * @param ensure Ensure pointer + * @param obj Object id to check + * @return true if the object is hidden, false otherwise. + */ +bool +hidden_get(struct ensure *ensure, uintptr_t obj){ + uintptr_t hiddenobj; + Eina_List *l; + if (!ensure || !ensure->hidden || !obj) return false; + EINA_LIST_FOREACH(ensure->hidden, l, hiddenobj){ + if (hiddenobj == obj) + return true; + } + return false; +} + + static void hidden_sel(void *objv, Evas_Object *gl ensure_unused, void *event ensure_unused){ - Evas_Object *o; + Evas_Object *o = objv; printf("Selected hidden object %p\n",o); Modified: trunk/ensure/src/hidden.h =================================================================== --- trunk/ensure/src/hidden.h 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/hidden.h 2011-03-22 09:04:22 UTC (rev 57968) @@ -4,6 +4,8 @@ int hidden_object_add(struct ensure *ensure, Evas_Object *o); int hidden_object_remove(struct ensure *ensure, Evas_Object *o); +bool hidden_get(struct ensure *ensure, uintptr_t objid); + Modified: trunk/ensure/src/parser.c =================================================================== --- trunk/ensure/src/parser.c 2011-03-22 09:04:19 UTC (rev 57967) +++ trunk/ensure/src/parser.c 2011-03-22 09:04:22 UTC (rev 57968) @@ -20,7 +20,8 @@ static char *parse_string(char **p, bool shared); -static struct enobj *parse_object(char *line, struct enobj *eno); +static struct enobj *parse_object(struct ensure *ensure, char *line, + struct enobj *eno); static void parse_line(struct ensure *ensure, char *line); static int parse_objid(struct enobj *eno, const char *prefix, char **linep); @@ -72,6 +73,8 @@ assert(hdlr); + assert(ensure->magic == ENSURE_MAGIC); + fd = ecore_main_fd_handler_fd_get(hdlr); assert(fd >= 0); @@ -109,31 +112,38 @@ static struct enwin *enwin = NULL; struct enobj *obj; + assert(ensure->magic == ENSURE_MAGIC); + if (strncmp(line,"Object", 6) == 0){ - obj = parse_object(line,NULL); + obj = parse_object(ensure, line,NULL); obj->enwin = enwin; } else if (strncmp(line, "Ensure done",11) == 0){ printf("Got to the end...\n"); enasn_check(ensure); + enobj_prepare(ensure); } else if (strncmp(line, "E: ",3) == 0){ + printf("Got window\n"); enwin = calloc(1,sizeof(struct enwin)); line += 3; enwin->id = strtoll(line,&line,0); enwin->name = parse_string(&line, true); enwin->w = strtol(line,&line,0); enwin->h = strtol(line,&line,0); + ensure->cur->windows = eina_list_append( + ensure->cur->windows, enwin); } else { printf("Line was nothing...'%s'\n",line); } } static struct enobj * -parse_object(char *line, struct enobj *eno){ +parse_object(struct ensure *ensure, char *line, struct enobj *eno){ char *p; int i; if (!eno){ eno = calloc(1,sizeof(struct enobj)); + eno->ensure = ensure; assert(eno); } @@ -160,7 +170,7 @@ } assert(eno->id); - enobj_add(eno); + enobj_add(ensure, eno); return eno; } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:32
|
Log: Pass the correct argument to hidden_check Author: nash Date: 2011-03-22 02:04:26 -0700 (Tue, 22 Mar 2011) New Revision: 57969 Trac: http://trac.enlightenment.org/e/changeset/57969 Modified: trunk/ensure/src/ensure.c Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:04:22 UTC (rev 57968) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:26 UTC (rev 57969) @@ -622,7 +622,7 @@ int i; assert(enobj->magic == ENOBJMAGIC); - if (hidden_get(ensure, enobj)) return 1; + if (hidden_get(ensure, enobj->id)) return 1; for (i = 0 ; i < ENSURE_N_SEVERITIES ; i ++){ EINA_LIST_FOREACH(severity[i].asninfo, l, ai){ |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:35
|
Log: Use pipes for sending commands Author: nash Date: 2011-03-22 02:04:28 -0700 (Tue, 22 Mar 2011) New Revision: 57970 Trac: http://trac.enlightenment.org/e/changeset/57970 Modified: trunk/ensure/src/ensure.c trunk/ensure/src/ensure.h trunk/ensure/src/libensure.c Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:04:26 UTC (rev 57969) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:28 UTC (rev 57970) @@ -35,13 +35,13 @@ -Evas_Object *window_add(struct ensure *ensure, char **argv); +int window_add(struct ensure *ensure, char **argv); static void on_run(void *data, Evas_Object *button, void *event_info); static void on_check(void *data, Evas_Object *button, void *event_info); -static void dochild(char **args, int fd); +static void dochild(char **args, int fd, int commandfd); static int signal_init(void); static Eina_Bool signalfd_child(void *data, Ecore_Fd_Handler *fd_handler); @@ -113,7 +113,7 @@ } ensure->args = argv + 1; - mainwindow = window_add(ensure, argv); + window_add(ensure, argv); signal_init(); @@ -128,7 +128,7 @@ -Evas_Object * +int window_add(struct ensure *ensure, char **args){ Evas_Object *win,*bg,*bx,*ctrls,*run,*check,*gl; Evas_Object *viewbx, *view, *lbl; @@ -199,18 +199,6 @@ evas_object_size_hint_weight_set(ctrls, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(ctrls, EVAS_HINT_FILL, EVAS_HINT_FILL); - - /* Buttons: Main event is the 'clicked' event */ - /* - config = elm_button_add(ctrls); - elm_button_label_set(config, "Config"); - elm_button_autorepeat_set(config, false); - elm_box_pack_start(ctrls, config); - evas_object_show(config); - evas_object_smart_callback_add(config, "clicked", on_switch_config, - NULL); - */ - run = elm_button_add(ctrls); elm_button_label_set(run, "Run"); elm_button_autorepeat_set(run, false); @@ -234,8 +222,7 @@ evas_object_resize(win, 320, 480); evas_object_show(win); - /* Urh.. the list widget for now */ - return gl; + return 0; } @@ -522,11 +509,9 @@ ensure->results = eina_list_prepend(ensure->results, res); ensure->cur = res; - printf("Sending kill to %d\n",childid); - if (kill(childid, SIGUSR2)) - perror("kill(child, SIGUSR2))"); + printf("Sending check to %d\n",childid); + write(ensure->commandfd,"Check\n",6); printf("Done\n"); - } @@ -539,6 +524,7 @@ on_run(void *ensurev, Evas_Object *button ensure_unused, void *event_info ensure_unused){ pid_t pid; int pipefd[2]; + int sendpipefd[2]; struct ensure *ensure = ensurev; elm_object_disabled_set(runbutton, true); @@ -550,6 +536,11 @@ fprintf(stderr,"Unable to create pipe\n"); return; } + if (pipe(sendpipefd)){ + fprintf(stderr,"Unable to create send pipe\n"); + return; + } + ensure->commandfd = sendpipefd[1]; /* Watch the fd */ ecore_main_fd_handler_add(pipefd[0], ECORE_FD_READ, child_data, @@ -564,11 +555,13 @@ break; case 0: close(pipefd[0]); - dochild(ensure->args,pipefd[1]); + close(sendpipefd[1]); + dochild(ensure->args,pipefd[1],sendpipefd[0]); exit(7); default: /* Parent */ close(pipefd[1]); + close(sendpipefd[0]); childid = pid; break; } @@ -580,12 +573,12 @@ * Run the child process */ static void -dochild(char **args, int fd){ - char buf[4]; +dochild(char **args, int fd, int commandfd){ + char buf[30]; // setlinebuf(fd); setenv("LD_PRELOAD", LIBENSURE_DIR "/libensure.so",1); - snprintf(buf, sizeof(buf), "%d",fd); + snprintf(buf, sizeof(buf), "%d:%d",fd, commandfd); setenv("ENSURE_FD", buf, 1); execvp(args[0],args); perror("execvp"); Modified: trunk/ensure/src/ensure.h =================================================================== --- trunk/ensure/src/ensure.h 2011-03-22 09:04:26 UTC (rev 57969) +++ trunk/ensure/src/ensure.h 2011-03-22 09:04:28 UTC (rev 57970) @@ -52,6 +52,8 @@ struct result *cur; Eina_List *results; + + int commandfd; }; Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2011-03-22 09:04:26 UTC (rev 57969) +++ trunk/ensure/src/libensure.c 2011-03-22 09:04:28 UTC (rev 57970) @@ -1,8 +1,6 @@ #include <limits.h> #include <stdio.h> -#include <signal.h> #include <stdbool.h> -#include <sys/signalfd.h> #include <unistd.h> @@ -16,8 +14,7 @@ #define ensure_unused __attribute__((unused)) static Eina_Bool libensure_dump(void); -static Eina_Bool ecore_signal(void *data, int tyoe, void *event); -static Eina_Bool ecore_fd_signal(void *data ensure_unused, Ecore_Fd_Handler *fdh); +static Eina_Bool libensure_command_recv(void *data ensure_unused, Ecore_Fd_Handler *fdh); static void libensure_objdump(Evas_Object *o, Evas_Object *parent); @@ -27,38 +24,30 @@ __attribute__((constructor)) void libensure_init(void){ - int fd; - int sendfd; + int sendfd, commandfd; const char *p; - sigset_t sigusr2; if (verbose == -1) verbose = !!getenv("LIBENSURE_DEBUG"); ecore_init(); - sigemptyset(&sigusr2); - sigaddset(&sigusr2, SIGUSR2); - - fd = signalfd(-1, &sigusr2, SFD_CLOEXEC | SFD_NONBLOCK); - if (fd == -1){ - perror("signalfd"); - exit(1); - } - if (verbose) fprintf(stderr,"Signal fd is %d\n",fd); - ecore_main_fd_handler_add(fd,ECORE_FD_READ|ECORE_FD_ERROR, - ecore_fd_signal, NULL, - NULL, NULL); - - ecore_event_handler_add(ECORE_EVENT_SIGNAL_USER, ecore_signal, NULL); - p = getenv("ENSURE_FD"); if (p){ - sendfd = strtol(p, NULL, 0); - if (verbose) fprintf(stderr,"LibEnsure: Using fd %d!\n",sendfd); + if (verbose) fprintf(stderr,"ENSURE_FD=%s",p); + sscanf(p, "%d:%d", &sendfd, &commandfd); + if (verbose) fprintf(stderr,"LibEnsure: Send: %d Command %d!\n", + sendfd, commandfd); outfile = fdopen(sendfd, "w"); + } else { + fprintf(stderr,"Warning: No send/command fd\n"); + exit(0); } + ecore_main_fd_handler_add(commandfd,ECORE_FD_READ|ECORE_FD_ERROR, + libensure_command_recv, NULL, + NULL, NULL); + if (!outfile) { if(verbose) fprintf(stderr,"LibEnsure: Warning using stdout\n"); outfile = stdout; @@ -70,25 +59,24 @@ } static Eina_Bool -ecore_signal(void *data, int tyoe, void *event){ - Ecore_Event_Signal_User *user = event; - if (!event || user->number != 2) return 1; - - libensure_dump(); - - return 0; -} - -static Eina_Bool -ecore_fd_signal(void *data ensure_unused, Ecore_Fd_Handler *fdh){ - struct signalfd_siginfo siginfo; +libensure_command_recv(void *data ensure_unused, Ecore_Fd_Handler *fdh){ + char buf[100]; + char *save; int fd; fd = ecore_main_fd_handler_fd_get(fdh); - read(fd, &siginfo, sizeof(struct signalfd_siginfo)); + read(fd, buf, sizeof(buf)); + strtok_r(buf, "\n\r", &save); - libensure_dump(); + if (strncmp(buf, "Check", 5) == 0){ + libensure_dump(); + } else if (strncmp(buf, "Highlight:", 10) == 0){ + printf("Got highlight: Unimplemented\n"); + } else { + printf("Unknown command: %s\n",buf); + } + return 0; } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:37
|
Log: Sort out main window Author: nash Date: 2011-03-22 02:04:31 -0700 (Tue, 22 Mar 2011) New Revision: 57971 Trac: http://trac.enlightenment.org/e/changeset/57971 Modified: trunk/ensure/src/ensure.c Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:04:28 UTC (rev 57970) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:31 UTC (rev 57971) @@ -35,7 +35,7 @@ -int window_add(struct ensure *ensure, char **argv); +Evas_Object *window_add(struct ensure *ensure, char **argv); static void on_run(void *data, Evas_Object *button, void *event_info); static void on_check(void *data, Evas_Object *button, void *event_info); @@ -92,6 +92,7 @@ int elm_main(int argc, char **argv){ struct ensure *ensure; + Evas_Object *mw; if (argc < 2){ printf("Usage: %s [-c] <program>\n", argv[0]); @@ -113,13 +114,13 @@ } ensure->args = argv + 1; - window_add(ensure, argv); + mw = window_add(ensure, argv); signal_init(); enasn_load(NULL); - elm_list_go(mainwindow); + elm_list_go(mw); elm_run(); elm_shutdown(); return 0; @@ -128,7 +129,7 @@ -int +Evas_Object * window_add(struct ensure *ensure, char **args){ Evas_Object *win,*bg,*bx,*ctrls,*run,*check,*gl; Evas_Object *viewbx, *view, *lbl; @@ -222,8 +223,7 @@ evas_object_resize(win, 320, 480); evas_object_show(win); - return 0; - + return win; } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:49
|
Log: Some more debug Author: nash Date: 2011-03-22 02:04:43 -0700 (Tue, 22 Mar 2011) New Revision: 57975 Trac: http://trac.enlightenment.org/e/changeset/57975 Modified: trunk/ensure/src/results.c Modified: trunk/ensure/src/results.c =================================================================== --- trunk/ensure/src/results.c 2011-03-22 09:04:40 UTC (rev 57974) +++ trunk/ensure/src/results.c 2011-03-22 09:04:43 UTC (rev 57975) @@ -49,7 +49,7 @@ if (ensure->cur == result) return; ensure->cur = result; - +printf("Result: %d\n",ensure->cur->tm); /* Now need to refill tree */ view_dirty_set(ensure); } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:51
|
Log: ensure: libensure: Return correct valiue from event handler Author: nash Date: 2011-03-22 02:04:45 -0700 (Tue, 22 Mar 2011) New Revision: 57976 Trac: http://trac.enlightenment.org/e/changeset/57976 Modified: trunk/ensure/src/libensure.c Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2011-03-22 09:04:43 UTC (rev 57975) +++ trunk/ensure/src/libensure.c 2011-03-22 09:04:45 UTC (rev 57976) @@ -77,7 +77,7 @@ printf("Unknown command: %s\n",buf); } - return 0; + return true; } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:54
|
Log: Display the 'view' button in objext trees Author: nash Date: 2011-03-22 02:04:48 -0700 (Tue, 22 Mar 2011) New Revision: 57977 Trac: http://trac.enlightenment.org/e/changeset/57977 Modified: trunk/ensure/src/entree.c Modified: trunk/ensure/src/entree.c =================================================================== --- trunk/ensure/src/entree.c 2011-03-22 09:04:45 UTC (rev 57976) +++ trunk/ensure/src/entree.c 2011-03-22 09:04:48 UTC (rev 57977) @@ -21,6 +21,7 @@ #include "ensure.h" #include "enobj.h" +#include "display.h" #include "entree.h" static Eina_Bool tree_add_toplevel(const Eina_Hash *hash, const void *key, void *data, @@ -36,6 +37,8 @@ static char *tree_item_label_get(void *enwinv, Evas_Object *obj, const char *part); static void tree_item_select(void *data, Evas_Object *obj ensure_unused, void *event ensure_unused); static void tree_item_del(void *enwinv, Evas_Object *obj); +static Evas_Object *tree_item_icon_get(void *enobjv, Evas_Object *obj, + const char *part); static const Elm_Genlist_Item_Class windowclass = { .item_style = "default", @@ -49,6 +52,7 @@ .item_style = "default", .func = { .label_get = tree_item_label_get, + .icon_get = tree_item_icon_get, .del = tree_item_del, } @@ -201,6 +205,25 @@ return strdup(buf); } + +static Evas_Object * +tree_item_icon_get(void *enobjv, Evas_Object *obj, + const char *part){ + Evas_Object *bt; + if (strcmp(part, "elm.swallow.end") == 0){ + bt = elm_button_add(obj); + elm_button_label_set(bt, "View"); + elm_button_autorepeat_set(bt, false); + evas_object_show(bt); + evas_object_smart_callback_add(bt, "clicked", + display_enobj_cb, enobjv); + return bt; + } + + + return NULL; +} + static void tree_item_select(void *data, Evas_Object *obj ensure_unused, void *event ensure_unused){ } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:56
|
Log: Add highlight support libensure. Author: nash Date: 2011-03-22 02:04:50 -0700 (Tue, 22 Mar 2011) New Revision: 57978 Trac: http://trac.enlightenment.org/e/changeset/57978 Modified: trunk/ensure/src/libensure.c Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2011-03-22 09:04:48 UTC (rev 57977) +++ trunk/ensure/src/libensure.c 2011-03-22 09:04:50 UTC (rev 57978) @@ -13,8 +13,21 @@ #define ensure_unused __attribute__((unused)) +/* The color of the highlight */ +enum { + HIGHLIGHT_R = 255, + HIGHLIGHT_G = 128, + HIGHLIGHT_B = 128, + HIGHLIGHT_A = 255, + + /* How much padding around the highlight box */ + PADDING = 2, +}; + static Eina_Bool libensure_dump(void); static Eina_Bool libensure_command_recv(void *data ensure_unused, Ecore_Fd_Handler *fdh); +static void libensure_highlight(uintptr_t addr); +static Eina_Bool libensure_highlight_hide(void *rv); static void libensure_objdump(Evas_Object *o, Evas_Object *parent); @@ -71,8 +84,9 @@ if (strncmp(buf, "Check", 5) == 0){ libensure_dump(); - } else if (strncmp(buf, "Highlight:", 10) == 0){ - printf("Got highlight: Unimplemented\n"); + } else if (strncmp(buf, "Display:", 10) == 0){ + uintptr_t id = strtoul(buf + 10, NULL, 16); + libensure_highlight(id); } else { printf("Unknown command: %s\n",buf); } @@ -194,3 +208,53 @@ libensure_fini(void){ ecore_shutdown(); } + +/** + * Handler to highlight an object on the canvas. + * + * The current implementation shows a reddish rectangle which slowly fades + * away. + */ +static void +libensure_highlight(uintptr_t addr){ + Evas *e; + Evas_Object *obj; + Evas_Object *r; + int x,y,w,h; + + /* FIXME: Should check the object is valid */ + obj = (void *)addr; + + e = evas_object_evas_get(obj); + if (!e) return; + + evas_object_geometry_get(obj,&x,&y,&w,&h); + + r = evas_object_rectangle_add(e); + evas_object_move(r,x-PADDING,y - PADDING); + evas_object_resize(r,x + 2*PADDING, y + 2*PADDING); + evas_object_color_set(r,HIGHLIGHT_R,HIGHLIGHT_G,HIGHLIGHT_B, + HIGHLIGHT_A); + evas_object_show(r); + ecore_timer_add(0.1, libensure_highlight_hide, r); +} + +static Eina_Bool +libensure_highlight_hide(void *rv){ + int r,g,b,a; + double na; + + evas_object_color_get(rv,&r,&g,&b,&a); + if (a < 20){ + evas_object_del(rv); + return false; + } + + na = a - 20; + r = na / a * r; + g = na / a * g; + b = na / a * b; + evas_object_color_set(rv,r,g,b,na); + + return true; +} |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:04:59
|
Log: Ensure: Tweaks to display on canvas Author: nash Date: 2011-03-22 02:04:53 -0700 (Tue, 22 Mar 2011) New Revision: 57979 Trac: http://trac.enlightenment.org/e/changeset/57979 Modified: trunk/ensure/src/libensure.c Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2011-03-22 09:04:50 UTC (rev 57978) +++ trunk/ensure/src/libensure.c 2011-03-22 09:04:53 UTC (rev 57979) @@ -84,8 +84,8 @@ if (strncmp(buf, "Check", 5) == 0){ libensure_dump(); - } else if (strncmp(buf, "Display:", 10) == 0){ - uintptr_t id = strtoul(buf + 10, NULL, 16); + } else if (strncmp(buf, "Display:", 8) == 0){ + uintptr_t id = strtoul(buf + 8, NULL, 16); libensure_highlight(id); } else { printf("Unknown command: %s\n",buf); @@ -232,7 +232,7 @@ r = evas_object_rectangle_add(e); evas_object_move(r,x-PADDING,y - PADDING); - evas_object_resize(r,x + 2*PADDING, y + 2*PADDING); + evas_object_resize(r,w + 2*PADDING, h + 2*PADDING); evas_object_color_set(r,HIGHLIGHT_R,HIGHLIGHT_G,HIGHLIGHT_B, HIGHLIGHT_A); evas_object_show(r); |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:05:02
|
Log: Ensure: Add the immensely useful 'highlight' button to the main object list Author: nash Date: 2011-03-22 02:04:55 -0700 (Tue, 22 Mar 2011) New Revision: 57980 Trac: http://trac.enlightenment.org/e/changeset/57980 Modified: trunk/ensure/src/display.c trunk/ensure/src/entree.c trunk/ensure/src/errors.c Modified: trunk/ensure/src/display.c =================================================================== --- trunk/ensure/src/display.c 2011-03-22 09:04:53 UTC (rev 57979) +++ trunk/ensure/src/display.c 2011-03-22 09:04:55 UTC (rev 57980) @@ -27,6 +27,32 @@ void *event ensure_unused); static void display_show_object(void *enobjv, Evas_Object *obj, void *); +Evas_Object * +display_buttons_add(Evas_Object *obj, struct enobj *enobj){ + Evas_Object *box, *bt; + + box = elm_box_add(obj); + elm_box_horizontal_set(box, true); + + bt = elm_button_add(obj); + elm_button_label_set(bt, "View"); + elm_button_autorepeat_set(bt, false); + evas_object_show(bt); + evas_object_smart_callback_add(bt, "clicked", display_enobj_cb, enobj); + elm_box_pack_end(box, bt); + + bt = elm_button_add(obj); + elm_button_label_set(bt, "Highlight"); + elm_button_autorepeat_set(bt, false); + evas_object_show(bt); + evas_object_smart_callback_add(bt, "clicked",display_show_object,enobj); + elm_box_pack_end(box, bt); + + return box; +} + + + void display_enobj_cb(void *enobjv, Evas_Object *obj ensure_unused, void *event ensure_unused){ @@ -281,6 +307,8 @@ } + + /** * Callback for a window being deleted. * Modified: trunk/ensure/src/entree.c =================================================================== --- trunk/ensure/src/entree.c 2011-03-22 09:04:53 UTC (rev 57979) +++ trunk/ensure/src/entree.c 2011-03-22 09:04:55 UTC (rev 57980) @@ -209,18 +209,10 @@ static Evas_Object * tree_item_icon_get(void *enobjv, Evas_Object *obj, const char *part){ - Evas_Object *bt; + if (strcmp(part, "elm.swallow.end") == 0){ - bt = elm_button_add(obj); - elm_button_label_set(bt, "View"); - elm_button_autorepeat_set(bt, false); - evas_object_show(bt); - evas_object_smart_callback_add(bt, "clicked", - display_enobj_cb, enobjv); - return bt; + return display_buttons_add(obj, enobjv); } - - return NULL; } Modified: trunk/ensure/src/errors.c =================================================================== --- trunk/ensure/src/errors.c 2011-03-22 09:04:53 UTC (rev 57979) +++ trunk/ensure/src/errors.c 2011-03-22 09:04:55 UTC (rev 57980) @@ -121,14 +121,10 @@ enobj_icon_get(void *enobjv, Evas_Object *obj, const char *part){ Evas_Object *bt; + + if (strcmp(part, "elm.swallow.end") == 0){ - bt = elm_button_add(obj); - elm_button_label_set(bt, "View"); - elm_button_autorepeat_set(bt, false); - evas_object_show(bt); - evas_object_smart_callback_add(bt, "clicked", - display_enobj_cb, enobjv); - return bt; + return display_buttons_add(obj, enobjv); } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 09:05:05
|
Log: Add saving and loading support. Author: nash Date: 2011-03-22 02:04:58 -0700 (Tue, 22 Mar 2011) New Revision: 57981 Trac: http://trac.enlightenment.org/e/changeset/57981 Added: trunk/ensure/src/file.c trunk/ensure/src/file.h Modified: trunk/ensure/src/Makefile.am trunk/ensure/src/display.c trunk/ensure/src/display.h trunk/ensure/src/ensure.c trunk/ensure/src/ensure.h trunk/ensure/src/errors.c trunk/ensure/src/libensure.c trunk/ensure/src/parser.c trunk/ensure/src/parser.h trunk/ensure/src/results.c Modified: trunk/ensure/src/Makefile.am =================================================================== --- trunk/ensure/src/Makefile.am 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/Makefile.am 2011-03-22 09:04:58 UTC (rev 57981) @@ -21,6 +21,7 @@ errors.c \ enobj.c \ entree.c \ + file.c \ hidden.c \ display.h \ enconfig.h \ @@ -32,7 +33,8 @@ parser.h \ results.h \ hidden.h \ - errors.h + errors.h \ + file.h lib_LTLIBRARIES = libensure.la Modified: trunk/ensure/src/display.c =================================================================== --- trunk/ensure/src/display.c 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/display.c 2011-03-22 09:04:58 UTC (rev 57981) @@ -27,6 +27,16 @@ void *event ensure_unused); static void display_show_object(void *enobjv, Evas_Object *obj, void *); +/** + * Creaetes an elm box with a view and highlight button on it. + * + * This is perfect as the thing at the end of a genlist, or a gift for the + * hard to buy-for relative. + * + * @param obj The parent elm object + * @param enobj The enobj to connect to it + * @return Elm box + */ Evas_Object * display_buttons_add(Evas_Object *obj, struct enobj *enobj){ Evas_Object *box, *bt; Modified: trunk/ensure/src/display.h =================================================================== --- trunk/ensure/src/display.h 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/display.h 2011-03-22 09:04:58 UTC (rev 57981) @@ -1 +1,3 @@ +struct enobj; void display_enobj_cb(void *enobjv, Evas_Object *obj, void *event); +Evas_Object *display_buttons_add(Evas_Object *obj, struct enobj *enobj); Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/ensure.c 2011-03-22 09:04:58 UTC (rev 57981) @@ -23,6 +23,7 @@ #include "enconfig.h" #include "results.h" #include "errors.h" +#include "file.h" struct error { const char *msg; @@ -74,6 +75,7 @@ static Evas_Object *runbutton; static Evas_Object *checkbutton; +Evas_Object *savebutton; static pid_t childid; bool changedir = false; @@ -126,10 +128,12 @@ window_add(struct ensure *ensure, char **args){ Evas_Object *win,*bg,*bx,*ctrls,*run,*check,*gl; Evas_Object *viewbx, *view, *lbl, *report; + Evas_Object *save, *load; int i; win = elm_win_add(NULL, "Ensure", ELM_WIN_BASIC); elm_win_title_set(win, "Ensure"); + evas_object_resize(win, 340, 500); //evas_object_smart_callback_add(win,"delete,request", win_del,NULL); bg = elm_bg_add(win); @@ -232,6 +236,22 @@ evas_object_smart_callback_add(check, "clicked", on_check, ensure); checkbutton = check; + save = elm_button_add(ctrls); + elm_button_label_set(save, "Save"); + elm_button_autorepeat_set(save, false); + elm_object_disabled_set(save, true); + elm_box_pack_end(ctrls,save); + evas_object_show(save); + evas_object_smart_callback_add(save, "clicked", file_save, ensure); + savebutton = save; + + load = elm_button_add(ctrls); + elm_button_label_set(load, "Load"); + elm_button_autorepeat_set(load, false); + elm_box_pack_end(ctrls,load); + evas_object_show(load); + evas_object_smart_callback_add(load, "clicked", file_load, ensure); + elm_box_pack_end(bx, ctrls); evas_object_show(ctrls); @@ -415,7 +435,6 @@ printf("Sending check to %d\n",childid); write(ensure->commandfd,"Check\n",6); - printf("Done\n"); } Modified: trunk/ensure/src/ensure.h =================================================================== --- trunk/ensure/src/ensure.h 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/ensure.h 2011-03-22 09:04:58 UTC (rev 57981) @@ -10,6 +10,7 @@ struct enobj; struct enasn; struct assurance; +struct fileselector; /* in file.h */ enum { ENSURE_MAGIC = 0xE45073EE }; @@ -32,6 +33,7 @@ struct result { struct ensure *ensure; + const char *title; time_t tm; /* A list of enwins */ @@ -59,6 +61,8 @@ Eina_List *results; int commandfd; + + struct fileselector *fileselector; }; @@ -71,6 +75,7 @@ }; extern struct severityinfo severity[ENSURE_N_SEVERITIES]; +extern Evas_Object *savebutton; int ensure_assurance_add(struct assurance *); Modified: trunk/ensure/src/errors.c =================================================================== --- trunk/ensure/src/errors.c 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/errors.c 2011-03-22 09:04:58 UTC (rev 57981) @@ -120,14 +120,9 @@ static Evas_Object * enobj_icon_get(void *enobjv, Evas_Object *obj, const char *part){ - Evas_Object *bt; - - if (strcmp(part, "elm.swallow.end") == 0){ return display_buttons_add(obj, enobjv); } - - return NULL; } static Eina_Bool Modified: trunk/ensure/src/libensure.c =================================================================== --- trunk/ensure/src/libensure.c 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/libensure.c 2011-03-22 09:04:58 UTC (rev 57981) @@ -239,6 +239,7 @@ ecore_timer_add(0.1, libensure_highlight_hide, r); } +/* Slowly fade the object out */ static Eina_Bool libensure_highlight_hide(void *rv){ int r,g,b,a; Modified: trunk/ensure/src/parser.c =================================================================== --- trunk/ensure/src/parser.c 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/parser.c 2011-03-22 09:04:58 UTC (rev 57981) @@ -1,5 +1,6 @@ #include <assert.h> #include <errno.h> +#include <fcntl.h> #include <signal.h> #include <stdbool.h> #include <stdio.h> @@ -7,11 +8,14 @@ #include <string.h> #include <unistd.h> #include <sys/signalfd.h> +#include <sys/stat.h> +#include <sys/types.h> #include <Eina.h> #include <Elementary.h> + #include "ensure.h" #include "enobj.h" #include "enasn.h" @@ -19,6 +23,7 @@ static char *parse_string(char **p, bool shared); +static int parser_read_fd(struct ensure *, int fd); static struct enobj *parse_object(struct ensure *ensure, char *line, struct enobj *eno); @@ -66,10 +71,6 @@ child_data(void *data, Ecore_Fd_Handler *hdlr){ int fd; struct ensure *ensure = data; - static char buf[BUFSIZ]; - static int buffered; - char *p, *start; - int len; assert(hdlr); @@ -78,6 +79,31 @@ fd = ecore_main_fd_handler_fd_get(hdlr); assert(fd >= 0); + parser_read_fd(ensure, fd); + + return 1; +} + +int +parser_readfile(struct ensure *ensure, const char *file){ + int fd; + + fd = open(file, O_RDONLY); + if (fd < 0) return -1; + + while (parser_read_fd(ensure, fd)) + ; + close(fd); + return 0; +} + +static int +parser_read_fd(struct ensure *ensure, int fd){ + static char buf[BUFSIZ]; + static int buffered; + char *p, *start; + int len; + len = read(fd, buf + buffered, sizeof(buf) - 1 - buffered); if (len == 0){ /* FIXME: child exit */ @@ -346,3 +372,50 @@ } +int +parser_save_window(struct enwin *w, FILE *outfile){ + fprintf(outfile, "E: %p '%s' %d %d\n",(void *)w->id, + w->name?:"",w->w,w->h); + return 0; +} + +int +parser_save_object(struct enobj *o, FILE *outfile){ + fprintf(outfile,"Object: %p '%s' ",(void *)o->id,o->type); + if (o->name) fprintf(outfile, "Name: '%s' ",o->name); + if (o->parent) fprintf(outfile,"Parent: %p ",(void *)o->parent); + fprintf(outfile,"Geometry: %+d%+d(%dx%d) ",o->x,o->y,o->w,o->h); + if (o->clip) fprintf(outfile, "Clip: %p ",(void *)o->clip); + + fprintf(outfile, "Color (%d,%d,%d,%d) ",o->r,o->g,o->b,o->a); + + /* Type specific things here */ + if (strcmp(o->type, "image") == 0){ + if (o->data.image.key) + fprintf(outfile, "Image: '%s' '%s' ",o->data.image.file, + o->data.image.key); + else + fprintf(outfile, "Image: '%s' ",o->data.image.file); + if (o->data.image.err) + fprintf(outfile, "ImageErr: '%s' ",o->data.image.err); + } else if (strcmp(o->type, "text") == 0){ + fprintf(outfile,"Text: [[%s]] ",o->data.text.text); + fprintf(outfile,"Font: '%s' %d ", + o->data.text.font, o->data.text.size); + if (o->data.text.source) + fprintf(outfile,"FontSource: '%s' %d ", + o->data.text.source,o->data.text.size); + } else if (strcmp(o->type, "rectangle") == 0){ + + } else if (strcmp(o->type, "edje") == 0){ + fprintf(outfile, "Edje: '%s' '%s' ",o->data.edje.file, + o->data.edje.group); + if (o->data.edje.err) + fprintf(outfile,"EdjeErr: '%s' ",o->data.edje.err); + } + + fprintf(outfile,"\n"); + + return 0; +} + Modified: trunk/ensure/src/parser.h =================================================================== --- trunk/ensure/src/parser.h 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/parser.h 2011-03-22 09:04:58 UTC (rev 57981) @@ -1 +1,7 @@ +struct enwin; +struct enobj; + Eina_Bool child_data(void *data ensure_unused, Ecore_Fd_Handler *hdlr); +int parser_save_window(struct enwin *w, FILE *outfile); +int parser_save_object(struct enobj *o, FILE *outfile); +int parser_readfile(struct ensure *ensure, const char *file); Modified: trunk/ensure/src/results.c =================================================================== --- trunk/ensure/src/results.c 2011-03-22 09:04:55 UTC (rev 57980) +++ trunk/ensure/src/results.c 2011-03-22 09:04:58 UTC (rev 57981) @@ -2,8 +2,8 @@ * Manages loading and saving reports, as well as dealing with reports * generated from applications. */ +#include <stdbool.h> - #include "ensure.h" #include "results.h" @@ -19,18 +19,23 @@ char buf[100]; struct tm tm; - localtime_r(&res->tm, &tm); - /* So does 'max' include the \0 ? */ - strftime(buf,sizeof(buf)-1,TIMEFMT, &tm); + if (!res->title){ + localtime_r(&res->tm, &tm); + /* So does 'max' include the \0 ? */ + strftime(buf,sizeof(buf)-1,TIMEFMT, &tm); + } if (!res->ensure) res->ensure = ensure; + if (!ensure->results) elm_object_disabled_set(savebutton, false); + ensure->results = eina_list_prepend(ensure->results, res); ensure->cur = res; - elm_hoversel_item_add(ensure->reportselect, buf, NULL, 0, + elm_hoversel_item_add(ensure->reportselect, res->title?:buf, NULL, 0, select_results, res); + elm_hoversel_label_set(ensure->reportselect, res->title?:buf); - return -1; + return 0; } /** @@ -49,20 +54,8 @@ if (ensure->cur == result) return; ensure->cur = result; -printf("Result: %d\n",ensure->cur->tm); /* Now need to refill tree */ view_dirty_set(ensure); } - - -void -report_load(){ - -} - -void -report_save(){ - -} |
From: Enlightenment S. <no-...@en...> - 2011-03-23 09:43:42
|
Log: ensure: format Author: nash Date: 2011-03-23 02:43:36 -0700 (Wed, 23 Mar 2011) New Revision: 58021 Trac: http://trac.enlightenment.org/e/changeset/58021 Modified: trunk/ensure/src/errors.c Modified: trunk/ensure/src/errors.c =================================================================== --- trunk/ensure/src/errors.c 2011-03-23 09:43:32 UTC (rev 58020) +++ trunk/ensure/src/errors.c 2011-03-23 09:43:36 UTC (rev 58021) @@ -118,8 +118,7 @@ return strdup(buf); } static Evas_Object * -enobj_icon_get(void *enobjv, Evas_Object *obj, - const char *part){ +enobj_icon_get(void *enobjv, Evas_Object *obj, const char *part){ if (strcmp(part, "elm.swallow.end") == 0){ return display_buttons_add(obj, enobjv); } |
From: Enlightenment S. <no-...@en...> - 2011-03-23 09:43:46
|
Log: ensure: hidden now has view/display boxes. Author: nash Date: 2011-03-23 02:43:40 -0700 (Wed, 23 Mar 2011) New Revision: 58022 Trac: http://trac.enlightenment.org/e/changeset/58022 Modified: trunk/ensure/src/hidden.c Modified: trunk/ensure/src/hidden.c =================================================================== --- trunk/ensure/src/hidden.c 2011-03-23 09:43:36 UTC (rev 58021) +++ trunk/ensure/src/hidden.c 2011-03-23 09:43:40 UTC (rev 58022) @@ -13,11 +13,14 @@ #include "ensure.h" #include "hidden.h" +#include "enobj.h" +#include "display.h" static void hidden_sel(void *objv, Evas_Object *gl, void *event); static char *hiddenclass_label_get(void *data, Evas_Object *obj ensure_unused, const char *part ensure_unused); +static Evas_Object *hiddenclass_icon_get(void *idv, Evas_Object *obj, const char *part); /* static Eina_Bool hiddenclass_state_get(void *data ensure_unused, Evas_Object *obj ensure_unused, const char *part ensure_unused);*/ @@ -29,6 +32,7 @@ .func = { .label_get = hiddenclass_label_get, // .state_get = hiddenclass_state_get, + .icon_get = hiddenclass_icon_get }, }; @@ -49,6 +53,8 @@ elm_hoversel_label_set(ensure->viewselect, "Hidden"); elm_genlist_clear(ensure->view); + evas_object_data_set(ensure->view, "ensure", ensure); + EINA_LIST_FOREACH(ensure->hidden, l, o){ elm_genlist_item_append(ensure->view, &hiddenclass, o, NULL, @@ -65,12 +71,20 @@ int hidden_object_add(struct ensure *ensure, uintptr_t o){ ensure->hidden = eina_list_append(ensure->hidden,(void *)o); + if (ensure->current_view == ENVIEW_HIDDEN){ + ensure->current_view = -1; + view_set_hidden(ensure, NULL, NULL); + } return 0; } int hidden_object_remove(struct ensure *ensure, uintptr_t o){ ensure->hidden = eina_list_remove(ensure->hidden,(void *)o); + if (ensure->current_view == ENVIEW_HIDDEN){ + ensure->current_view = -1; + view_set_hidden(ensure, NULL, NULL); + } return 0; } @@ -117,3 +131,26 @@ return strdup(buf); } +/** + * Get the icon. + * + * if hte object exists, add a view / highlight combo. + * else nothing. + */ +static Evas_Object * +hiddenclass_icon_get(void *idv, Evas_Object *obj, const char *part){ + struct enobj *enobj; + struct ensure *ensure; + uintptr_t id = (uintptr_t)idv; + + if (strcmp(part, "elm.swallow.end") != 0) return NULL; + + ensure = evas_object_data_get(obj, "ensure"); + if (!ensure) return NULL; + + enobj = enobj_get(ensure, id); + + if (!enobj) return NULL; + + return display_buttons_add(obj, enobj); +} |
From: Enlightenment S. <no-...@en...> - 2011-03-23 09:43:47
|
Log: ensure: more stabliity fixes, and default view. Author: nash Date: 2011-03-23 02:43:46 -0700 (Wed, 23 Mar 2011) New Revision: 58024 Trac: http://trac.enlightenment.org/e/changeset/58024 Modified: trunk/ensure/src/enasn.c trunk/ensure/src/ensure.c trunk/ensure/src/errors.c trunk/ensure/src/parser.c Modified: trunk/ensure/src/enasn.c =================================================================== --- trunk/ensure/src/enasn.c 2011-03-23 09:43:43 UTC (rev 58023) +++ trunk/ensure/src/enasn.c 2011-03-23 09:43:46 UTC (rev 58024) @@ -122,12 +122,7 @@ bug->type = eina_stringshare_add(type); enobj->bugs = eina_list_prepend(enobj->bugs, bug); -printf("bug add\n"); - if (!enobj->genitem){ - ensure_enobj_err_list_add(enobj); - } - return 0; } Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-23 09:43:43 UTC (rev 58023) +++ trunk/ensure/src/ensure.c 2011-03-23 09:43:46 UTC (rev 58024) @@ -94,7 +94,7 @@ ensure = calloc(1,sizeof(struct ensure)); ensure->magic = ENSURE_MAGIC; - ensure->current_view = -1; + ensure->current_view = ENVIEW_ERROR; /* FIXME: this isn't implemented */ if (streq(argv[1],"-c")){ @@ -354,25 +354,6 @@ -int -ensure_enobj_err_list_add(struct enobj *enobj){ -printf("Err list commned out\n"); -#if 0 - /* Does the window have an item */ - if (!enobj->enwin->genitem){ - enobj->enwin->genitem = elm_genlist_item_append(ensure->view, - &windowclass, enobj->enwin, NULL, - ELM_GENLIST_ITEM_SUBITEMS, enwin_select, - enobj->enwin); - } - - enobj->genitem = elm_genlist_item_append(objlist, &objc, - enobj, enobj->enwin->genitem, ELM_GENLIST_ITEM_SUBITEMS, - enobj_select, enobj); -#endif - return 0; -} - /** * Initialise our signal handler */ Modified: trunk/ensure/src/errors.c =================================================================== --- trunk/ensure/src/errors.c 2011-03-23 09:43:43 UTC (rev 58023) +++ trunk/ensure/src/errors.c 2011-03-23 09:43:46 UTC (rev 58024) @@ -73,7 +73,10 @@ if (!ensure) return; elm_genlist_clear(ensure->view); + elm_hoversel_label_set(ensure->viewselect, "Errors"); + if (!ensure->cur) return; + /* For each object */ iter = eina_hash_iterator_data_new(ensure->cur->objdb); EINA_ITERATOR_FOREACH(iter, enobj){ Modified: trunk/ensure/src/parser.c =================================================================== --- trunk/ensure/src/parser.c 2011-03-23 09:43:43 UTC (rev 58023) +++ trunk/ensure/src/parser.c 2011-03-23 09:43:46 UTC (rev 58024) @@ -147,6 +147,7 @@ printf("Got to the end...\n"); enasn_check(ensure); enobj_prepare(ensure); + view_dirty_set(ensure); } else if (strncmp(line, "E: ",3) == 0){ printf("Got window\n"); enwin = calloc(1,sizeof(struct enwin)); |
From: Enlightenment S. <no-...@en...> - 2011-03-23 09:43:49
|
Log: ensure: allow selection 'error' view at startup. Author: nash Date: 2011-03-23 02:43:43 -0700 (Wed, 23 Mar 2011) New Revision: 58023 Trac: http://trac.enlightenment.org/e/changeset/58023 Modified: trunk/ensure/src/ensure.c Modified: trunk/ensure/src/ensure.c =================================================================== --- trunk/ensure/src/ensure.c 2011-03-23 09:43:40 UTC (rev 58022) +++ trunk/ensure/src/ensure.c 2011-03-23 09:43:43 UTC (rev 58023) @@ -94,7 +94,7 @@ ensure = calloc(1,sizeof(struct ensure)); ensure->magic = ENSURE_MAGIC; - ensure->current_view = ENVIEW_ERROR; + ensure->current_view = -1; /* FIXME: this isn't implemented */ if (streq(argv[1],"-c")){ |
From: Enlightenment S. <no-...@en...> - 2011-03-23 09:52:30
|
Log: ensure: clean up error tree correctly on clear. Author: nash Date: 2011-03-23 02:52:23 -0700 (Wed, 23 Mar 2011) New Revision: 58025 Trac: http://trac.enlightenment.org/e/changeset/58025 Modified: trunk/ensure/src/errors.c Modified: trunk/ensure/src/errors.c =================================================================== --- trunk/ensure/src/errors.c 2011-03-23 09:43:46 UTC (rev 58024) +++ trunk/ensure/src/errors.c 2011-03-23 09:52:23 UTC (rev 58025) @@ -136,9 +136,9 @@ static void enobj_del(void *data ensure_unused, Evas_Object *obj ensure_unused){ - struct enwin *enwin = data; + struct enobj *enobj = data; - enwin->genitem = NULL; + enobj->genitem = NULL; } @@ -175,7 +175,10 @@ /* FIXME: Do something or delete this */ printf("Select... ignoring\n"); } -static void enwin_del(void *data, Evas_Object *obj){ - /* FIXME: Do something or delete this */ +static void +enwin_del(void *enwinv, Evas_Object *obj){ + struct enwin *enwin = enwinv; + + enwin->genitem = NULL; } |