diff --git a/src/modules/start/e_mod_main.c b/src/modules/start/e_mod_main.c index a35e5e033..367ad32ce 100644 --- a/src/modules/start/e_mod_main.c +++ b/src/modules/start/e_mod_main.c @@ -80,12 +80,68 @@ _gc_shutdown(E_Gadcon_Client *gcc) } static void -_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient __UNUSED__) +_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient) { Instance *inst; Evas_Coord mw, mh; - + char buf[4096]; + const char *s = "float"; + inst = gcc->data; + switch (orient) + { + case E_GADCON_ORIENT_FLOAT: + s = "float"; + break; + case E_GADCON_ORIENT_HORIZ: + s = "horizontal"; + break; + case E_GADCON_ORIENT_VERT: + s = "vertical"; + break; + case E_GADCON_ORIENT_LEFT: + s = "left"; + break; + case E_GADCON_ORIENT_RIGHT: + s = "right"; + break; + case E_GADCON_ORIENT_TOP: + s = "top"; + break; + case E_GADCON_ORIENT_BOTTOM: + s = "bottom"; + break; + case E_GADCON_ORIENT_CORNER_TL: + s = "top_left"; + break; + case E_GADCON_ORIENT_CORNER_TR: + s = "top_right"; + break; + case E_GADCON_ORIENT_CORNER_BL: + s = "bottom_left"; + break; + case E_GADCON_ORIENT_CORNER_BR: + s = "bottom_right"; + break; + case E_GADCON_ORIENT_CORNER_LT: + s = "left_top"; + break; + case E_GADCON_ORIENT_CORNER_RT: + s = "right_top"; + break; + case E_GADCON_ORIENT_CORNER_LB: + s = "left_bottom"; + break; + case E_GADCON_ORIENT_CORNER_RB: + s = "right_bottom"; + break; + default: + break; + } + snprintf(buf, sizeof(buf), "e,state,orientation,%s", s); + edje_object_signal_emit(inst->o_button, buf, "e"); + edje_object_message_signal_process(inst->o_button); + mw = 0, mh = 0; edje_object_size_min_get(inst->o_button, &mw, &mh); if ((mw < 1) || (mh < 1))