From: Enlightenment C. <no...@cv...> - 2006-08-28 04:13:16
|
Enlightenment CVS committal Author : essiene Project : e17 Module : apps/entrance Dir : e17/apps/entrance/src/client Modified Files: entrance_session.c entrance_x_session.c entrance_x_session.h Log Message: Ahh... satzisfaczion, I just couldn't sleep with this bug on my conscience! -Fixed the session list edje/swallow bug, now it slides in and out poifectly... poifectly i says! -Update TODO, the icons on the list didn't make it this time around... we'll see about that tmrw. -For the record, I'll be on a SMART spree very soon in entrance... the current smart object used are showing their age and lack of TLC, and there are lots more that could be made a tad SMART'r. -Add hook to Entrance_Edit to prepare for using fangie's spanking new ecore_desktop code to build entrances's sessions list. You rock ThreeFang... uh... onefang ;) -Zzzzzz =================================================================== RCS file: /cvs/e/e17/apps/entrance/src/client/entrance_session.c,v retrieving revision 1.84 retrieving revision 1.85 diff -u -3 -r1.84 -r1.85 --- entrance_session.c 3 Jun 2006 07:24:49 -0000 1.84 +++ entrance_session.c 28 Aug 2006 04:12:44 -0000 1.85 @@ -16,6 +16,7 @@ @brief Variables and Data relating to an instance of the application as a whole */ + extern void session_item_selected_cb(void *data, Evas_Object * o, const char *emission, const char *source); @@ -591,7 +592,6 @@ Evas_Coord w, h; Evas_List *l = NULL; const char *key = NULL; - const char *file = NULL; Evas_Object *edje = NULL; Entrance_X_Session *exs = NULL; Evas_Object *container = NULL; @@ -617,22 +617,24 @@ CONTAINER_FILL_POLICY_KEEP_ASPECT); esmart_container_direction_set(container, 1); } - edje_object_file_get(e->edje, &file, NULL); + for (l = e->config->sessions.keys; l; l = l->next) { key = (const char *) l->data; if ((exs = evas_hash_find(e->config->sessions.hash, key))) { - if ((edje = entrance_x_session_edje_get(exs, e->edje, file))) - { - esmart_container_element_append(container, edje); - } + edje = entrance_x_session_button_new(exs, e->edje); + if(edje) + esmart_container_element_append(container, edje); } + } + edje_object_part_swallow(e->edje, "entrance.xsessions.list", container); e->session_container = container; } } + void entrance_session_list_direction_set(Entrance_Session * e, Evas_Object * container, =================================================================== RCS file: /cvs/e/e17/apps/entrance/src/client/entrance_x_session.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- entrance_x_session.c 13 May 2006 08:46:57 -0000 1.11 +++ entrance_x_session.c 28 Aug 2006 04:12:44 -0000 1.12 @@ -83,6 +83,47 @@ } Evas_Object * +entrance_x_session_button_new(Entrance_X_Session *exs, Evas_Object *edje) +{ + Evas_Coord w, h; + + Evas *evas = evas_object_evas_get(edje); + if(!evas) + return NULL; + + const char *themefile = NULL; + edje_object_file_get(edje, &themefile, NULL); + if(!themefile) + return NULL; + + Evas_Object *b = edje_object_add(evas); + if(!b) + return NULL; + + edje_object_file_set(b, themefile, "Session"); + evas_object_move(b, 0, 0); + + edje_object_size_min_get(b, &w, &h); + evas_object_resize(b, w, h); + + + if (edje_object_part_exists(b, "entrance.xsession.title")) + { + edje_object_part_text_set(b, "entrance.xsession.title", exs->name); + } + + edje_object_signal_callback_add(b, "entrance,xsession,selected", "", + session_item_selected_cb, exs); + edje_object_signal_callback_add(b, "SessionUnSelected", "", + session_item_selected_cb, exs); + + evas_object_show(b); + + return b; +} + + +Evas_Object * entrance_x_session_edje_get(Entrance_X_Session * e, Evas_Object * o, const char *themefile) { @@ -100,7 +141,7 @@ if (edje_object_file_set(edje, themefile, "Session") > 0) { evas_object_move(edje, -9999, -9999); - evas_object_layer_set(edje, 1); + evas_object_layer_set(edje, 1); edje_object_size_min_get(edje, &w, &h); if ((w > 0) && (h > 0)) evas_object_resize(result, w, h); @@ -125,6 +166,7 @@ edje_object_signal_callback_add(edje, "SessionUnSelected", "", session_item_selected_cb, (Entrance_X_Session *) e); + evas_object_show(result); } else =================================================================== RCS file: /cvs/e/e17/apps/entrance/src/client/entrance_x_session.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- entrance_x_session.h 10 Mar 2004 22:53:51 -0000 1.3 +++ entrance_x_session.h 28 Aug 2006 04:12:44 -0000 1.4 @@ -26,5 +26,6 @@ Evas_Object *entrance_x_session_edje_get(Entrance_X_Session * e, Evas_Object * o, const char *themefile); +Evas_Object *entrance_x_session_button_new(Entrance_X_Session *, Evas_Object *); #endif |