EAPI void e_scale_update(void) { int dpi; char buf[128]; if (e_config->scale.use_dpi) { dpi = ecore_x_dpi_get(); e_scale = (double)dpi / (double)e_config->scale.base_dpi; if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; } else if (e_config->scale.use_custom) { e_scale = e_config->scale.factor; if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; } edje_scale_set(e_scale); snprintf(buf, sizeof(buf), "%1.3f", e_scale); e_util_env_set("E_SCALE", buf); e_hints_scale_update(); }
E_API void e_scale_update(void) { char buf[128]; if (e_config->scale.use_dpi) { #ifndef HAVE_WAYLAND_ONLY if (e_comp->comp_type == E_PIXMAP_TYPE_X) e_scale = (double)ecore_x_dpi_get() / (double)e_config->scale.base_dpi; #endif #ifdef HAVE_WAYLAND /* FIXME: This needs to get the DPI from a given output */ if (e_comp->comp_type == E_PIXMAP_TYPE_WL) { e_scale = (double)ecore_wl2_output_dpi_get(NULL) / (double)e_config->scale.base_dpi; } #endif if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; } else if (e_config->scale.use_custom) { e_scale = e_config->scale.factor; if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; } elm_config_scale_set(e_scale); elm_config_all_flush(); edje_scale_set(e_scale); snprintf(buf, sizeof(buf), "%1.3f", e_scale); e_util_env_set("E_SCALE", buf); e_hints_scale_update(); }
int main(int argc, char *argv[]) { Ecore_Evas *ee; Evas *evas; Evas_Object *textblock; Evas_Object *background; Ertf_Document *doc; Ertf_Page *epage; int w, h, dpi; int pageno; if (argc < 3) { printf ("Usage: %s file.rtf <page_number>\n", argv[0]); return EXIT_FAILURE; } if (!ecore_evas_init()) return EXIT_FAILURE; if (!ertf_init()) goto shutdown_ecore_evas; ee = ecore_evas_new("software_x11", 0, 0, 1024, 768, NULL); if (!ee) goto shutdown_ertf; ecore_evas_title_set(ee, "Ertf Evas test"); ecore_evas_callback_delete_request_set(ee, _ertf_cb_delete); evas = ecore_evas_get(ee); doc = ertf_document_new(argv[1]); if (!doc) goto shutdown_ertf; epage = ertf_page_new(doc); if (!epage) goto free_doc; #ifdef USE_DPI dpi = ecore_x_dpi_get(); ertf_twip_scale_factor_set(dpi); printf("Using dpi.\n"); #endif ertf_document_size_get(doc, &w, &h); ecore_evas_resize(ee, w, h); ecore_evas_show(ee); if (!ertf_document_parse(doc)) goto free_page; printf ("Filename : %s\n", ertf_document_filename_get(doc)); printf ("Version : %d\n", ertf_document_version_get(doc)); /* background */ background = evas_object_rectangle_add(evas); evas_object_color_set(background, 255, 255, 255, 255); evas_object_move(background, 0, 0); evas_object_resize(background, w, h); evas_object_name_set(background, "background"); evas_object_show(background); /* create an textblock object */ textblock = evas_object_textblock_add(evas); sscanf(argv[2], "%d", &pageno); ertf_page_page_set(epage, pageno); ertf_page_render(epage, textblock); evas_object_move(textblock, 0, 0); evas_object_resize(textblock, w, h); evas_object_show(textblock); ecore_main_loop_begin (); evas_object_del(textblock); ertf_page_free(epage); ertf_document_free(doc); ertf_shutdown(); ecore_evas_shutdown(); return EXIT_SUCCESS; free_page: ertf_page_free(epage); free_doc: ertf_document_free(doc); shutdown_ertf: ertf_shutdown(); shutdown_ecore_evas: ecore_evas_shutdown(); return EXIT_FAILURE; }