Enlightenment CVS committal Author : handyande Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_init.c e_init.h e_startup.c Log Message: Show application icons whilst we startup =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_init.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_init.c 7 Feb 2005 13:51:09 -0000 1.5 +++ e_init.c 7 Feb 2005 15:09:37 -0000 1.6 @@ -3,12 +3,19 @@ */ #include "e.h" +EAPI void _e_init_icons_del(void); + /* local subsystem globals */ static Ecore_X_Window _e_init_win = 0; static Ecore_Evas *_e_init_ecore_evas = NULL; static Evas *_e_init_evas = NULL; static Evas_Object *_e_init_object = NULL; +/* startup icons */ +static Evas_Coord _e_init_icon_x, _e_init_icon_y; +static int _e_init_icon_size, _e_init_icon_wrap; +static Evas_List *_e_init_icon_list; + /* externally accessible functions */ int e_init_init(void) @@ -43,6 +50,11 @@ ecore_evas_raise(_e_init_ecore_evas); ecore_evas_show(_e_init_ecore_evas); + _e_init_icon_size = 64; + _e_init_icon_wrap = w; + _e_init_icon_x = 0; + _e_init_icon_y = h - _e_init_icon_size; + n = ecore_x_xinerama_screen_count_get(); if (n == 0) { @@ -123,6 +135,8 @@ _e_init_evas = NULL; _e_init_win = 0; _e_init_object = NULL; + + _e_init_icons_del(); } void @@ -151,3 +165,42 @@ { return _e_init_win; } + +/* code for displaying startup icons */ + +void +e_init_icons_app_add(E_App *app) +{ + Evas_Object *o; + + E_OBJECT_CHECK(app); + E_OBJECT_TYPE_CHECK(app, E_APP_TYPE); + + o = edje_object_add(_e_init_evas); + edje_object_file_set(o,app->path, "icon"); + evas_object_resize(o, _e_init_icon_size, _e_init_icon_size); + evas_object_move(o, _e_init_icon_x, _e_init_icon_y); + evas_object_show(o); + _e_init_icon_list = evas_list_append(_e_init_icon_list, o); + + _e_init_icon_x += _e_init_icon_size; + if (_e_init_icon_x + _e_init_icon_size > _e_init_icon_wrap) + { + _e_init_icon_x = 0; + _e_init_icon_y -= _e_init_icon_size; + } +} + +void +_e_init_icons_del(void) +{ + Evas_Object *next; + + while(_e_init_icon_list) + { + next = _e_init_icon_list->data; + evas_object_del(next); + _e_init_icon_list = evas_list_remove(_e_init_icon_list, next); + } + +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_init.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_init.h 7 Feb 2005 13:51:09 -0000 1.4 +++ e_init.h 7 Feb 2005 15:09:37 -0000 1.5 @@ -15,5 +15,7 @@ EAPI void e_init_status_set(const char *str); EAPI Ecore_X_Window e_init_window_get(void); +EAPI void e_init_icons_app_add(E_App *app); + #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_startup.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_startup.c 7 Feb 2005 13:51:09 -0000 1.2 +++ e_startup.c 7 Feb 2005 15:09:37 -0000 1.3 @@ -63,6 +63,7 @@ e_app_exec(a); snprintf(buf, sizeof(buf), "Starting %s", a->name); e_init_status_set((const char *)buf); + e_init_icons_app_add(a); if (a->wait_exit) { timeout_timer = ecore_timer_add(10.0, _e_startup_timeout_cb, NULL); ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs