static void _elm_ews_border_config_apply(Ecore_Evas *ee, Evas_Object *o, Elm_Theme *th) { const char *title, *name = NULL, *class = NULL, *style = NULL; const char *sig; if (ecore_evas_borderless_get(ee)) style = "borderless"; _elm_theme_set(th, o, "ews", "decoration", style ? style : "default"); if (ecore_evas_shaped_get(ee) || ecore_evas_alpha_get(ee) || ecore_evas_transparent_get(ee)) sig = "elm,state,alpha,on"; else sig = "elm,state,alpha,off"; edje_object_signal_emit(o, sig, "elm"); title = ecore_evas_title_get(ee); ecore_evas_name_class_get(ee, &name, &class); edje_object_part_text_escaped_set(o, "elm.text.title", title); edje_object_part_text_escaped_set(o, "elm.text.name", name); edje_object_part_text_escaped_set(o, "elm.text.class", class); _elm_ews_border_geo_apply(ee, o); _elm_ews_border_focus_apply(ee, o); _elm_ews_border_stack_apply(ee, o); _elm_ews_border_iconified_apply(ee, o); _elm_ews_border_maximized_apply(ee, o); _elm_ews_border_layer_apply(ee, o); _elm_ews_border_fullscreen_apply(ee, o); }
/** * @internal * * This function takes actual shot and saves it in PNG * @param data Tsuite_Data pointer initiated by user * @param obj Window pointer * @param obj name file name. Will use name_+serial if NULL * * @ingroup Tsuite */ void tsuite_shot_do(char *name, Evas *e) { if (!e) return; Ecore_Evas *ee, *ee_orig; Evas_Object *o; unsigned int *pixels; int w, h,dir_name_len = 0; char *filename; if (_hook_setting->dest_dir) dir_name_len = strlen(_hook_setting->dest_dir) + 1; /* includes space of a '/' */ if (name) { filename = malloc(strlen(name) + strlen(IMAGE_FILENAME_EXT) + dir_name_len + 4); if (_hook_setting->dest_dir) sprintf(filename, "%s/", _hook_setting->dest_dir); sprintf(filename + dir_name_len, "%s%s", name, IMAGE_FILENAME_EXT); } else { filename = malloc(strlen(_hook_setting->test_name) + strlen(IMAGE_FILENAME_EXT) + dir_name_len + 8); /* also space for serial */ ts.serial++; if (_hook_setting->dest_dir) sprintf(filename, "%s/", _hook_setting->dest_dir); sprintf(filename + dir_name_len, "%s_%d%s", _hook_setting->test_name, ts.serial, IMAGE_FILENAME_EXT); } ee_orig = ecore_evas_ecore_evas_get(e); ecore_evas_manual_render(ee_orig); pixels = (void *)ecore_evas_buffer_pixels_get(ee_orig); if (!pixels) return; ecore_evas_geometry_get(ee_orig, NULL, NULL, &w, &h); if ((w < 1) || (h < 1)) return; ee = ecore_evas_buffer_new(1, 1); o = evas_object_image_add(ecore_evas_get(ee)); evas_object_image_alpha_set(o, ecore_evas_alpha_get(ee_orig)); evas_object_image_size_set(o, w, h); evas_object_image_data_set(o, pixels); if (!evas_object_image_save(o, filename, NULL, NULL)) { printf("Cannot save widget to <%s>\n", filename); } ecore_evas_free(ee); free(filename); }
bool EcoreEvasWindow::hasAlpha () const { return ecore_evas_alpha_get( _ee ); }