void _tclock_config_updated(Config_Item *ci) { Eina_List *l; if (!tclock_config) return; for (l = tclock_config->instances; l; l = l->next) { Instance *inst; inst = l->data; if (inst->ci != ci) continue; if (!inst->ci->show_time) edje_object_signal_emit(inst->tclock, "time_hidden", ""); else edje_object_signal_emit(inst->tclock, "time_visible", ""); edje_object_message_signal_process(inst->tclock); if (!inst->ci->show_date) edje_object_signal_emit(inst->tclock, "date_hidden", ""); else edje_object_signal_emit(inst->tclock, "date_visible", ""); edje_object_message_signal_process(inst->tclock); _tclock_cb_check(inst); } }
static Eina_Bool _tclock_cb_check(void *data) { Instance *inst; Eina_List *l; time_t current_time; struct tm *local_time; char buf[1024]; int offset_int; for (l = tclock_config->instances; l; l = l->next) { inst = l->data; if (!inst->ci->show_time) edje_object_signal_emit(inst->tclock, "time_hidden", ""); else edje_object_signal_emit(inst->tclock, "time_visible", ""); edje_object_message_signal_process(inst->tclock); if (!inst->ci->show_date) edje_object_signal_emit(inst->tclock, "date_hidden", ""); else edje_object_signal_emit(inst->tclock, "date_visible", ""); edje_object_message_signal_process(inst->tclock); memset(buf, 0, sizeof(buf)); offset_int=atoi(inst->ci->time_offset); current_time = time(NULL)+offset_int*3600; local_time = localtime(¤t_time); if (inst->ci->time_format) { strftime(buf, 1024, inst->ci->time_format, local_time); edje_object_part_text_set(inst->tclock, "tclock_time", buf); } if (inst->ci->date_format) { strftime(buf, 1024, inst->ci->date_format, local_time); edje_object_part_text_set(inst->tclock, "tclock_date", buf); } if ((inst->ci->tip_format) && (inst->o_tip)) { strftime(buf, 1024, inst->ci->tip_format, local_time); e_widget_label_text_set(inst->o_tip, buf); } } return EINA_TRUE; }
static void _theme_hook(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; _elm_widget_mirrored_reload(obj); _mirrored_set(obj, elm_widget_mirrored_get(obj)); _elm_theme_object_set(obj, wd->bbl, "bubble", wd->corner, elm_widget_style_get(obj)); edje_object_part_text_set(wd->bbl, "elm.text", wd->label); if (wd->label) edje_object_signal_emit(wd->bbl, "elm,state,text,visible", "elm"); else edje_object_signal_emit(wd->bbl, "elm,state,text,hidden", "elm"); edje_object_part_text_set(wd->bbl, "elm.info", wd->info); if (wd->info) edje_object_signal_emit(wd->bbl, "elm,state,info,visible", "elm"); else edje_object_signal_emit(wd->bbl, "elm,state,info,hidden", "elm"); if (wd->content) { edje_object_part_swallow(wd->bbl, "elm.swallow.content", wd->content); edje_object_message_signal_process(wd->bbl); } if (wd->icon) edje_object_signal_emit(wd->bbl, "elm,state,icon,visible", "elm"); else edje_object_signal_emit(wd->bbl, "elm,state,icon,hidden", "elm"); edje_object_scale_set(wd->bbl, elm_widget_scale_get(obj) * _elm_config->scale); _sizing_eval(obj); }
static void _clock_month_update(Instance *inst) { Evas_Object *od, *oi; int x, y; oi = inst->o_cal; edje_object_part_text_set(oi, "e.text.month", inst->month); edje_object_part_text_set(oi, "e.text.year", inst->year); for (x = 0; x < 7; x++) { od = edje_object_part_table_child_get(oi, "e.table.daynames", x, 0); edje_object_part_text_set(od, "e.text.label", inst->daynames[x]); edje_object_message_signal_process(od); if (inst->dayweekends[x][0]) edje_object_signal_emit(od, "e,state,weekend", "e"); else edje_object_signal_emit(od, "e,state,weekday", "e"); } for (y = 0; y < 6; y++) { for (x = 0; x < 7; x++) { char buf[32]; od = edje_object_part_table_child_get(oi, "e.table.days", x, y); snprintf(buf, sizeof(buf), "%i", (int)inst->daynums[x][y]); edje_object_part_text_set(od, "e.text.label", buf); if (inst->dayweekends[x][y]) edje_object_signal_emit(od, "e,state,weekend", "e"); else edje_object_signal_emit(od, "e,state,weekday", "e"); if (inst->dayvalids[x][y]) edje_object_signal_emit(od, "e,state,visible", "e"); else edje_object_signal_emit(od, "e,state,hidden", "e"); if (inst->daytoday[x][y]) edje_object_signal_emit(od, "e,state,today", "e"); else edje_object_signal_emit(od, "e,state,someday", "e"); edje_object_message_signal_process(od); } } edje_object_message_signal_process(oi); }
/* FIXME: replicated from elm_layout just because button's icon spot * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we * can changed the theme API */ static void _icon_signal_emit(Evas_Object *obj) { char buf[64]; snprintf(buf, sizeof(buf), "elm,state,icon,%s", elm_layout_content_get(obj, "icon") ? "visible" : "hidden"); elm_layout_signal_emit(obj, buf, "elm"); edje_object_message_signal_process(elm_layout_edje_get(obj)); _elm_button_smart_sizing_eval(obj); }
static void _elm_ews_border_maximized_apply(Ecore_Evas *ee, Evas_Object *o) { int x, y, w, h; if (ecore_evas_maximized_get(ee)) { Eina_Rectangle *r; int ex, ey, ew, eh; edje_object_signal_emit(o, "elm,state,maximized,on", "elm"); edje_object_message_signal_process(o); ecore_evas_geometry_get(ee, &x, &y, &w, &h); r = _elm_ews_wm_border_geo_find(ee); if (!r) { r = malloc(sizeof(Eina_Rectangle)); eina_hash_add(_ews_borders_geo, &ee, r); } r->x = x; r->y = y; r->w = w; r->h = h; _elm_ews_border_usable_screen_geometry_get(&x, &y, &w, &h); edje_object_parts_extends_calc(o, &ex, &ey, &ew, &eh); x -= ex; y -= ey; w -= ew - r->w; h -= eh - r->h; } else { Eina_Rectangle *r = _elm_ews_wm_border_geo_find(ee); edje_object_signal_emit(o, "elm,state,maximized,off", "elm"); if (!r) ecore_evas_geometry_get(ee, &x, &y, &w, &h); else { x = r->x; y = r->y; w = r->w; h = r->h; } } ecore_evas_move_resize(ee, x, y, w, h); _elm_ews_border_geo_apply(ee, o); }
static void _icon_set(Evas_Object *obj, Evas_Object* icon) { Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; if (wd->icon == icon) return; if (wd->icon) evas_object_del(wd->icon); wd->icon = icon; if (icon) { elm_widget_sub_object_add(obj, icon); edje_object_part_swallow(wd->bbl, "elm.swallow.icon", icon); evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj); edje_object_signal_emit(wd->bbl, "elm,state,icon,visible", "elm"); edje_object_message_signal_process(wd->bbl); } _sizing_eval(obj); }
static void _update_view(Evas_Object *obj) { const char *label; Elm_Object_Item *eo_item; ELM_FLIPSELECTOR_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); label = NULL; eo_item = DATA_GET(sd->current); ELM_FLIPSELECTOR_ITEM_DATA_GET(eo_item, item); if (item) label = item->label; elm_layout_text_set(obj, "elm.top", label ? label : ""); elm_layout_text_set(obj, "elm.bottom", label ? label : ""); edje_object_message_signal_process(wd->resize_obj); }
void MainContentView::hideFinished(void *data, Evas_Object *edje_object, string emission, string source) { ViewAnimation *va = reinterpret_cast<ViewAnimation *>(data); if (!va) return; if (va->pop_me) { DelMemberObject(va->animation->getEvasObject()); if (member_count <= 0) evas_object_hide(clip); delete va->animation; //Don't delete view if it has been pushed again to MainContentView list<ViewAnimation *>::iterator it = views.begin(); bool found = false; for (;it != views.end();it++) { ViewAnimation *_va = *it; if (_va->view == va->view) { found = true; break; } } if (!found && va->view) delete va->view; delete va; } else { va->animation->Hide(); va->view->Hide(); va->animation->EmitSignal("elm,action,reset", "elm"); edje_object_message_signal_process(va->animation->getEvasObject()); } }
/* Checkbox: render() */ static Etk_Bool _checkbox_render(Etk_Tree_Model *model, Etk_Tree_Row *row, Etk_Geometry geometry, void *cell_data, Evas_Object *cell_objects[ETK_TREE_MAX_OBJECTS_PER_MODEL], Evas *evas) { Etk_Bool *checked; int w, h; if (!(checked = cell_data) || !cell_objects[0]) return ETK_FALSE; if (*checked) edje_object_signal_emit(cell_objects[0], "etk,state,on", "etk"); else edje_object_signal_emit(cell_objects[0], "etk,state,off", "etk"); edje_object_message_signal_process(cell_objects[0]); evas_object_data_set(cell_objects[0], "_Etk_Tree_Model_Checkbox::Row", row); edje_object_size_min_get(cell_objects[0], &w, &h); evas_object_move(cell_objects[0], geometry.x, geometry.y + ((geometry.h - h) / 2)); evas_object_resize(cell_objects[0], w, h); evas_object_show(cell_objects[0]); return ETK_FALSE; }
int e_syscon_show(E_Zone *zone, const char *defact) { Evas_Object *o, *o2; Evas_Coord mw, mh; int x, y, w, h, zx, zy, zw, zh; int iw, ih; Eina_List *l; double t; t = ecore_loop_time_get(); if (popup) { if ((t - show_time) > 0.5) { for (l = e_config->syscon.actions; l; l = l->next) { E_Config_Syscon_Action *sca; E_Action *a; if (!(sca = l->data)) continue; if (!sca->action) continue; a = e_action_find(sca->action); if (!a) continue; if (sca->is_main == 2) { a->func.go(NULL, sca->params); e_syscon_hide(); break; } } } return 0; } input_window = ecore_x_window_input_new(zone->container->win, zone->x, zone->y, zone->w, zone->h); ecore_x_window_show(input_window); if (!e_grabinput_get(input_window, 1, input_window)) { ecore_x_window_free(input_window); input_window = 0; return 0; } popup = e_popup_new(zone, 0, 0, 1, 1); if (!popup) { e_grabinput_release(input_window, input_window); ecore_x_window_free(input_window); input_window = 0; return 0; } evas_event_freeze(popup->evas); e_popup_layer_set(popup, E_LAYER_POPUP); handlers = eina_list_append (handlers, ecore_event_handler_add (ECORE_EVENT_KEY_DOWN, _cb_key_down, NULL)); handlers = eina_list_append (handlers, ecore_event_handler_add (ECORE_EVENT_MOUSE_BUTTON_DOWN, _cb_mouse_down, NULL)); handlers = eina_list_append (handlers, ecore_event_handler_add (ECORE_EVENT_MOUSE_BUTTON_UP, _cb_mouse_up, NULL)); handlers = eina_list_append (handlers, ecore_event_handler_add (ECORE_EVENT_MOUSE_MOVE, _cb_mouse_move, NULL)); handlers = eina_list_append (handlers, ecore_event_handler_add (ECORE_EVENT_MOUSE_WHEEL, _cb_mouse_wheel, NULL)); o = edje_object_add(popup->evas); o_bg = o; e_theme_edje_object_set(o, "base/theme/syscon", "e/widgets/syscon/main"); edje_object_part_text_set(o, "e.text.label", _("Cancel")); edje_object_signal_callback_add(o, "e,action,close", "", _cb_signal_close, NULL); edje_object_signal_callback_add(o, "e,action,syscon", "*", _cb_signal_syscon, NULL); act_count = 0; show_time = t; // main (default): // halt | suspend | desk_lock // secondary (default): // reboot | hibernate | logout // extra (example for illume): // home | close | kill o = e_flowlayout_add(popup->evas); o_flow_main = o; e_flowlayout_orientation_set(o, 1); e_flowlayout_flowdirection_set(o, 1, 1); e_flowlayout_homogenous_set(o, 1); o = e_flowlayout_add(popup->evas); o_flow_secondary = o; e_flowlayout_orientation_set(o, 1); e_flowlayout_flowdirection_set(o, 1, 1); e_flowlayout_homogenous_set(o, 1); o = e_flowlayout_add(popup->evas); o_flow_extra = o; e_flowlayout_orientation_set(o, 1); e_flowlayout_flowdirection_set(o, 1, 1); e_flowlayout_homogenous_set(o, 1); for (l = e_config->syscon.actions; l; l = l->next) { E_Config_Syscon_Action *sca; char buf[1024]; E_Action *a; int disabled; if (!(sca = l->data)) continue; if (!sca->action) continue; a = e_action_find(sca->action); if (!a) continue; disabled = 0; if ((!strcmp(sca->action, "logout")) && (!e_sys_action_possible_get(E_SYS_LOGOUT))) disabled = 1; else if ((!strcmp(sca->action, "halt")) && (!e_sys_action_possible_get(E_SYS_HALT))) disabled = 1; else if ((!strcmp(sca->action, "halt_now")) && (!e_sys_action_possible_get(E_SYS_HALT_NOW))) disabled = 1; else if ((!strcmp(sca->action, "reboot")) && (!e_sys_action_possible_get(E_SYS_REBOOT))) disabled = 1; else if ((!strcmp(sca->action, "suspend")) && (!e_sys_action_possible_get(E_SYS_SUSPEND))) disabled = 1; else if ((!strcmp(sca->action, "hibernate")) && (!e_sys_action_possible_get(E_SYS_HIBERNATE))) disabled = 1; o = edje_object_add(popup->evas); edje_object_signal_callback_add(o, "e,action,click", "", _cb_signal_action, sca); if (sca->button) { snprintf(buf, sizeof(buf), "e/widgets/syscon/item/%s", sca->button); e_theme_edje_object_set(o, "base/theme/widgets", buf); } else e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/syscon/item/button"); edje_object_part_text_set(o, "e.text.label", _(e_action_predef_label_get(sca->action, sca->params))); if (sca->icon) { o2 = e_icon_add(popup->evas); e_util_icon_theme_set(o2, sca->icon); edje_object_part_swallow(o, "e.swallow.icon", o2); evas_object_show(o2); if (disabled) edje_object_signal_emit(o2, "e,state,disabled", "e"); } if (disabled) edje_object_signal_emit(o, "e,state,disabled", "e"); if (sca->is_main) { e_flowlayout_pack_end(o_flow_main, o); iw = ih = e_config->syscon.main.icon_size * e_scale; } else { e_flowlayout_pack_end(o_flow_secondary, o); iw = ih = e_config->syscon.secondary.icon_size * e_scale; } edje_object_message_signal_process(o); edje_object_size_min_calc(o, &mw, &mh); if (mw > iw) iw = mw; if (mh > ih) ih = mh; e_flowlayout_pack_options_set(o, 1, 1, 0, 0, 0.5, 0.5, iw, ih, iw, ih); evas_object_show(o); } for (l = (Eina_List *)e_sys_con_extra_action_list_get(); l; l = l->next) { E_Sys_Con_Action *sca; char buf[1024]; sca = l->data; o = edje_object_add(popup->evas); edje_object_signal_callback_add(o, "e,action,click", "", _cb_signal_action_extra, sca); if (sca->button_name) { snprintf(buf, sizeof(buf), "e/widgets/syscon/item/%s", sca->button_name); e_theme_edje_object_set(o, "base/theme/widgets", buf); } else e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/syscon/item/button"); edje_object_part_text_set(o, "e.text.label", sca->label); if (sca->icon_group) { o2 = edje_object_add(popup->evas); e_util_edje_icon_set(o2, sca->icon_group); edje_object_part_swallow(o, "e.swallow.icon", o2); evas_object_show(o2); if (sca->disabled) edje_object_signal_emit(o2, "e,state,disabled", "e"); } if (sca->disabled) edje_object_signal_emit(o, "e,state,disabled", "e"); e_flowlayout_pack_end(o_flow_extra, o); iw = ih = e_config->syscon.extra.icon_size * e_scale; e_flowlayout_pack_options_set(o, 1, 1, 0, 0, 0.5, 0.5, iw, ih, iw, ih); evas_object_show(o); } e_flowlayout_fill_set(o_flow_main, 1); edje_object_part_swallow(o_bg, "e.swallow.main", o_flow_main); e_flowlayout_fill_set(o_flow_secondary, 1); edje_object_part_swallow(o_bg, "e.swallow.secondary", o_flow_secondary); e_flowlayout_fill_set(o_flow_extra, 1); edje_object_part_swallow(o_bg, "e.swallow.extra", o_flow_extra); e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh); evas_object_resize(o_bg, zw, zh); edje_object_calc_force(o_bg); e_flowlayout_size_min_get(o_flow_main, &mw, &mh); edje_extern_object_min_size_set(o_flow_main, mw, mh); edje_object_part_swallow(o_bg, "e.swallow.main", o_flow_main); e_flowlayout_size_min_get(o_flow_secondary, &mw, &mh); edje_extern_object_min_size_set(o_flow_secondary, mw, mh); edje_object_part_swallow(o_bg, "e.swallow.secondary", o_flow_secondary); e_flowlayout_size_min_get(o_flow_extra, &mw, &mh); edje_extern_object_min_size_set(o_flow_extra, mw, mh); edje_object_part_swallow(o_bg, "e.swallow.extra", o_flow_extra); edje_object_size_min_calc(o_bg, &mw, &mh); w = mw; if (w > zw) w = zw; x = zx - zone->x + (zw - w) / 2; h = mh; if (h > zh) h = zh; y = zy - zone->y + (zh - h) / 2; e_popup_move_resize(popup, x, y, w, h); evas_object_move(o_bg, 0, 0); evas_object_resize(o_bg, w, h); evas_object_show(o_bg); e_popup_edje_bg_object_set(popup, o_bg); if (e_config->syscon.do_input) { deftimer = ecore_timer_add(e_config->syscon.timeout, _cb_timeout_defaction, NULL); if (defact) do_defact = eina_stringshare_add(defact); } evas_event_thaw(popup->evas); inevas = 0; e_popup_show(popup); return 1; }
/** * Creates a check box widget with icon * * @param evas pointer * @param label the text to asign to check widget * @param icon the path to the icon file * @param icon_w the minimum wdith of the icon * @param icon_h the minumum height of the icon * @param val pointer to int where changes are stored * @return the newly created evas object */ EAPI Evas_Object * e_widget_check_icon_add(Evas *evas, const char *label, const char *icon, int icon_w, int icon_h, int *val) { Evas_Object *obj, *o, *o2; E_Widget_Data *wd; Evas_Coord mw, mh; obj = e_widget_add(evas); e_widget_del_hook_set(obj, _e_wid_del_hook); e_widget_focus_hook_set(obj, _e_wid_focus_hook); e_widget_activate_hook_set(obj, _e_wid_activate_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); wd->valptr = val; e_widget_data_set(obj, wd); o = edje_object_add(evas); wd->o_check = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/check_icon"); edje_object_signal_callback_add(o, "e,action,toggle", "*", _e_wid_signal_cb1, obj); edje_object_part_text_set(o, "e.text.label", label); evas_object_show(o); if (label) { edje_object_signal_emit(o, "e,state,labeled", "e"); edje_object_message_signal_process(o); } if (icon) { if (icon[0] == '/') { o2 = e_icon_add(evas); e_icon_file_set(o2, icon); } else { o2 = edje_object_add(evas); e_util_edje_icon_set(o2, icon); } evas_object_size_hint_min_set(o2, icon_w, icon_h); edje_object_part_swallow(wd->o_check, "e.swallow.icon", o2); evas_object_show(o2); e_widget_sub_object_add(obj, o2); wd->o_icon = o2; } edje_object_size_min_calc(o, &mw, &mh); e_widget_size_min_set(obj, mw, mh); if (wd->valptr) { if (*(wd->valptr)) edje_object_signal_emit(o, "e,state,checked", "e"); } e_widget_sub_object_add(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); e_widget_resize_object_set(obj, o); return obj; }
static Eina_Bool _elm_fileselector_smart_theme(Evas_Object *obj) { const char *style; const char *data; char buf[1024]; ELM_FILESELECTOR_DATA_GET(obj, sd); if (!ELM_WIDGET_CLASS(_elm_fileselector_parent_sc)->theme(obj)) return EINA_FALSE; style = elm_widget_style_get(obj); _mirrored_set(obj, elm_widget_mirrored_get(obj)); data = edje_object_data_get (ELM_WIDGET_DATA(sd)->resize_obj, "path_separator"); if (data) sd->path_separator = data; else sd->path_separator = "/"; snprintf(buf, sizeof(buf), "fileselector/%s", style); #define SWALLOW(part_name, object_ptn) \ if (object_ptn) \ { \ elm_widget_style_set(object_ptn, buf); \ if (!elm_layout_content_set(obj, part_name, object_ptn)) \ evas_object_hide(object_ptn); \ } SWALLOW("elm.swallow.up", sd->up_button); SWALLOW("elm.swallow.home", sd->home_button); SWALLOW("elm.swallow.spinner", sd->spinner); elm_object_style_set(sd->spinner, "wheel"); if (sd->mode == ELM_FILESELECTOR_LIST) { if (elm_layout_content_set(obj, "elm.swallow.files", sd->files_list)) evas_object_hide(sd->files_grid); else evas_object_hide(sd->files_list); } else { if (elm_layout_content_set(obj, "elm.swallow.files", sd->files_grid)) evas_object_hide(sd->files_list); else evas_object_hide(sd->files_grid); } SWALLOW("elm.swallow.filename", sd->filename_entry); SWALLOW("elm.swallow.path", sd->path_entry); snprintf(buf, sizeof(buf), "fileselector/actions/%s", style); SWALLOW("elm.swallow.cancel", sd->cancel_button); SWALLOW("elm.swallow.ok", sd->ok_button); #undef SWALLOW edje_object_message_signal_process(ELM_WIDGET_DATA(sd)->resize_obj); elm_layout_sizing_eval(obj); return EINA_TRUE; }