int main(int argc, char **argv) { init_efl(); char *theme = find_theme(); if (!theme) fatal("Could not find theme"); Ecore_Evas *ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 400, 400); if (!ee) { fprintf(stderr, "FATAL: Could not get an ee...\n"); exit(1); } Ecore_X_Screen_Size sz = get_screen_size(ee); ecore_evas_resize(ee, sz.width, sz.height); ecore_evas_title_set(ee, "Launcher"); ecore_evas_borderless_set(ee, 1); ecore_evas_fullscreen_set(ee, 1); Evas *evas = ecore_evas_get(ee); Evas_Object *edje = edje_object_add(evas); edje_object_file_set(edje, theme, "main"); evas_object_move(edje, 0, 0); evas_object_resize(edje, sz.width, sz.height); evas_object_show(edje); ecore_evas_show(ee); ecore_main_loop_begin(); shutdown_efl(); return 0; }
EAPI void e_popup_resize(E_Popup *pop, int w, int h) { E_OBJECT_CHECK(pop); E_OBJECT_TYPE_CHECK(pop, E_POPUP_TYPE); if ((pop->w == w) && (pop->h == h)) return; pop->w = w; pop->h = h; ecore_evas_resize(pop->ecore_evas, pop->w, pop->h); e_container_shape_resize(pop->shape, pop->w, pop->h); }
//Calculate the size of the menu, resize it and display the arrows if needed static void _eclair_menu_recalc(Eclair_Menu *menu) { Eina_List *l; Eclair_Menu_Item *item; int w = 0, h = 0, item_w; int display_arrows = 0, display_icons = 0; if (!menu) return; //First we show/hide the arrows/icons for (l = menu->items; l; l = l->next) { if (!(item = l->data)) continue; display_arrows |= (item->child != NULL); display_icons |= (item->type != ECLAIR_MENU_ITEM_NORMAL_ITEM && item->type != ECLAIR_MENU_ITEM_SEPARATOR_ITEM); } for (l = menu->items; l; l = l->next) { if (!(item = l->data)) continue; if (!display_arrows) edje_object_signal_emit(item->edje_object, "signal_arrow_invisible", "eclair_bin"); else if (item->child) edje_object_signal_emit(item->edje_object, "signal_arrow_visible", "eclair_bin"); else edje_object_signal_emit(item->edje_object, "signal_arrow_spacer", "eclair_bin"); if (display_icons) edje_object_signal_emit(item->edje_object, "signal_icon_visible", "eclair_bin"); else edje_object_signal_emit(item->edje_object, "signal_icon_invisible", "eclair_bin"); } //Then we resize the menu for (l = menu->items; l; l = l->next) { if (!(item = l->data)) continue; edje_object_size_min_calc(item->edje_object, &item_w, &item->height); if (w < item_w) w = item_w; h += item->height; } ecore_evas_resize(menu->window, w, h); }
static void resizeEcoreEvasIfNeeded(Evas_Object* image) { int newWidth, newHeight; evas_object_image_size_get(image, &newWidth, &newHeight); int currentWidth, currentHeight; ecore_evas_screen_geometry_get(gEcoreEvas.get(), 0, 0, ¤tWidth, ¤tHeight); if (newWidth > currentWidth) currentWidth = newWidth; if (newHeight > currentHeight) currentHeight = newHeight; ecore_evas_resize(gEcoreEvas.get(), currentWidth, currentHeight); }
bool ui_init_edje(ePlayer *player, const char *name) { double edje_w = 0, edje_h = 0; debug(DEBUG_LEVEL_INFO, "EDJE: Defining Edje \n"); if (!(player->gui.edje = edje_object_add(player->gui.evas))) { debug(DEBUG_LEVEL_CRITICAL, "Cannot create Edje!\n"); return false; } evas_object_name_set(player->gui.edje, "main_edje"); if (!edje_object_file_set(player->gui.edje, find_theme(player->cfg.theme), name)) { debug(DEBUG_LEVEL_CRITICAL, "Cannot load theme '%s'!\n", player->cfg.theme); return false; } evas_object_move(player->gui.edje, 0, 0); evas_object_pass_events_set (player->gui.edje, 1); evas_object_show(player->gui.edje); /* set max size */ edje_object_size_max_get(player->gui.edje, &edje_w, &edje_h); ecore_evas_size_max_set(player->gui.ee, edje_w, edje_h); /* set min size */ edje_object_size_min_get(player->gui.edje, &edje_w, &edje_h); ecore_evas_size_min_set(player->gui.ee, edje_w, edje_h); /* resize to the min size */ ecore_evas_resize(player->gui.ee, (int) edje_w, (int) edje_h); setup_playlist(player); ui_refresh_volume(player); register_callbacks(player); return true; }
void retina_cb_win_resize() { /* center the image on window resize */ int w, h, x = 0, y = 0; int im_w, im_h; if(retina_img){ im_w = retina_image.zoom_w; im_h = retina_image.zoom_h; ecore_evas_geometry_get(retina_win, NULL, NULL, &w, &h); if(im_w > w) ecore_evas_resize(retina_win, retina_image.zoom_w, retina_image.zoom_h); if(w > im_w){ x = (w - im_w) / 2; } else { x = 0; } if(h > im_h){ y = (h - im_h) / 2; } else { y = 0; } } evas_object_move(retina_img, x, y); if(diag_state == 1) evas_object_resize(retina_diag_bg, w, h); if(help_state == 1){ x = (w - 320) / 2; y = (h - 164) / 2; evas_object_move(retina_help_img, x, y); } }
void RenderThemeEfl::ThemePartCacheEntry::reuse(const String& themePath, FormType newType, const IntSize& newSize) { ASSERT(!themePath.isEmpty()); if (type != newType) { type = newType; if (!setSourceGroupForEdjeObject(edje(), themePath, toEdjeGroup(newType))) { type = FormTypeLast; // Invalidate. return; } } if (size != newSize) { size = newSize; ecore_evas_resize(canvas(), newSize.width(), newSize.height()); evas_object_resize(edje(), newSize.width(), newSize.height()); m_surface = createSurfaceForBackingStore(canvas()); if (!surface()) { type = FormTypeLast; // Invalidate; return; } } }
/* Theme Change */ void cc_update_theme() { int w, h; char *edjefn; if (!controlcentre) return; edjefn = malloc(PATH_MAX); snprintf(edjefn, PATH_MAX, PACKAGE_DATA_DIR "/themes/%s.edj", main_config->theme); edje_object_file_set(controlcentre->edje, edjefn, CC_PART); free(edjefn); /* EDJE and ECORE min, max and resizing */ edje_object_size_max_get(controlcentre->edje, &w, &h); ecore_evas_size_max_set(controlcentre->win, w, h); edje_object_size_min_get(controlcentre->edje, &w, &h); ecore_evas_size_min_set(controlcentre->win, w, h); ecore_evas_resize(controlcentre->win, w, h); evas_object_resize(controlcentre->edje, w, h); evas_object_resize(controlcentre->dragger, w, h); }
void _eli_edje_frontend_game_new(Eli_App * eap) { Eli_Edje_Frontend * eef; Evas_Coord x, y, w, h; Evas_Coord l, r, t, b; Evas_Coord min_w, min_h; char * card_theme; int vel; Eina_Bool bo; eef = eli_app_edje_frontend_get(eap); edje_object_signal_emit(eef->gui, "win,off", ""); /* init elitaire, set the theme, ... */ if (!(eef->elitaire = elitaire_object_new(eef->evas))) return; elitaire_object_game_set(eef->elitaire, eap->current.game); card_theme = ecore_config_theme_with_path_from_name_get(eap->theme.cards.current); /* get and set the offset */ eli_edje_frontend_theme_offset_get(eap, &l, &r, &t, &b); elitaire_object_offset_set(eef->elitaire, l, r, t, b); if (elitaire_object_file_set(eef->elitaire, card_theme)) { elitaire_object_size_min_get(eef->elitaire, &w, &h); } else { fprintf(stderr, _("Elitaire Error: cards file %s not found!\n"), eap->theme.cards.current); return; } free(card_theme); card_theme = NULL; /* find and set the minimum size */ elitaire_object_size_min_get(eef->elitaire, &min_w, &min_h); if (!edje_object_part_exists(eef->gui, "elitaire_card_field")) { fprintf(stderr, _("Elitaire Error in %s:" " elitaire_card_field does not exist!\n"), eap->theme.gui.current); return; } edje_object_part_geometry_get(eef->gui, "elitaire_card_field", &x, &y, &w, &h); if (w < min_w || h < min_h) { Evas_Coord win_h, win_w; ecore_evas_geometry_get(eef->ee, NULL, NULL, &win_w, &win_h); ecore_evas_resize(eef->ee, win_w + min_w - w, win_h + min_h - h); } /* move and resize */ evas_object_move(eef->elitaire, x, y); evas_object_resize(eef->elitaire, w, h); evas_object_show(eef->elitaire); /* tell elitaire the ecore_config vlaues */ vel = ecore_config_int_get("velocity"); elitaire_object_velocity_set(eef->elitaire, vel); vel = ecore_config_int_get("frame_rate"); elitaire_object_frame_rate_set(eef->elitaire, vel); vel = ecore_config_int_get("lazy"); elitaire_object_lazy_mode_set(eef->elitaire, vel); bo = ecore_config_boolean_get("/graphic/animations"); elitaire_object_animations_set(eef->elitaire, bo); bo = ecore_config_boolean_get("/graphic/shadows"); elitaire_object_shadows_set(eef->elitaire, bo); /* swallow the elitaire object */ edje_object_part_swallow(eef->gui, "elitaire_card_field", eef->elitaire); /* Add the callbacks */ elitaire_object_callback_win_add(eef->elitaire, _win_game_cb, eap); elitaire_object_callback_points_add(eef->elitaire, _points_cb, eef); /* and now deal */ elitaire_object_deal(eef->elitaire); eli_app_state_set(eap, ELI_STATE_PLAYING); return; }
static Erss_Tooltip *erss_tooltip_new (char *description) { Erss_Tooltip *tt; int x, y, w, h; Evas_Coord ew, eh; if(description == NULL) return NULL; tt = malloc (sizeof (Erss_Tooltip)); memset (tt, 0, sizeof (Erss_Tooltip)); tt->ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, 250, 80); ecore_evas_override_set(tt->ee, 1); ecore_evas_borderless_set (tt->ee, TRUE); tt->win = ecore_evas_software_x11_window_get(ee); ecore_x_netwm_window_type_set (tt->win, ECORE_X_WINDOW_TYPE_UTILITY); ecore_evas_geometry_get (tt->ee, &x, &y, &w, &h); tt->evas = ecore_evas_get (tt->ee); evas_font_path_append (tt->evas, PACKAGE_DATA_DIR"/fonts/"); tt->bg = esmart_trans_x11_new (tt->evas); evas_object_move (tt->bg, 0, 0); evas_object_layer_set (tt->bg, -5); evas_object_resize (tt->bg, w, h); evas_object_name_set(tt->bg, "root_background"); evas_object_show (tt->bg); tt->bg = evas_object_rectangle_add(tt->evas); evas_object_move (tt->bg, 0, 0); evas_object_layer_set (tt->bg, -6); evas_object_resize (tt->bg, w, h); evas_object_color_set(tt->bg, 255, 255, 255, 20); evas_object_name_set(tt->bg, "background"); evas_object_show (tt->bg); tt->etox = etox_new_all(tt->evas, x + 5, y + 5, w - 10 , h - 10, 255, ETOX_ALIGN_LEFT); etox_context_set_wrap_marker(etox_get_context(tt->etox), NULL, NULL); etox_context_set_align(etox_get_context(tt->etox), ETOX_ALIGN_LEFT); etox_context_set_font(etox_get_context(tt->etox), "Vera", 10); etox_context_set_style(etox_get_context(tt->etox), "shadow"); etox_context_set_color(etox_get_context(tt->etox), 225, 225, 225, 255); etox_set_soft_wrap(tt->etox, 1); etox_set_word_wrap(tt->etox, 1); etox_set_alpha(tt->etox, 255); evas_object_layer_set(tt->etox, 1000); etox_set_text (tt->etox, description); evas_object_show (tt->etox); evas_object_geometry_get(tt->etox, NULL, NULL, &ew, &eh); if (eh > ew) { double scale = (double)ew / (double)eh; ew = ew / scale; eh *= scale; evas_object_resize(tt->etox, ew, eh); evas_object_geometry_get(tt->etox, NULL, NULL, &ew, &eh); } ecore_evas_callback_move_set (tt->ee, erss_window_move_tooltip); ecore_evas_callback_resize_set(tt->ee, erss_window_resize); ecore_evas_resize(tt->ee, ew + 10, eh + 10); return tt; }
void EcoreEvasWindow::resize( const Size& size ) { ecore_evas_resize( _ee, size.width(), size.height() ); }
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; }
int elicit_theme_set(Elicit *el, const char *theme) { const char *path; int w, h; if (!theme) theme = "default"; /* first check if full path is given */ if (theme[0] == '/') { if (!edje_file_group_exists(theme, "elicit.main")) return 0; path = theme; } else path = elicit_theme_find(el, theme); if (!path) { fprintf(stderr, "[Elicit] Warning: theme \"%s\" not found, falling back to default.\n", theme); theme = "default"; path = elicit_theme_find(el, theme); } if (!path) { fprintf(stderr, "[Elicit] Error: theme \"%s\" not found.\n", theme); return 0; } if (el->path.theme) free(el->path.theme); el->path.theme = strdup(path); if (el->conf.theme != theme) { if (el->conf.theme) free(el->conf.theme); el->conf.theme = strdup(theme); } elicit_theme_unswallow_objs(el); edje_object_file_set(el->obj.main, path, "elicit.main"); edje_object_size_min_get(el->obj.main, &w, &h); if (w > el->conf.w) el->conf.w = w; if (h > el->conf.h) el->conf.h = h; ecore_evas_size_min_set(el->ee, w, h); ecore_evas_resize(el->ee, el->conf.w, el->conf.h); evas_object_move(el->obj.main, 0, 0); evas_object_resize(el->obj.main, el->conf.w, el->conf.h); evas_object_show(el->obj.main); elicit_theme_swallow_objs(el); edje_object_signal_callback_add(el->obj.main, "elicit,*", "*", cb_edje_signal, el); edje_object_signal_callback_add(el->obj.main, "mouse,move", "*", cb_edje_move, el); color_changed(el->color); /* emit signals to set theme state */ if (el->conf.grid_visible) edje_object_signal_emit(el->obj.main, "elicit,grid,on", "elicit"); else edje_object_signal_emit(el->obj.main, "elicit,grid,off", "elicit"); if (el->conf.show_band) edje_object_signal_emit(el->obj.main, "elicit,band,on", "elicit"); else edje_object_signal_emit(el->obj.main, "elicit,band,off", "elicit"); return 1; }
void setup_cc_with_pos(int x, int y) { ControlCentre *cc; char *edjefn = malloc(PATH_MAX); char *fontpath = malloc(PATH_MAX); Evas_Coord edje_w, edje_h; CCPos *pos; cc = malloc(sizeof(ControlCentre)); controlcentre = cc; pos = get_cc_pos(); if (x >= 0 || y >= 0) { pos->x = x; pos->y = y; } /* Setup the Window */ if (!strcmp(main_config->render_method, "gl")) { #ifdef HAVE_ECORE_EVAS_GL cc->win = ecore_evas_gl_x11_new(NULL, 0, pos->x, pos->y, pos->width, pos->height); #else dml("GL not in Ecore_Evas module. Falling back on software!", 1); free(main_config->render_method); main_config->render_method = strdup("software"); cc->win = ecore_evas_software_x11_new(NULL, 0, pos->x, pos->y, pos->width, pos->height); #endif } else cc->win = ecore_evas_software_x11_new(NULL, 0, pos->x, pos->y, pos->width, pos->height); ecore_evas_title_set(cc->win, "Enotes"); ecore_evas_name_class_set(cc->win, "Enotes", "Enotes"); if (main_config->ontop == 1) ecore_evas_layer_set(cc->win, 7); else ecore_evas_layer_set(cc->win, 2); if (main_config->sticky == 1) ecore_evas_sticky_set(cc->win, 1); else ecore_evas_sticky_set(cc->win, 0); ecore_evas_borderless_set(cc->win, 1); ecore_evas_shaped_set(cc->win, 1); if (pos->x != 0 && pos->y != 0) ecore_evas_resize(cc->win, pos->x, pos->y); ecore_evas_show(cc->win); // if(main_config->ontop==1) /* Moving the damn thing */ ecore_evas_move(cc->win, pos->x, pos->y); /* Setup the Canvas, Render-Method and Font Path */ cc->evas = ecore_evas_get(cc->win); evas_output_method_set(cc->evas, evas_render_method_lookup(main_config-> render_method)); snprintf(fontpath, PATH_MAX, "%s/fonts", PACKAGE_DATA_DIR); evas_font_path_append(cc->evas, fontpath); free(fontpath); /* Draggable Setup */ cc->dragger = esmart_draggies_new(cc->win); evas_object_name_set(cc->dragger, "dragger"); evas_object_move(cc->dragger, 0, 0); evas_object_layer_set(cc->dragger, 0); evas_object_color_set(cc->dragger, 255, 255, 255, 0); esmart_draggies_button_set(cc->dragger, 1); evas_object_show(cc->dragger); /* Setup the EDJE */ cc->edje = edje_object_add(cc->evas); snprintf(edjefn, PATH_MAX, CC_EDJE, PACKAGE_DATA_DIR, main_config->theme); edje_object_file_set(cc->edje, edjefn, CC_PART); free(edjefn); evas_object_move(cc->edje, 0, 0); evas_object_layer_set(cc->edje, 1); evas_object_name_set(cc->edje, "edje"); evas_object_pass_events_set(cc->edje, 0); evas_object_show(cc->edje); if (pos->shaded) edje_object_signal_emit(cc->edje, EDJE_SIGNAL_CC_SHADE "_GO", ""); else edje_object_signal_emit(cc->edje, EDJE_SIGNAL_CC_UNSHADE "_GO", ""); /* EDJE and ECORE min, max and resizing */ edje_object_size_max_get(cc->edje, &edje_w, &edje_h); ecore_evas_size_max_set(cc->win, edje_w, edje_h); edje_object_size_min_get(cc->edje, &edje_w, &edje_h); ecore_evas_size_min_set(cc->win, edje_w, edje_h); ecore_evas_resize(cc->win, (int) edje_w, (int) edje_h); evas_object_resize(cc->edje, edje_w, edje_h); evas_object_resize(cc->dragger, edje_w, edje_h); /* Ecore Callbacks */ ecore_evas_callback_resize_set(cc->win, cc_resize); ecore_evas_callback_destroy_set(cc->win, cc_close_win); ecore_evas_callback_delete_request_set(cc->win, cc_close_win); /* Edje Callbacks */ edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_MINIMIZE, "", (void *) cc_minimize, cc->win); edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_CLOSE, "", (void *) cc_close, NULL); edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_SAVELOAD, "", (void *) cc_saveload, NULL); edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_SETTINGS, "", (void *) cc_settings, NULL); edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_NEW, "", (void *) cc_newnote, NULL); edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_SHADE, "", (void *) cc_shade, NULL); edje_object_signal_callback_add(cc->edje, EDJE_SIGNAL_CC_UNSHADE, "", (void *) cc_unshade, NULL); free(pos); return; }