From: <enl...@li...> - 2002-01-26 02:02:12
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e Modified Files: configure.ac configure.in Log Message: move the background usage over to edb. background.c,h are no longer used. so if you haven't installed ebg, go get it. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/configure.ac,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- configure.ac 2002/01/16 17:30:31 1.10 +++ configure.ac 2002/01/26 02:01:42 1.11 @@ -168,6 +168,19 @@ efsd_libs=`efsd-config --libs` efsd_cflags=`efsd-config --cflags` +dnl Check for Edb. +AC_ARG_WITH(ebg, + [ --with-ebg=DIR use ebg in <DIR>], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) + +AC_PATH_GENERIC(ebg,, [ + AC_SUBST(ebg_libs) + AC_SUBST(ebg_cflags)], + AC_MSG_ERROR(Cannot find ebg: Is ebg-config in path?)) +ebg_libs=`ebg-config --libs` +ebg_cflags=`ebg-config --cflags` + dnl Check for ferite. AC_ARG_WITH(ferite, [ --with-ferite=DIR use ferite in <DIR>], =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/configure.in,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- configure.in 2002/01/20 06:02:14 1.25 +++ configure.in 2002/01/26 02:01:42 1.26 @@ -167,6 +167,19 @@ efsd_libs=`efsd-config --libs` efsd_cflags=`efsd-config --cflags` +dnl Check for Edb. +AC_ARG_WITH(ebg, + [ --with-ebg=DIR use ebg in <DIR>], + [CFLAGS="$CFLAGS -I$withval/include" + LIBS="-L$withval/lib $LIBS"]) + +AC_PATH_GENERIC(ebg,, [ + AC_SUBST(ebg_libs) + AC_SUBST(ebg_cflags)], + AC_MSG_ERROR(Cannot find ebg: Is ebg-config in path?)) +ebg_libs=`ebg-config --libs` +ebg_cflags=`ebg-config --cflags` + dnl Check for ferite. AC_ARG_WITH(ferite, [ --with-ferite=DIR use ferite in <DIR>], |
From: <enl...@li...> - 2002-01-26 02:02:12
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/src Modified Files: Makefile.am desktops.c e.h view.c view.h Log Message: move the background usage over to edb. background.c,h are no longer used. so if you haven't installed ebg, go get it. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/Makefile.am,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- Makefile.am 2002/01/25 00:49:09 1.44 +++ Makefile.am 2002/01/26 02:01:42 1.45 @@ -9,7 +9,7 @@ INCLUDES = \ -I$(top_srcdir)/intl \ - @evas_cflags@ @edb_cflags@ @ebits_cflags@ @ecore_cflags@ @efsd_cflags@ @ferite_cflags@ $(DEBUGFLAGS) + @evas_cflags@ @edb_cflags@ @ebits_cflags@ @ecore_cflags@ @efsd_cflags@ @ebg_cflags@ @ferite_cflags@ $(DEBUGFLAGS) EXTRA_DIST = e_ferite.fec @@ -47,7 +47,6 @@ enlightenment_SOURCES = \ actions.h actions.c \ - background.h background.c \ block.c block.h \ border.h border.c \ bordermenu.h bordermenu.c \ @@ -87,4 +86,4 @@ view.h view.c \ e.h -enlightenment_LDADD = @evas_libs@ @edb_libs@ @ebits_libs@ @ecore_libs@ @efsd_libs@ @ferite_libs@ -lm -lc $(INTLLIBS) +enlightenment_LDADD = @evas_libs@ @edb_libs@ @ebits_libs@ @ecore_libs@ @efsd_libs@ @ebg_libs@ @ferite_libs@ -lm -lc $(INTLLIBS) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/desktops.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- desktops.c 2002/01/25 19:41:02 1.42 +++ desktops.c 2002/01/26 02:01:42 1.43 @@ -3,7 +3,6 @@ #include "config.h" #include "actions.h" #include "border.h" -#include "background.h" #include "view.h" #include "icccm.h" #include "util.h" =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/e.h,v retrieving revision 1.65 retrieving revision 1.66 diff -u -3 -r1.65 -r1.66 --- e.h 2001/11/03 14:55:21 1.65 +++ e.h 2002/01/26 02:01:42 1.66 @@ -25,6 +25,7 @@ #include <Ebits.h> #include <Ecore.h> #include <Edb.h> +#include <Ebg.h> #ifndef PATH_MAX #define PATH_MAX 4096 =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/view.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -3 -r1.114 -r1.115 --- view.c 2002/01/24 08:12:12 1.114 +++ view.c 2002/01/26 02:01:42 1.115 @@ -669,7 +669,7 @@ v->scroll.x = sx; v->scroll.y = sy; e_view_icons_apply_xy(v); - if (v->bg) e_background_set_scroll(v->bg, v->scroll.x, v->scroll.y); + if (v->bg) e_bg_set_scroll(v->bg, v->scroll.x, v->scroll.y); D_RETURN; } @@ -709,7 +709,7 @@ v->scroll.x = sx; v->scroll.y = sy; e_view_icons_apply_xy(v); - if (v->bg) e_background_set_scroll(v->bg, v->scroll.x, v->scroll.y); + if (v->bg) e_bg_set_scroll(v->bg, v->scroll.x, v->scroll.y); D_RETURN; } @@ -916,7 +916,7 @@ ecore_window_set_background_pixmap(v->win.main, v->pmap); ecore_window_clear(v->win.main); } - if (v->bg) e_background_set_size(v->bg, v->size.w, v->size.h); + if (v->bg) e_bg_resize(v->bg, v->size.w, v->size.h); D("evas_set_output_viewpor(%p)\n", v->evas); evas_set_output_viewport(v->evas, 0, 0, v->size.w, v->size.h); evas_set_output_size(v->evas, v->size.w, v->size.h); @@ -1972,8 +1972,9 @@ } if (v->bg) { - e_background_realize(v->bg, v->evas); - e_background_set_size(v->bg, v->size.w, v->size.h); + e_bg_add_to_evas(v->bg, v->evas); + e_bg_resize(v->bg, v->size.w, v->size.h); + e_bg_show(v->bg); } v->obj_bg = evas_add_rectangle(v->evas); evas_callback_add(v->evas, v->obj_bg, CALLBACK_MOUSE_DOWN, e_bg_down_cb, v); @@ -2410,7 +2411,7 @@ v->geom_get.busy = 0; if (v->bg) - e_background_set_size(v->bg, v->size.w, v->size.h); + e_bg_resize(v->bg, v->size.w, v->size.h); if (v->options.back_pixmap) e_view_update(v); b = e_border_adopt(v->win.base, 1); b->client.internal = 1; @@ -2447,7 +2448,7 @@ void e_view_bg_load(E_View *v) { - E_Background *bg; + E_Background bg; char buf[PATH_MAX]; D_ENTER; @@ -2470,13 +2471,13 @@ e_strdup(v->bg_file, buf); } } - bg = e_background_load(v->bg_file); + bg = e_bg_load(v->bg_file); if (!bg) { snprintf(buf, PATH_MAX, "%s/.e_background.bg.db", v->dir); FREE(v->bg_file); e_strdup(v->bg_file, buf); - bg = e_background_load(v->bg_file); + bg = e_bg_load(v->bg_file); if (!bg) { if (v->is_desktop) @@ -2485,7 +2486,7 @@ snprintf(buf, PATH_MAX, "%s/view.bg.db", e_config_get("backgrounds")); FREE(v->bg_file); e_strdup(v->bg_file, buf); - bg = e_background_load(v->bg_file); + bg = e_bg_load(v->bg_file); } } if (bg) @@ -2494,9 +2495,10 @@ v->bg_mod = e_file_mod_time(v->bg_file); if (v->evas) { - e_background_realize(v->bg, v->evas); - e_background_set_scroll(v->bg, v->scroll.x, v->scroll.y); - e_background_set_size(v->bg, v->size.w, v->size.h); + e_bg_add_to_evas(v->bg, v->evas); + e_bg_set_scroll(v->bg, v->scroll.x, v->scroll.y); + e_bg_resize(v->bg, v->size.w, v->size.h); + e_bg_show(v->bg); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/view.h,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- view.h 2002/01/11 23:53:20 1.30 +++ view.h 2002/01/26 02:01:42 1.31 @@ -2,7 +2,7 @@ #define E_VIEW_H #include "e.h" -#include "background.h" +/*#include "background.h"*/ #include "scrollbar.h" #include "fs.h" #include "iconbar.h" @@ -146,7 +146,7 @@ char *bg_file; char *prev_bg_file; time_t bg_mod; - E_Background *bg; + E_Background bg; struct { E_Scrollbar *h, *v; |
From: <enl...@li...> - 2002-01-28 05:41:30
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/src Modified Files: border.c menubuild.c menubuild.h view.c Log Message: This should fix the iconified menu segfaulting problem. The menu now get rebuilt when you middle click, if things have changed. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/border.c,v retrieving revision 1.67 retrieving revision 1.68 diff -u -3 -r1.67 -r1.68 --- border.c 2002/01/25 19:41:02 1.67 +++ border.c 2002/01/28 05:41:29 1.68 @@ -1218,7 +1218,9 @@ D_ENTER; e_match_save_props(b); - + D("before notify\n"); + e_observee_notify_observers(E_OBSERVEE(b), E_EVENT_BORDER_DELETE); + D("after notify\n"); while (b->menus) { E_Menu *m; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/menubuild.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- menubuild.c 2002/01/24 08:12:12 1.13 +++ menubuild.c 2002/01/28 05:41:29 1.14 @@ -26,7 +26,7 @@ static void e_build_menu_gnome_apps_build(E_Build_Menu *bm); static E_Menu *e_build_menu_iconified_borders_build(E_Build_Menu *bm); -static void e_build_menu_iconified_borders_rebuild(E_Observer *observer, E_Observee *observee, E_Event_Type event); +static void e_build_menu_iconified_borders_changed(E_Observer *observer, E_Observee *observee, E_Event_Type event); /* ------------ various callbacks ---------------------- */ @@ -524,7 +524,8 @@ bm = NEW(E_Build_Menu, 1); ZERO(bm, E_Build_Menu, 1); - e_observer_init(E_OBSERVER(bm), E_EVENT_BORDER_ICONIFY | E_EVENT_BORDER_UNICONIFY | E_EVENT_BORDER_NEW, e_build_menu_iconified_borders_rebuild, (E_Cleanup_Func) e_build_menu_cleanup); +/* e_observer_init(E_OBSERVER(bm), E_EVENT_BORDER_ICONIFY | E_EVENT_BORDER_UNICONIFY | E_EVENT_BORDER_NEW, e_build_menu_iconified_borders_changed, (E_Cleanup_Func) e_build_menu_cleanup);*/ + e_observer_init(E_OBSERVER(bm), E_EVENT_BORDER_ALL, e_build_menu_iconified_borders_changed, (E_Cleanup_Func) e_build_menu_cleanup); for (l = e_border_get_borders_list(); l; l = l->next) { @@ -538,8 +539,20 @@ D_RETURN_(bm); } +void +e_build_menu_iconified_borders_rebuild(E_Build_Menu *bm) +{ + D_ENTER; + + e_build_menu_unbuild(bm); + bm->menu = e_build_menu_iconified_borders_build(bm); + + bm->changed = 0; + D_RETURN; +} + static void -e_build_menu_iconified_borders_rebuild(E_Observer *observer, E_Observee *observee, E_Event_Type event) +e_build_menu_iconified_borders_changed(E_Observer *observer, E_Observee *observee, E_Event_Type event) { E_Build_Menu *bm; @@ -551,15 +564,18 @@ e_observer_register_observee(E_OBSERVER(observer), E_OBSERVEE(observee)); } - if (event & (E_EVENT_BORDER_ICONIFY | E_EVENT_BORDER_UNICONIFY)) + else if (event & E_EVENT_BORDER_DELETE) { - D("catch iconify, rebuild menu\n"); + bm = (E_Build_Menu *) observer; + bm->changed = 1; + } + else if (event & (E_EVENT_BORDER_ICONIFY | E_EVENT_BORDER_UNICONIFY)) + { + D("catch iconify, set menu to changed\n"); bm = (E_Build_Menu *)observer; - e_build_menu_unbuild(bm); - bm->menu = e_build_menu_iconified_borders_build(bm); + bm->changed = 1; } - D_RETURN; } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/menubuild.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- menubuild.h 2002/01/24 18:22:54 1.5 +++ menubuild.h 2002/01/28 05:41:29 1.6 @@ -18,10 +18,13 @@ Evas_List menus; Evas_List commands; + + int changed; }; E_Build_Menu *e_build_menu_new_from_db(char *file); E_Build_Menu *e_build_menu_new_from_gnome_apps(char *dir); E_Build_Menu *e_build_menu_new_from_iconified_borders(); +void e_build_menu_iconified_borders_rebuild(E_Build_Menu *bm); #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/view.c,v retrieving revision 1.115 retrieving revision 1.116 diff -u -3 -r1.115 -r1.116 --- view.c 2002/01/26 02:01:42 1.115 +++ view.c 2002/01/28 05:41:29 1.116 @@ -440,11 +440,17 @@ D("building iconified windows menu\n"); buildmenu = e_build_menu_new_from_iconified_borders(); } + if (buildmenu && buildmenu->changed) + { + D("buildmenu changed! rebuild!\n"); + e_build_menu_iconified_borders_rebuild(buildmenu); + } if (buildmenu) { static E_Menu *menu = NULL; menu = buildmenu->menu; - + + if (menu) { D("showing iconified window menu\n"); |
From: <enl...@li...> - 2002-01-30 03:16:34
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/src Modified Files: e_ferite.fec epplet.c epplet.h menu.c Log Message: Epplets run from ~/.e/desktop/default/.e_epplets/eppletName/eppletName.fe (copy em manually for now) Get epplets to keep track of the ebits / evas objects they create, so they can be cleaned up later. Also, some small epplet API changes. When creating Ebits / EvasObjects, pass a path relative to the .fe file rather than the full path. Usually, you just need a file name, which should be in the same dir as the epplet. if a file named layout.bits.db exists in an epplet's dir, it is used for the default layout (location) of that epplet rather than whatever is in ~/.e/desktop/default/.e_epplets.bits.db. Only use this if a specific size/location of the epplet is necessary. (just create one dummy image in the bits with the name of the epplet, and its location/size relative to the entire view) Note, try to not use this, as user customizability is important... I will eventually make it so that if a ui.bits.db exists, it will automatically be loaded as the main bits file, and set as epplet.bits in the script. (Can't get object creation from within a .fec to work correctly yet...) This would remove the need for the setBits() call. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/e_ferite.fec,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- e_ferite.fec 2002/01/24 06:15:40 1.10 +++ e_ferite.fec 2002/01/30 03:16:33 1.11 @@ -2,6 +2,7 @@ #include "Ecore.h" #include "Ebits.h" + #include "ferite.h" #include "desktops.h" #include "border.h" @@ -9,11 +10,13 @@ #include "debug.h" #include "globals.h" #include "observer.h" + #include "file.h" #define BorderObj ((E_Border *)(self->odata)) #define BitsObj ((Ebits_Object)self->odata) #define EppObj ((E_Epplet *)(self->odata)) #define EvasObj ((Evas_Object_Wrapper *)(self->odata)) + %} class Border { @@ -148,6 +151,11 @@ ecore_event_loop_quit(); %} + function restart() + %{ + e_exec_restart(); + %} + function dataCopy(object from, object to) %{ to->odata = from->odata; @@ -172,18 +180,27 @@ EvasObj = NEW(Evas_Object_Wrapper, 1); ZERO(EvasObj, Evas_Object_Wrapper, 1); - EvasObj->evas = ((E_Epplet *)(epp->odata))->view->evas; + EvasObj->epp = (E_Epplet *)(epp->odata); + EvasObj->evas = EvasObj->epp->view->evas; + + EvasObj->epp->evas_objects = evas_list_append(EvasObj->epp->evas_objects, EvasObj); + %} function Destructor() %{ %} - function addImage(string path) + function addImage(string file) %{ - if (EvasObj->evas) - EvasObj->obj = evas_add_image_from_file(EvasObj->evas, path); - ffree(path); + char buf[PATH_MAX]; + + if (EvasObj->evas && EvasObj->epp) + { + snprintf(buf, PATH_MAX, "%s%s", EvasObj->epp->view->dir, file); + EvasObj->obj = evas_add_image_from_file(EvasObj->evas, file); + } + ffree(file); %} function addRectangle() @@ -255,10 +272,8 @@ function setColor(number r, number g, number b, number a) %{ - D("in setColor\n"); if (EvasObj->evas && EvasObj->obj) evas_set_color(EvasObj->evas, EvasObj->obj, (long)r, (long)g, (long)b, (long)a); - D("leaving setColor\n"); %} @@ -351,18 +366,23 @@ class Ebits { - function Ebits(string path) + function Ebits(string file, object epp) %{ - D("in Ebits constructor\n"); - D("loading bits\n"); + char buf[PATH_MAX]; + + snprintf(buf, PATH_MAX, "%s/.e_epplets/%s/%s", ((E_Epplet *)(epp->odata))->view->dir, ((E_Epplet *)(epp->odata))->name, file); + D("adding ebits: %s\n", buf); BitsObj = NULL; - BitsObj = ebits_load(path); + BitsObj = ebits_load(buf); + + ((E_Epplet *)(epp->odata))->ebits = evas_list_append(((E_Epplet *)(epp->odata))->ebits, BitsObj); +/* if (BitsObj) - printf("bits loaded\n"); + D("bits loaded\n"); else - printf("ERROR: bits not found\n"); - - ffree(path); + D("ERROR: bits not found\n"); +*/ + ffree(file); %} function Destructor() @@ -377,51 +397,60 @@ function free() %{ - ebits_free(BitsObj); + if(BitsObj) + ebits_free(BitsObj); %} function show() %{ + if(BitsObj) ebits_show(BitsObj); %} function hide() %{ + if(BitsObj) ebits_hide(BitsObj); %} function raise() %{ + if(BitsObj) ebits_raise(BitsObj); %} function lower() %{ + if(BitsObj) ebits_lower(BitsObj); %} function move(number x, number y) %{ + if(BitsObj) ebits_move(BitsObj, x, y); %} function resize(number w, number h) %{ + if(BitsObj) ebits_resize(BitsObj, w, h); %} function setLayer(number l) %{ + if(BitsObj) ebits_set_layer(BitsObj, l); %} function setState(string bitName, string state) %{ - ebits_set_named_bit_state(BitsObj, bitName, state); + if(BitsObj) + ebits_set_named_bit_state(BitsObj, bitName, state); ffree(bitName); ffree(state); %} - +/* function getNamedBitGeometry(string bitName, number x, number y, number w, number h) %{ double xx, yy, ww, hh; @@ -432,12 +461,13 @@ w = ww; h = hh; %} +*/ function getNamedBitGeometryX(string bitName) %{ double x; - ebits_get_named_bit_geometry(BitsObj, bitName, &x, NULL, NULL, NULL); - D("%s.x: %i\n", bitName, x); + if(BitsObj) + ebits_get_named_bit_geometry(BitsObj, bitName, &x, NULL, NULL, NULL); ffree(bitName); FE_RETURN_DOUBLE(x); %} @@ -445,7 +475,8 @@ function getNamedBitGeometryY(string bitName) %{ double y; - ebits_get_named_bit_geometry(BitsObj, bitName, NULL, &y, NULL, NULL); + if(BitsObj) + ebits_get_named_bit_geometry(BitsObj, bitName, NULL, &y, NULL, NULL); ffree(bitName); FE_RETURN_DOUBLE(y); %} @@ -453,7 +484,8 @@ function getNamedBitGeometryW(string bitName) %{ double w; - ebits_get_named_bit_geometry(BitsObj, bitName, NULL, NULL, &w, NULL); + if(BitsObj) + ebits_get_named_bit_geometry(BitsObj, bitName, NULL, NULL, &w, NULL); ffree(bitName); FE_RETURN_DOUBLE(w); %} @@ -461,7 +493,8 @@ function getNamedBitGeometryH(string bitName) %{ double h; - ebits_get_named_bit_geometry(BitsObj, bitName, NULL, NULL, NULL, &h); + if(BitsObj) + ebits_get_named_bit_geometry(BitsObj, bitName, NULL, NULL, NULL, &h); ffree(bitName); FE_RETURN_DOUBLE(h); %} @@ -472,7 +505,9 @@ cb = e_epplet_cb_new(script, func, data, NULL); - ebits_set_classed_bit_callback(BitsObj, bitClass, CALLBACK_MOUSE_DOWN, e_epplet_bits_cb, cb); + if(BitsObj) + ebits_set_classed_bit_callback(BitsObj, bitClass, CALLBACK_MOUSE_DOWN, + e_epplet_bits_cb, cb); ffree(bitClass); ffree(func); @@ -482,33 +517,62 @@ class Epplet { - object bits; + object ui; function Epplet() %{ - EppObj = malloc(sizeof(E_Epplet)); - memset(EppObj, 0, sizeof(E_Epplet)); + char buf[PATH_MAX]; +/* FeriteVariable *ui; + FeriteVariable **params;*/ + + EppObj = e_epplet_new(script); +#if 0 +/* FIXME: this is not complete, object creation doesn't work for some reason??? */ + D("epplet created\n"); + /* if ui.bits.db exists, make it the ui */ + snprintf(buf, PATH_MAX, "%sui.bits.db", EppObj->dir); + if (e_file_exists(buf)) + { + EppObj->ui = ebits_load(buf); + ebits_add_to_evas(EppObj->ui, EppObj->view->evas); + +/* ui = __ferite_get_variable_from_hash(script, self->variables, "ui");*/ + params = __ferite_create_parameter_list_from_data(script, "so", "ui.bits.db", self); + ui = __ferite_new_object( script, __ferite_find_class(script, script->mainns, "Ebits"), params ); + __ferite_delete_parameter_list(script, params); + D("object created, name: %s\n", ui->name); + +/*FIXME: how do i set an object's data?*/ + } +#endif - EppObj->context = e_epplet_get_context_from_script(script); - EppObj->view = EppObj->context->view; - EppObj->name = strdup(EppObj->context->name); - EppObj->current.x = EppObj->context->geom.x; - EppObj->current.y = EppObj->context->geom.y; - EppObj->current.w = EppObj->context->geom.w; - EppObj->current.h = EppObj->context->geom.h; + /* if layout.bits.db exists, make it the layout */ + snprintf(buf, PATH_MAX, "%slayout.bits.db", EppObj->dir); + if (e_file_exists(buf)) + { + double x, y, w, h; - if (!EppObj->view) { D("Error: no view found for script\n"); } - else { D("got view: %s\n", EppObj->view->dir); } + EppObj->layout = ebits_load(buf); + ebits_add_to_evas(EppObj->layout, EppObj->view->evas); + ebits_move(EppObj->layout, 0, 0); + ebits_resize(EppObj->layout, EppObj->view->size.w, EppObj->view->size.h); + ebits_get_named_bit_geometry(EppObj->layout, EppObj->name, + &x, &y, &w, &h); + + EppObj->current.x = x; + EppObj->current.y = y; + EppObj->current.w = w; + EppObj->current.h = h; + } %} function setBits(object ebits) %{ - EppObj->bits = ((Ebits_Object)ebits->odata); - EppObj->fbits = ebits; + EppObj->ui = ((Ebits_Object)ebits->odata); - if(EppObj->bits && EppObj->view) + if(EppObj->ui && EppObj->view) { - ebits_add_to_evas(EppObj->bits, EppObj->view->evas); + ebits_add_to_evas(EppObj->ui, EppObj->view->evas); e_epplet_set_common_callbacks(EppObj); D("bits added to view\n"); D("view dir: %s\n", EppObj->view->dir); @@ -528,16 +592,16 @@ D("moving epplet: %f, %f\n", x, y); - if (EppObj->bits) - ebits_move(EppObj->bits, EppObj->current.x, EppObj->current.y); + if (EppObj->ui) + ebits_move(EppObj->ui, EppObj->current.x, EppObj->current.y); %} function resize(number w, number h) %{ EppObj->current.w = w; EppObj->current.h = h; - if (EppObj->bits) - ebits_resize(EppObj->bits, EppObj->current.w, EppObj->current.h); + if (EppObj->ui) + ebits_resize(EppObj->ui, EppObj->current.w, EppObj->current.h); %} function getX() @@ -563,54 +627,36 @@ function display() %{ int mw, mh; - - if(EppObj->view && EppObj->bits) + D("in display()\n"); + if(EppObj->view && EppObj->ui) { - D("adding bits for epplet `%s'\n", EppObj->context->name); - D("x: %f, y: %f, w: %f, h: %f\n", EppObj->context->geom.x, EppObj->context->geom.y, EppObj->context->geom.w, EppObj->context->geom.h); - ebits_show(EppObj->bits); - - if ((EppObj->context->geom.w) && (EppObj->context->geom.h)) - { - EppObj->current.w = EppObj->context->geom.w; - EppObj->current.h = EppObj->context->geom.h; - - ebits_get_min_size(EppObj->bits, &mw, &mh); - if ( EppObj->current.w < mw ) EppObj->current.w = mw; - if ( EppObj->current.h < mh ) EppObj->current.h = mh; - } - - else - { - ebits_get_min_size(EppObj->bits, &mw, &mh); - if (mw == 0 || mh == 0) - { - mw = mh = 50; - } - EppObj->current.w = mw; - EppObj->current.h = mh; - } - - EppObj->current.x = EppObj->context->geom.x; - EppObj->current.y = EppObj->context->geom.y; - - ebits_get_min_size(EppObj->bits, &mw, &mh); - - if (EppObj->current.x > (EppObj->view->size.w - mw)) - EppObj->current.x = EppObj->view->size.w - mw; - if (EppObj->current.y > (EppObj->view->size.h - mh)) - EppObj->current.y = EppObj->view->size.h - mh; - - ebits_set_layer(EppObj->bits, 12000); - ebits_resize(EppObj->bits, EppObj->current.w, EppObj->current.h); - ebits_move(EppObj->bits, EppObj->current.x, EppObj->current.y); + ebits_show(EppObj->ui); + + ebits_get_min_size(EppObj->ui, &mw, &mh); + if ( EppObj->current.w < mw ) EppObj->current.w = mw; + if ( EppObj->current.h < mh ) EppObj->current.h = mh; + + ebits_get_max_size(EppObj->ui, &mw, &mh); + if ( EppObj->current.w > mw ) EppObj->current.w = mw; + if ( EppObj->current.h > mh ) EppObj->current.h = mh; + + if (EppObj->current.x > (EppObj->view->size.w - EppObj->current.w)) + EppObj->current.x = EppObj->view->size.w - EppObj->current.w; + if (EppObj->current.y > (EppObj->view->size.h - EppObj->current.h)) + EppObj->current.y = EppObj->view->size.h - EppObj->current.h; + + ebits_set_layer(EppObj->ui, 12000); + ebits_resize(EppObj->ui, EppObj->current.w, EppObj->current.h); + ebits_move(EppObj->ui, EppObj->current.x, EppObj->current.y); } %} +/* function getBits() %{ FE_RETURN_VAR(EppObj->fbits); %} +*/ function getViewW() %{ @@ -627,7 +673,7 @@ char buf[PATH_MAX], *retval; printf("getting dir:\n"); - snprintf(buf, PATH_MAX, "%s%s/", e_config_get("epplets"), EppObj->name); + snprintf(buf, PATH_MAX, "%s/.e_epplets/%s/", EppObj->view->dir, EppObj->name); printf("%s\n", buf); retval = (char *)buf; FE_RETURN_STR(retval, 0); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/epplet.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- epplet.c 2002/01/25 00:49:10 1.5 +++ epplet.c 2002/01/30 03:16:33 1.6 @@ -7,6 +7,7 @@ #include "e_ferite.h" +static void e_epplet_cleanup(E_Epplet *epp); static void e_epplet_mouse_down_cb (void *_data, Ebits_Object _o, char *_c, int _b, int _x, int _y, int _ox, int _oy, int _ow, int _oh); @@ -21,6 +22,83 @@ static void e_epplet_observer_cleanup(E_Object *o); +E_Epplet * +e_epplet_new(void *scr) +{ +#ifdef USE_FERITE + E_Epplet *epp; + FeriteScript *script; + char buf[PATH_MAX]; + + D_ENTER; + + script = (FeriteScript *)scr; + + epp = NEW(E_Epplet, 1); + ZERO(epp, E_Epplet, 1); + + e_object_init(E_OBJECT(epp), (E_Cleanup_Func) e_epplet_cleanup); + + epp->context = e_epplet_get_context_from_script(script); + if (!(epp->context)) + { + D("Error: epplet context not found\n"); + D_RETURN_(NULL); + } + + epp->view = epp->context->view; + epp->name = strdup(epp->context->name); + epp->current.x = epp->context->geom.x; + epp->current.y = epp->context->geom.y; + epp->current.w = epp->context->geom.w; + epp->current.h = epp->context->geom.h; + epp->context->epp = epp; + + snprintf(buf, PATH_MAX, "%s/.e_epplets/%s/", epp->view->dir, epp->name); + epp->dir = strdup(buf); + + if (!(epp->view)) + { + D("Error: no view found for epplet: %s\n", epp->name); + e_object_unref(E_OBJECT(epp)); + D_RETURN_(NULL); + } + else + { + D_RETURN_(epp); + } +#endif + +} + +static void +e_epplet_cleanup(E_Epplet *epp) +{ + Evas_List l; + + D_ENTER; + +#ifdef USE_FERITE + for (l = epp->ebits; l; l = l->next) + { + Ebits_Object o = l->data; + ebits_free(o); + } + + for (l = epp->evas_objects; l; l = l->next) + { + Evas_Object_Wrapper *o = l->data; + evas_del_object(o->evas, o->obj); + + free(o); + } + + if (epp->layout) ebits_free(epp->layout); + if (epp->ui) ebits_free(epp->ui); +#endif + D_RETURN; +} + void e_epplet_load_from_layout (E_View * v) { @@ -63,7 +141,7 @@ v->epplet_contexts = evas_list_append (v->epplet_contexts, context); - snprintf (buf, PATH_MAX, "%s%s/%s.fe", e_config_get ("epplets"), context->name, + snprintf (buf, PATH_MAX, "%s/.e_epplets/%s/%s.fe", v->dir, context->name, context->name); if (e_file_exists (buf)) e_epplet_script_load (context, buf); @@ -141,9 +219,11 @@ D_RETURN; } + void e_epplet_set_common_callbacks (E_Epplet * epp) { +/* D ("setting callbacks\n"); #ifdef USE_FERITE @@ -193,6 +273,7 @@ #endif D ("callbacks set\n"); +*/ } static void @@ -312,7 +393,7 @@ D_ENTER; #ifdef USE_FERITE - epp = _data; +/* epp = _data; if (epp->state.moving) { @@ -329,7 +410,7 @@ epp->current.x = x; epp->current.y = y; - ebits_move (epp->bits, epp->current.x, epp->current.y); + ebits_move (epp->ui, epp->current.x, epp->current.y); } if (epp->state.resizing.left || epp->state.resizing.right @@ -404,6 +485,7 @@ ebits_move (epp->bits, epp->current.x, epp->current.y); } +*/ #endif D_RETURN; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/epplet.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- epplet.h 2002/01/24 08:12:12 1.4 +++ epplet.h 2002/01/30 03:16:33 1.5 @@ -35,6 +35,8 @@ E_View *view; FeriteScript *script; + E_Epplet *epp; + struct { double x, y; double w, h; @@ -44,55 +46,71 @@ struct _E_Epplet { - E_Object o; + E_Object o; - E_Epplet_Context *context; - - char *name; - E_View *view; - Ebits_Object bits; - - FeriteVariable *fbits; - - struct { - double x, y; - double w, h; - } current, requested, offset; - - struct { - int changed; - int moving; - struct { - int up, down, left, right; - }resizing; - } state; + E_Epplet_Context *context; - void *data; + char *name; + E_View *view; + char *dir; + Ebits_Object layout; + Ebits_Object ui; + + + struct { + double x, y; + double w, h; + } current, requested, offset; + + struct { + int changed; + int moving; + struct { + int up, down, left, right; + }resizing; + } state; + Evas_List evas_objects; + Evas_List ebits; }; struct _Evas_Object_Wrapper { Evas evas; Evas_Object obj; + E_Epplet *epp; }; -void e_epplet_load_from_layout(E_View *v); +/* epplet loading / cleanup */ +E_Epplet *e_epplet_new(); +void e_epplet_load_from_layout(E_View *v); +void e_epplet_script_load(E_Epplet_Context *v, char *script_path); E_Epplet_Context *e_epplet_get_context_from_script(FeriteScript *script); -void e_epplet_script_load(E_Epplet_Context *v, char *script_path); + +/* probably won't use this... */ void e_epplet_set_common_callbacks(E_Epplet *epp); + + +/* callbacks */ E_Epplet_CB_Info *e_epplet_cb_new( FeriteScript *script, char *func_name, - FeriteObject *data, FeriteObject *data2 ); -void e_epplet_cb_cleanup( E_Epplet_CB_Info *cb); -void e_epplet_bits_cb (void *_data, Ebits_Object _o, char *_c, - int _b, int _x, int _y, int _ox, int _oy, int _ow, int _oh); -void e_epplet_evas_cb (void *_data, Evas _e, Evas_Object _o, - int _b, int _x, int _y); -void e_epplet_timer_func(int val, void *data); + FeriteObject *data, FeriteObject *data2 ); +void e_epplet_cb_cleanup( E_Epplet_CB_Info *cb); +void e_epplet_bits_cb (void *_data, Ebits_Object _o, char *_c, + int _b, int _x, int _y, int _ox, int _oy, + int _ow, int _oh); +void e_epplet_evas_cb (void *_data, Evas _e, Evas_Object _o, + int _b, int _x, int _y); +/* timers */ +void e_epplet_timer_func(int val, void *data); + +/* Observers */ E_Epplet_Observer *e_epplet_observer_new( FeriteScript *script, - char *func_name, FeriteObject *data, char *event_type); -void e_epplet_observer_register_desktops(E_Epplet_Observer *obs); -void e_epplet_desktop_observer_func(E_Observer *observer, E_Observee *observee, E_Event_Type event); + char *func_name, FeriteObject *data, + char *event_type); +void e_epplet_observer_register_desktops(E_Epplet_Observer *obs); +void e_epplet_desktop_observer_func(E_Observer *observer, + E_Observee *observee, + E_Event_Type event); /*void e_epplet_border_observer_func(E_Observer *observer, E_Observee *observee);*/ #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/menu.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- menu.c 2002/01/24 08:12:12 1.28 +++ menu.c 2002/01/30 03:16:33 1.29 @@ -564,12 +564,9 @@ e_menu_item_unselect (E_Menu_Item *mi) { D_ENTER; - D("mi unselect\n"); if ((mi) && (mi->menu->selected == mi)) { - D("mi && mi->menu->selected == mi\n"); mi->menu->selected = curr_selected_item = NULL; - D("after setting it NULL\n"); mi->selected = 0; mi->menu->redo_sel = 1; |
From: <enl...@li...> - 2002-02-07 07:48:57
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes added to the repository |
From: <enl...@li...> - 2002-02-07 07:49:15
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:57
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/audio Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/audio added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:58
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/document Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/document added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:58
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/application Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/application added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:58
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/text Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/text added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:58
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/dir Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/dir added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:57
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/archive Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/archive added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:58
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/custom Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/custom added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:58
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/image Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/image added to the repository |
From: <enl...@li...> - 2002-02-07 08:01:59
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/unknown Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk/unknown added to the repository |
From: <enl...@li...> - 2002-02-07 08:04:52
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/audio Added Files: default.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:53
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/custom Added Files: floppy.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:53
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/application Added Files: default.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:53
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/archive Added Files: default.db gnu-zip-unix.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:53
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/unknown Added Files: default.db unknown.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:54
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/image Added Files: default.db gif.db jpeg.db png.db tiff.db xpm.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:54
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/text Added Files: c.db cpp.db default.db header.db html.db plain.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:54
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/dir Added Files: default.db ext2.db isofs.db trash.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:04:54
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk/document Added Files: default.db pdf.db postscript.db unknown.db Log Message: New Icon theme! |
From: <enl...@li...> - 2002-02-07 08:08:01
|
Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/icons/BlueMilk Log Message: Directory /cvsroot/enlightenment/e17/apps/e/data/themes/icons/BlueMilk added to the repository |