EcoreEvasWindowXRenderX11::EcoreEvasWindowXRenderX11( int width, int height, const char* display ) :EcoreEvasWindow() { Dout( dc::notice, "EcoreEvasWindow::EcoreEvasWindowGL" ); EcoreApplication::application()->setMainWindow( this ); if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" ); if ( ::getenv( "EFL_WIDTH" ) ) width = atoi( ::getenv( "EFL_WIDTH" ) ); if ( ::getenv( "EFL_HEIGHT" ) ) height = atoi( ::getenv( "EFL_HEIGHT" ) ); Dout( dc::notice, "- detected display string '" << ( display ? display:"<null>" ) << "' - starting X11 engine" ); //FIXME: Should we care about positioning? 0, 0 for now _ee = ecore_evas_xrender_x11_new( const_cast<char*>( display ), 0, 0, 0, width, height ); ecore_evas_title_set( _ee, eApp->name().c_str() ); ecore_evas_borderless_set( _ee, 0 ); _canvas = new EvasCanvas( ecore_evas_get( _ee ) ); /* Set up magic object back link */ ecore_evas_data_set( _ee, "obj_c++", this ); /* Set up default callbacks */ setEventEnabled( Resize, true ); setEventEnabled( DeleteRequest, true ); }
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; }
int main(void) { Ecore_Evas *ee; ecore_evas_init(); ee = ecore_evas_new(NULL, 0, 0, 200, 100, NULL); ecore_evas_title_set(ee, "Ecore Evas Callbacks Example"); ecore_evas_show(ee); //callbacks ecore_evas_callback_delete_request_set(ee, _delete); ecore_evas_callback_destroy_set(ee, _destroy); ecore_evas_callback_focus_in_set(ee, _focus_in); ecore_evas_callback_focus_out_set(ee, _focus_out); ecore_evas_callback_hide_set(ee, _hide); ecore_evas_callback_mouse_in_set(ee, _mouse_in); ecore_evas_callback_mouse_out_set(ee, _mouse_out); ecore_evas_callback_move_set(ee, _move); ecore_evas_callback_post_render_set(ee, _post_render); ecore_evas_callback_pre_free_set(ee, _pre_free); ecore_evas_callback_pre_render_set(ee, _pre_render); ecore_evas_callback_resize_set(ee, _resize); ecore_evas_callback_show_set (ee, _show); ecore_main_loop_begin(); ecore_evas_free(ee); ecore_evas_shutdown(); return 0; }
static MiniBrowser *browserCreate(const char *url) { MiniBrowser *app = malloc(sizeof(MiniBrowser)); app->ee = ecore_evas_new(0, 0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT, 0); ecore_evas_title_set(app->ee, "EFL MiniBrowser"); ecore_evas_callback_resize_set(app->ee, on_ecore_evas_resize); ecore_evas_borderless_set(app->ee, 0); ecore_evas_show(app->ee); app->evas = ecore_evas_get(app->ee); app->bg = evas_object_rectangle_add(app->evas); evas_object_name_set(app->bg, "bg"); evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_move(app->bg, 0, 0); evas_object_resize(app->bg, DEFAULT_WIDTH, DEFAULT_HEIGHT); evas_object_color_set(app->bg, 255, 150, 150, 255); evas_object_show(app->bg); /* Create webview */ app->browser = ewk_view_add(app->evas); evas_object_name_set(app->browser, "browser"); evas_object_size_hint_weight_set(app->browser, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_resize(app->browser, DEFAULT_WIDTH, DEFAULT_HEIGHT); evas_object_show(app->browser); evas_object_focus_set(app->browser, EINA_TRUE); ewk_view_uri_set(app->browser, url); return app; }
EvasWindowSoftwareX11::EvasWindowSoftwareX11( const Eflxx::Size &size, const char* display ) : EvasWindow(), mExwin (NULL) { Dout( dc::notice, "EvasWindow::EvasWindowSoftwareX11" ); Application::getInstance()->setMainWindow( this ); /*if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" ); if ( ::getenv( "EFL_WIDTH" ) ) size.width (atoi( ::getenv( "EFL_WIDTH" ) )); if ( ::getenv( "EFL_HEIGHT" ) ) size.height (atoi( ::getenv( "EFL_HEIGHT" ) ));*/ Dout( dc::notice, "- detected display string '" << ( display ? display:"<null>" ) << "' - starting X11 engine" ); //FIXME: Should we care about positioning? 0, 0 for now _ee = ecore_evas_software_x11_new( const_cast<char*>( display ), 0, 0, 0, size.width (), size.height () ); ecore_evas_title_set( _ee, Application::getInstance()->getName().c_str() ); ecore_evas_borderless_set( _ee, 0 ); _canvas = Evasxx::Canvas::wrap ( ecore_evas_get( _ee ) ); /* Set up magic object back link */ ecore_evas_data_set( _ee, "obj_c++", this ); /* Set up default callbacks */ setEventEnabled( Resize, true ); setEventEnabled( DeleteRequest, true ); }
static void on_title_changed(void *user_data, Evas_Object *webview, void *event_info) { MiniBrowser *app = (MiniBrowser *)user_data; const char *title = (const char *)event_info; ecore_evas_title_set(app->ee, title); }
void WebInspectorProxy::platformInspectedURLChanged(const String& url) { if (!m_inspectorWindow) return; String title = "WebInspector - " + url; ecore_evas_title_set(m_inspectorWindow, title.utf8().data()); }
static void title_set(Ecore_Evas *ee, const char *title, int progress) { Eina_Strbuf* buffer; if (!title || !*title) { ecore_evas_title_set(ee, APP_NAME); return; } buffer = eina_strbuf_new(); if (progress < 100) eina_strbuf_append_printf(buffer, "%s (%d%%) - %s", title, progress, APP_NAME); else eina_strbuf_append_printf(buffer, "%s - %s", title, APP_NAME); ecore_evas_title_set(ee, eina_strbuf_string_get(buffer)); eina_strbuf_free(buffer); }
void WebInspectorProxy::createInspectorWindow() { ecore_evas_title_set(m_inspectorWindow, "Web Inspector"); ecore_evas_callback_resize_set(m_inspectorWindow, resizeInspectorWindow); ecore_evas_callback_delete_request_set(m_inspectorWindow, destroyInspectorWindow); ecore_evas_show(m_inspectorWindow); evas_object_name_set(m_inspectorView, "inspector"); evas_object_move(m_inspectorView, 0, 0); evas_object_resize(m_inspectorView, initialWindowWidth, initialWindowHeight); evas_object_show(m_inspectorView); evas_object_focus_set(m_inspectorView, true); }
int main(int argc, const char **argv) { Ecore_X_Window win; ecore_init(); ecore_app_args_set(argc, argv); if (!ecore_evas_init()) return -1; ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, win_w, win_h); if (!ee) return 1; win = ecore_evas_software_x11_window_get(ee); ecore_evas_title_set(ee, "Etox Selection Test"); ecore_evas_show(ee); /* setup callbacks for events */ ecore_event_handler_add(ECORE_X_EVENT_MOUSE_MOVE, e_mouse_move, NULL); ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_DOWN, e_mouse_down, NULL); ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP, e_mouse_up, NULL); ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, sig_exit, NULL); evas = ecore_evas_get(ee); evas_font_path_append(evas, FONT_DIRECTORY); /* program does its data setup here */ setup(); ecore_evas_callback_resize_set(ee, window_resize); /* and now loop forever handling events */ ecore_main_loop_begin(); evas_object_del(e_msg); evas_object_del(e_test); while (pbuttons) { panel_button_free(pbuttons->data); pbuttons = eina_list_remove(pbuttons, pbuttons->data); } evas_free(evas); return 0; argc = 0; argv = NULL; }
static MiniBrowser *browserCreate(const char *url, const char *engine) { MiniBrowser *app = malloc(sizeof(MiniBrowser)); app->ee = ecore_evas_new(engine, 0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT, 0); if (!app->ee) return 0; ecore_evas_title_set(app->ee, APP_NAME); ecore_evas_callback_resize_set(app->ee, on_ecore_evas_resize); ecore_evas_borderless_set(app->ee, 0); ecore_evas_show(app->ee); ecore_evas_callback_delete_request_set(app->ee, closeWindow); app->evas = ecore_evas_get(app->ee); app->bg = evas_object_rectangle_add(app->evas); evas_object_name_set(app->bg, "bg"); evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_move(app->bg, 0, 0); evas_object_resize(app->bg, DEFAULT_WIDTH, DEFAULT_HEIGHT); evas_object_color_set(app->bg, 255, 150, 150, 255); evas_object_show(app->bg); /* Create webview */ app->browser = ewk_view_add(app->evas); ewk_view_theme_set(app->browser, THEME_DIR"/default.edj"); evas_object_name_set(app->browser, "browser"); evas_object_smart_callback_add(app->browser, "load,error", on_error, app); evas_object_smart_callback_add(app->browser, "load,progress", on_progress, app); evas_object_smart_callback_add(app->browser, "title,changed", on_title_changed, app); evas_object_smart_callback_add(app->browser, "uri,changed", on_url_changed, app); evas_object_event_callback_add(app->browser, EVAS_CALLBACK_KEY_DOWN, on_key_down, app); evas_object_size_hint_weight_set(app->browser, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_move(app->browser, 0, URL_BAR_HEIGHT); evas_object_resize(app->browser, DEFAULT_WIDTH, DEFAULT_HEIGHT - URL_BAR_HEIGHT); evas_object_show(app->browser); evas_object_focus_set(app->browser, EINA_TRUE); app->url_bar = url_bar_add(app->browser, DEFAULT_WIDTH); ewk_view_uri_set(app->browser, url); return app; }
int main(void) { Ecore_Evas *ee; Evas *canvas; Evas_Object *bg; Eina_List *engines, *l; char *data; if (ecore_evas_init() <= 0) return 1; engines = ecore_evas_engines_get(); printf("Available engines:\n"); EINA_LIST_FOREACH(engines, l, data) printf("%s\n", data); ecore_evas_engines_free(engines); ee = ecore_evas_new(NULL, 0, 0, 200, 200, NULL); ecore_evas_title_set(ee, "Ecore Evas basics Example"); ecore_evas_show(ee); data = malloc(sizeof(char) * 6); sprintf(data, "%s", "hello"); ecore_evas_data_set(ee, "key", data); ecore_evas_callback_delete_request_set(ee, _on_delete); printf("Using %s engine!\n", ecore_evas_engine_name_get(ee)); canvas = ecore_evas_get(ee); if (ecore_evas_ecore_evas_get(canvas) == ee) printf("Everything is sane!\n"); bg = evas_object_rectangle_add(canvas); evas_object_color_set(bg, 0, 0, 255, 255); evas_object_resize(bg, 200, 200); evas_object_show(bg); ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE); ecore_main_fd_handler_add(STDIN_FILENO, ECORE_FD_READ, _stdin_cb, NULL, NULL, NULL); ecore_main_loop_begin(); ecore_evas_free(ee); ecore_evas_shutdown(); return 0; }
static int ethemes_init(void *data, int type, void *ev) { E_Response_Theme_Get *e; e = ev; default_theme = (char *) strdup(E17PREFIX "/share/enlightenment/data/themes/default.edj"); edje_object_file_set(background, default_theme, "widgets/menu/default/background"); selected_theme = (char *)strdup(e->file); e_preview_theme_set(preview, selected_theme); ecore_evas_title_set(ee, "eThemes"); create_buttons(); _resize_cb(ee); return 1; }
//Create a new menu //The parent menu will have to be destroyed by eclair_menu_free //Return NULL if failed Eclair_Menu *eclair_menu_new(Eclair_Engine menu_engine) { Eclair_Menu *menu; Ecore_X_Window_State window_states[2]; menu = calloc(1, sizeof(Eclair_Menu)); menu->engine = menu_engine; if (menu_engine == ECLAIR_GL) { menu->window = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 0, 0); menu->x_window = ecore_evas_gl_x11_window_get(menu->window); } else { menu->window = ecore_evas_software_x11_new(NULL, 0, 0, 0, 0, 0); menu->x_window = ecore_evas_software_x11_window_get(menu->window); } ecore_evas_title_set(menu->window, "eclair menu"); ecore_evas_name_class_set(menu->window, "eclair", "Eclair"); window_states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; window_states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER; ecore_x_netwm_window_state_set(menu->x_window, window_states, 2); ecore_evas_borderless_set(menu->window, 1); menu->evas = ecore_evas_get(menu->window); menu->edje_object = edje_object_add(menu->evas); if (!edje_object_file_set(menu->edje_object, ECLAIR_WIDGETS_THEME, "eclair_menu")) { evas_object_del(menu->edje_object); ecore_evas_free(menu->window); free(menu); return NULL; } evas_object_move(menu->edje_object, 0, 0); evas_object_show(menu->edje_object); ecore_evas_data_set(menu->window, "eclair_menu", menu); ecore_evas_callback_resize_set(menu->window, _eclair_menu_resize_cb); ecore_evas_hide(menu->window); return menu; }
static Ecore_Evas* initEcoreEvas() { Ecore_Evas* ecoreEvas = 0; #if defined(WTF_USE_ACCELERATED_COMPOSITING) && defined(HAVE_ECORE_X) const char* engine = "opengl_x11"; ecoreEvas = ecore_evas_new(engine, 0, 0, 800, 600, 0); // Graceful fallback to software rendering if evas_gl engine is not available. if (!ecoreEvas) #endif ecoreEvas = ecore_evas_new(0, 0, 0, 800, 600, 0); if (!ecoreEvas) return 0; ecore_evas_title_set(ecoreEvas, "EFL WebKitTestRunner"); ecore_evas_show(ecoreEvas); return ecoreEvas; }
EAPI E_Popup * e_popup_new(E_Zone *zone, int x, int y, int w, int h) { E_Popup *pop; pop = E_OBJECT_ALLOC(E_Popup, E_POPUP_TYPE, _e_popup_free); if (!pop) return NULL; pop->zone = zone; pop->x = x; pop->y = y; pop->w = w; pop->h = h; pop->layer = 250; pop->ecore_evas = e_canvas_new(pop->zone->container->win, pop->zone->x + pop->x, pop->zone->y + pop->y, pop->w, pop->h, 1, 1, &(pop->evas_win)); if (!pop->ecore_evas) { free(pop); return NULL; } /* avoid excess exposes when shaped - set damage avoid to 1 */ // ecore_evas_avoid_damage_set(pop->ecore_evas, 1); e_canvas_add(pop->ecore_evas); pop->shape = e_container_shape_add(pop->zone->container); e_container_shape_move(pop->shape, pop->zone->x + pop->x, pop->zone->y + pop->y); e_container_shape_resize(pop->shape, pop->w, pop->h); pop->evas = ecore_evas_get(pop->ecore_evas); e_container_window_raise(pop->zone->container, pop->evas_win, pop->layer); ecore_x_window_shape_events_select(pop->evas_win, 1); ecore_evas_name_class_set(pop->ecore_evas, "E", "_e_popup_window"); ecore_evas_title_set(pop->ecore_evas, "E Popup"); e_object_ref(E_OBJECT(pop->zone)); pop->zone->popups = eina_list_append(pop->zone->popups, pop); _e_popup_list = eina_list_append(_e_popup_list, pop); eina_hash_add(_e_popup_hash, e_util_winid_str_get(pop->evas_win), pop); return pop; }
int main(void) { Ecore_Evas *ee; Evas_Object *bg, *cursor, *obj; int layer, x, y; ecore_evas_init(); ee = ecore_evas_new(NULL, 0, 0, 200, 200, NULL); ecore_evas_title_set(ee, "Ecore Evas Object Example"); ecore_evas_show(ee); bg = evas_object_rectangle_add(ecore_evas_get(ee)); evas_object_color_set(bg, 0, 0, 255, 255); evas_object_resize(bg, 200, 200); evas_object_show(bg); ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE); if (bg == ecore_evas_object_associate_get(ee)) printf("Association worked!\n"); cursor = evas_object_rectangle_add(ecore_evas_get(ee)); evas_object_color_set(cursor, 0, 255, 0, 255); evas_object_resize(cursor, 5, 10); ecore_evas_object_cursor_set(ee, cursor, 0, 1, 1); ecore_evas_cursor_get(ee, &obj, &layer, &x, &y); if (obj == cursor && layer == 0 && x == 1 && y == 1) printf("Set cursor worked!\n"); ecore_main_loop_begin(); ecore_evas_free(ee); ecore_evas_shutdown(); return 0; }
void EcoreEvasWindow::setTitle( const char* title ) { ecore_evas_title_set( _ee, title ); }
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 main(int argc, char** argv) { Eina_Bool ret; Ecore_Evas *ecore_evas; Evas *evas; Evas_Object *bg, *video; Evas_Map *m; if(argc != 2) { fprintf(stderr, "Usage: %s moviefile\n", argv[0]); return 1; } ecore_init(); ecore_evas_init(); emotion_init(); ecore_evas = ecore_evas_new ("software_x11", 300, 200, WINDOW_WIDTH, WINDOW_HEIGHT, NULL); if (!ecore_evas) goto end; ecore_evas_callback_delete_request_set(ecore_evas, main_delete_request); // ecore_evas_callback_resize_set(ecore_evas, main_resize); ecore_evas_title_set(ecore_evas, "Evas Media Test Program"); // ecore_evas_name_class_set(ecore_evas, "evas_media_test", "main"); ecore_evas_show(ecore_evas); evas = ecore_evas_get(ecore_evas); bg = evas_object_rectangle_add(evas); evas_object_color_set(bg, 0x00, 0x00, 0x00, 0xff); evas_object_move(bg, 0, 0); evas_object_resize(bg, WINDOW_WIDTH, WINDOW_HEIGHT); evas_object_show(bg); video = emotion_object_add(evas); evas_object_move(video, 0, 0); evas_object_resize(video, WINDOW_WIDTH, WINDOW_HEIGHT); ret = emotion_object_init(video, "gstreamer"); if(ret != EINA_TRUE) { fprintf(stderr, "faild to emotion_object_init\n"); goto end; } ret = emotion_object_file_set(video, argv[1]); if(ret != EINA_TRUE) { fprintf(stderr, "emotion_object_file_set\n"); goto end; } emotion_object_play_set(video, EINA_TRUE); evas_object_show(video); m = evas_map_new(4); evas_map_util_points_populate_from_object(m, video); // 2d rotate // evas_map_util_rotate(m, 90, 0 + (WINDOW_WIDTH/2), 0 + (WINDOW_HEIGHT/2)); // 3d rotate //evas_map_util_3d_rotate(m, 10.0, 10.0, 0.0, 0, 0, 0); evas_object_map_set(video, m); evas_object_map_enable_set(video, EINA_TRUE); ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, key_cb, video); ecore_main_loop_begin(); end: if(ecore_evas) ecore_evas_free(ecore_evas); evas_map_free(m); emotion_shutdown(); ecore_evas_shutdown(); ecore_shutdown(); return 0; }
int main(int argc, char *argv[]) { char edje_file_path[PATH_MAX]; const char *edje_file = "codegen.edj"; Ecore_Evas *ee; Evas *evas; Evas_Object *bg; Evas_Object *edje_obj; Evas_Object *red_rect; Eina_Prefix *pfx; if (!ecore_evas_init()) return EXIT_FAILURE; if (!edje_init()) goto shutdown_ecore_evas; pfx = eina_prefix_new(argv[0], main, "EDJE_EXAMPLES", "edje/examples", edje_file, PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, PACKAGE_DATA_DIR, PACKAGE_DATA_DIR); if (!pfx) goto shutdown_edje; /* this will give you a window with an Evas canvas under the first * engine available */ ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); if (!ee) goto free_prefix; ecore_evas_callback_delete_request_set(ee, _on_delete); ecore_evas_title_set(ee, "Edje text Example"); evas = ecore_evas_get(ee); bg = evas_object_rectangle_add(evas); evas_object_color_set(bg, 255, 255, 255, 255); /* white bg */ evas_object_move(bg, 0, 0); /* at canvas' origin */ evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ evas_object_show(bg); ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE); edje_obj = codegen_example_object_add(evas, NULL); evas_object_move(edje_obj, 20, 20); evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); evas_object_show(edje_obj); codegen_example_part_one_set(edje_obj, "CODEGEN_EXAMPLE"); codegen_example_part_below_over_callback_add(edje_obj, _on_mouse_over, NULL); red_rect = evas_object_rectangle_add(evas); evas_object_color_set(red_rect, 255, 0, 0, 255); /* white bg */ codegen_example_part_two_set(edje_obj, red_rect); evas_object_show(red_rect); ecore_evas_show(ee); ecore_main_loop_begin(); eina_prefix_free(pfx); ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); return EXIT_SUCCESS; free_prefix: eina_prefix_free(pfx); shutdown_edje: edje_shutdown(); shutdown_ecore_evas: ecore_evas_shutdown(); return EXIT_FAILURE; }
bool ui_init(ePlayer *player) { int zero = 0; char buf[PATH_MAX]; debug(DEBUG_LEVEL_INFO, "Starting setup\n"); ecore_init(); ecore_evas_init(); edje_init(); ewl_init(&zero, NULL); ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); #ifdef HAVE_ECORE_EVAS_GL if (!strcasecmp(player->cfg.evas_engine, "gl")) { debug(DEBUG_LEVEL_INFO, "Starting EVAS GL X11\n"); player->gui.ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 0, 0); } else #endif #ifdef HAVE_ECORE_EVAS_FB if (!strcasecmp(player->cfg.evas_engine, "fb")) { debug(DEBUG_LEVEL_INFO, "Starting EVAS FB\n"); player->gui.ee = ecore_evas_fb_new(NULL, 0, 0, 0); } else #endif { debug(DEBUG_LEVEL_INFO, "Starting EVAS X11\n"); player->gui.ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 0, 0); } if (!player->gui.ee) { debug(DEBUG_LEVEL_CRITICAL, "Cannot create Ecore Evas (using %s engine)\n", player->cfg.evas_engine); return false; } ecore_evas_title_set(player->gui.ee, "ePlayer"); ecore_evas_name_class_set(player->gui.ee, "ecore_test", "test_evas"); ecore_evas_borderless_set(player->gui.ee, 1); ecore_evas_shaped_set(player->gui.ee, 1); ecore_evas_callback_pre_render_set(player->gui.ee, cb_ee_pre_render); ecore_evas_callback_post_render_set(player->gui.ee, cb_ee_post_render); ecore_evas_callback_resize_set(player->gui.ee, cb_ee_resize); ecore_evas_show(player->gui.ee); player->gui.evas = ecore_evas_get(player->gui.ee); snprintf(buf, sizeof(buf), "%s/.e/apps/%s/fonts", getenv("HOME"), PACKAGE); evas_font_path_append(player->gui.evas, buf); evas_font_path_append(player->gui.evas, DATA_DIR "/fonts"); evas_font_path_append(player->gui.evas, "/usr/X11R6/lib/X11/fonts"); evas_font_path_append(player->gui.evas, "/usr/share/fonts"); if (!ui_init_dragger(player)) return false; return ui_init_edje(player, "eplayer"); }
int main (int argc, char *argv[]) { Ecore_Evas *ee; Evas *evas; Evas_Object *o; Epdf_Document *document; Epdf_Page *page; int page_number; int width; int height; if (argc < 3) { printf ("\nUsage: %s filename page_number\n\n", argv[0]); return EXIT_FAILURE; } if (!epdf_init ()) { printf ("Epdf can't be initialized\n"); return EXIT_FAILURE; } document = epdf_document_new (argv[1]); if (!document) { printf ("Bad pdf file\n"); goto epdf_shutdown; } sscanf (argv[2], "%d", &page_number); if (page_number >= epdf_document_page_count_get (document)) { printf ("Page number exceeds the page count of the PDF document\n"); goto document_delete; } page = epdf_page_new (document); if (!page) { printf ("Bad page\n"); goto document_delete; } epdf_page_page_set (page, page_number); epdf_page_size_get (page, &width, &height); document_info_print (document, page); if (!ecore_evas_init()) goto page_delete; ee = ecore_evas_new ("software_x11", 0, 0, width, height, NULL); /* these tests can be improved... */ if (!ee) { printf ("Can not find Software X11 engine. Trying DirectDraw engine...\n"); ee = ecore_evas_software_ddraw_new (NULL, 0, 0, width, height); if (!ee) { printf ("Can not find DirectDraw engine...\n"); printf ("Exiting...\n"); goto ecore_evas_shutdown; } } ecore_event_handler_add (ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); ecore_evas_callback_delete_request_set (ee, app_delete_request); ecore_evas_title_set (ee, "Evas Pdf Test"); ecore_evas_name_class_set (ee, "evas_pdf_test", "test_evas_pdf"); ecore_evas_callback_resize_set (ee, app_resize); ecore_evas_show (ee); evas = ecore_evas_get (ee); o = evas_object_image_add (evas); evas_object_move (o, 0, 0); epdf_page_render (page, o); evas_object_show (o); ecore_main_loop_begin (); epdf_page_delete (page); epdf_document_delete (document); ecore_evas_shutdown (); epdf_shutdown (); return EXIT_SUCCESS; ecore_evas_shutdown: ecore_evas_shutdown (); page_delete: epdf_page_delete (page); document_delete: epdf_document_delete (document); epdf_shutdown: epdf_shutdown (); return EXIT_FAILURE; }
int main (int argc, char *argv[]) { Evas *evas = NULL; Ecore_Evas *ee = NULL; Ecore_X_Window win = 0; Evas_Object *o = NULL; Evas_Object *cont = NULL; Evas_Object *image = NULL; int iw, ih; ecore_init (); ecore_app_args_set (argc, (const char **) argv); ecore_event_handler_add (ECORE_EVENT_SIGNAL_EXIT, exit_cb, NULL); if (ecore_evas_init ()) { ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, 300, 120); win = ecore_evas_software_x11_window_get(ee); ecore_evas_title_set (ee, "Enlightenment Thumbnail Test"); ecore_evas_callback_delete_request_set (ee, window_del_cb); ecore_evas_callback_resize_set (ee, window_resize_cb); ecore_evas_callback_move_set (ee, window_move_cb); evas = ecore_evas_get (ee); o = esmart_trans_x11_new (evas); esmart_trans_x11_type_set(o, Esmart_Trans_X11_Type_Background); esmart_trans_x11_window_set(o, win); evas_object_move (o, 0, 0); evas_object_resize (o, 300, 120); evas_object_layer_set (o, -5); evas_object_name_set (o, "root_background"); evas_object_show (o); o = evas_object_rectangle_add (evas); evas_object_move (o, 0, 0); evas_object_resize (o, 300, 120); evas_object_layer_set (o, -6); evas_object_color_set (o, 255, 255, 255, 0); evas_object_name_set (o, "background"); evas_object_show (o); o = esmart_draggies_new (ee); evas_object_move (o, 0, 0); evas_object_resize (o, 300, 120); evas_object_layer_set (o, 255); evas_object_color_set (o, 255, 255, 255, 0); evas_object_name_set (o, "dragger"); esmart_draggies_button_set (o, 1); evas_object_show (o); if (argc < 2) { image = evas_object_image_add (evas); evas_object_image_file_set (image, PACKAGE_DATA_DIR "/esmart.png", NULL); evas_object_image_size_get (image, &iw, &ih); evas_object_resize (image, iw, ih); evas_object_image_fill_set (image, 0.0, 0.0, (Evas_Coord) iw, (Evas_Coord) ih); evas_object_layer_set (image, 1000); evas_object_pass_events_set (image, 1); evas_object_show (image); } cont = esmart_container_new (evas); evas_object_move (cont, 0, 0); evas_object_resize (cont, 300, 120); evas_object_layer_set (cont, 0); evas_object_name_set (cont, "container"); evas_object_show (cont); esmart_container_padding_set (cont, 10, 10, 10, 10); esmart_container_spacing_set (cont, 5); esmart_container_fill_policy_set (cont, CONTAINER_FILL_POLICY_FILL_Y | CONTAINER_FILL_POLICY_KEEP_ASPECT); evas_object_event_callback_add (o, EVAS_CALLBACK_MOUSE_DOWN, bg_down_cb, cont); evas_object_event_callback_add (o, EVAS_CALLBACK_MOUSE_UP, bg_up_cb, cont); while (--argc) { if ((o = esmart_thumb_new (ecore_evas_get (ee), argv[argc]))) { evas_object_layer_set (o, 2); evas_object_show (o); esmart_container_element_append (cont, o); } } evas_object_resize (cont, 300, 120); ecore_evas_show (ee); if (ecore_x_composite_query()) { ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, 320, 120); ecore_evas_title_set (ee, "Enlightenment Pixmap Test"); ecore_evas_callback_delete_request_set (ee, window_del_cb); ecore_evas_callback_resize_set (ee, window_resize_cb); ecore_evas_callback_move_set (ee, window_move_cb); evas = ecore_evas_get (ee); o = esmart_xpixmap_new (evas, 0, win); evas_object_move (o, 0, 0); evas_object_resize (o, 320, 120); evas_object_layer_set (o, -5); evas_object_name_set (o, "xpixmap"); evas_object_show (o); o = evas_object_rectangle_add (evas); evas_object_move (o, 0, 0); evas_object_resize (o, 150, 30); evas_object_layer_set (o, -3); evas_object_color_set (o, 50, 50, 50, 50); evas_object_name_set (o, "white_transparent_rect"); evas_object_show (o); ecore_evas_show (ee); } ecore_main_loop_begin (); } return (0); }
int main(int argc, char *argv[]) { app_t app; int i; char *engine = "x11-16"; ecore_init(); ecore_app_args_set(argc, (const char **)argv); ecore_evas_init(); edje_init(); edje_frametime_set(1.0 / 30.0); memset(&app, 0, sizeof(app)); app.theme = THEME; app.fs = 1; app.total_ms = 1000; app.fade_in = 1; for (i=1; i < argc; i++) if (strcmp (argv[i], "-fs") == 0) ecore_evas_fullscreen_set(app.ee, 1); else if (strncmp (argv[i], "-theme=", sizeof("-theme=") - 1) == 0) app.theme = argv[i] + sizeof("-theme=") - 1; else if (strncmp (argv[i], "-time=", sizeof("-time=") - 1) == 0) app.total_ms = atoi(argv[i] + sizeof("-time=") - 1); else if (strncmp (argv[i], "-engine=", sizeof("-engine=") - 1) == 0) engine = argv[i] + sizeof("-engine=") - 1; if (app.total_ms < 1) app.total_ms = 1000; app.ee = init_ecore_evas(engine); if (!app.ee) { fprintf(stderr, "Could not init engine '%s'.\n", engine); return 1; } ecore_evas_data_set(app.ee, "app", &app); ecore_evas_title_set(app.ee, TITLE); ecore_evas_name_class_set(app.ee, WM_NAME, WM_CLASS); ecore_evas_fullscreen_set(app.ee, app.fs); fprintf(stderr, "time to fade: %dms\n", app.total_ms); app.evas = ecore_evas_get(app.ee); app.edje_main = edje_object_add(app.evas); evas_data_attach_set(app.evas, &app); if (!edje_object_file_set(app.edje_main, app.theme, THEME_GROUP)) { fprintf(stderr, "Failed to load file \"%s\", part \"%s\".\n", app.theme, THEME_GROUP); return 1; } app.obj = edje_object_part_object_get(app.edje_main, "obj"); evas_object_move(app.edje_main, 0, 0); evas_object_resize(app.edje_main, WIDTH, HEIGHT); evas_object_show(app.edje_main); ecore_evas_show(app.ee); ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); ecore_evas_callback_resize_set(app.ee, resize_cb); evas_object_event_callback_add(app.edje_main, EVAS_CALLBACK_KEY_DOWN, key_down, &app); evas_object_focus_set(app.edje_main, 1); gettimeofday(&app.start, NULL); app.anim = ecore_animator_add(do_anim, &app); ecore_main_loop_begin(); return 0; }
// TODO: Possible without #ifdef stuff? EvasWindowFB::EvasWindowFB( const Eflxx::Size &size, const char* display, int rotation ) : EvasWindow() { Dout( dc::notice, "EvasWindow::EvasWindowFB" ); Application::getInstance()->setMainWindow( this ); /*if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" ); if ( ::getenv( "EFL_WIDTH" ) ) size.width (atoi( ::getenv( "EFL_WIDTH" ) )); if ( ::getenv( "EFL_HEIGHT" ) ) size.height (atoi( ::getenv( "EFL_HEIGHT" ) )); if ( ::getenv( "EFL_ROTATION" ) ) rotation = atoi( ::getenv( "EFL_ROTATION" ) );*/ if ( display /*&& ::strstr( display, "/dev/fb" )*/ ) { #ifdef ENABLE_EFLPP_FB int fb_dev_fd = ::open( display, O_RDONLY ); if ( fb_dev_fd < 0 ) { fprintf(stderr,"Can't open display '%s': %s\n", display, strerror(errno)); exit( 1 ); } struct fb_var_screeninfo fb_vinfo; struct fb_fix_screeninfo fb_finfo; // read VScreen info from fb if ( ioctl( fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo ) ) { fprintf(stderr,"Can't get VSCREENINFO: %s\n", strerror(errno)); exit(1); } // readFScreen info from fb if ( ioctl( fb_dev_fd, FBIOGET_FSCREENINFO, &fb_finfo ) ) { fprintf(stderr,"Can't get FSCREENINFO: %s\n", strerror(errno)); exit(1); } Dout( dc::notice, "- using display '" << display << "' [" << fb_finfo.id << "] - " << fb_vinfo.xres << "x" << fb_vinfo.yres << "@" << rotation ); width = ( rotation % 180 ) ? fb_vinfo.yres : fb_vinfo.xres; height = ( rotation % 180 ) ? fb_vinfo.xres : fb_vinfo.yres; Dout( dc::notice, "- using size (after rotating) " << size.width () << "x" << size.height () ); #ifdef ECORE_FB_NO_ROTATION_BUG //FIXME EFL BUG: initial rotation is not taken into account for evas calculation _ee = ecore_evas_fb_new( const_cast<char*>( display ), rotation, 50, 50 ); #else _ee = ecore_evas_fb_new( const_cast<char*>( display ), 0, 50, 50 ); // start with rotation 0 to workaround bug #endif ecore_evas_fullscreen_set( _ee, 1 ); // fullscreen is default to get auto resize on changing rotation ecore_evas_rotation_set( _ee, rotation ); // force resize #else printf("FB engine not enabled\n"); #endif } ecore_evas_title_set( _ee, Application::getInstance()->getName().c_str() ); ecore_evas_borderless_set( _ee, 0 ); _canvas = Evasxx::Canvas::wrap (ecore_evas_get( _ee )); /* Set up magic object back link */ ecore_evas_data_set( _ee, "obj_c++", this ); /* Set up default callbacks */ setEventEnabled( Resize, true ); setEventEnabled( DeleteRequest, true ); }
int main(int argc, char **argv) { ecore_init(); ecore_evas_init(); edje_init(); char * display = getenv("DISPLAY"); if (! display) display = (char *)strdup(":0.0"); if (!e_lib_init(display)) { fprintf(stderr, "Cannot connect to a running e17\n"); edje_shutdown(); ecore_shutdown(); return 1; } ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, WIDTH, HEIGHT); ecore_evas_title_set(ee, "eThemes (connecting...)"); ecore_evas_name_class_set(ee, "eThemes", "eThemes"); ecore_evas_show(ee); evas = ecore_evas_get(ee); background = edje_object_add(evas); evas_object_move(background, 0,0); evas_object_resize(background, barwidth, HEIGHT); evas_object_show(background); e_preview_thumb_init(); preview = e_preview_new(evas); preview_clip = evas_object_rectangle_add(evas); evas_object_move(preview_clip, barwidth, 0); evas_object_resize(preview_clip, WIDTH - barwidth, HEIGHT); evas_object_show(preview_clip); evas_object_clip_set (preview, preview_clip); last_button = NULL; ecore_evas_callback_resize_set(ee, _resize_cb); ecore_event_handler_add(E_RESPONSE_THEME_GET, ethemes_init, NULL); e_lib_theme_get("theme"); ecore_main_loop_begin(); /* free ethemes */ int n = eina_list_count(themes); for ( n -= 1; n>=0; n--) { Etheme_Object * o; o = eina_list_nth(themes, n); etheme_free(o); } eina_list_free(themes); /* free canvas objects */ evas_object_del(container); evas_object_del(container_outer); evas_object_del(b_apply); evas_object_del(b_default); evas_object_del(b_exit); evas_object_del(background); evas_object_del(preview); evas_object_del(preview_clip); if (selected_theme) free(selected_theme); if (default_theme) free(default_theme); edje_shutdown(); ecore_shutdown(); return 0; }
//Update the gui infos about the current media file void eclair_update_current_file_info(Eclair *eclair, Evas_Bool force_cover_update) { char *window_title; char *artist_title_string; const char *filename; Eclair_Media_File *current_file; char string[10]; if (!eclair) return; current_file = eclair_playlist_current_media_file(&eclair->playlist); //Update the name of the current file only if video is created if (eclair->video.video_object) { if (current_file) { if ((artist_title_string = eclair_utils_mediafile_to_artist_title_string(current_file))) { eclair_all_windows_text_set(eclair, "current_media_name", artist_title_string); free(artist_title_string); } else if (current_file->path && eclair_utils_uri_is_mrl(current_file->path)) eclair_all_windows_text_set(eclair, "current_media_name", current_file->path); else if (current_file->path && (filename = ecore_file_file_get(current_file->path))) eclair_all_windows_text_set(eclair, "current_media_name", filename); else eclair_all_windows_text_set(eclair, "current_media_name", "No media opened"); } else eclair_all_windows_text_set(eclair, "current_media_name", "No media opened"); } //Update current media file data if (current_file) { if (current_file->samplerate > 0) { snprintf(string, 10, "%d", current_file->samplerate / 1000); eclair_all_windows_text_set(eclair, "samplerate", string); } else eclair_all_windows_text_set(eclair, "samplerate", "-"); if (current_file->bitrate > 0) { snprintf(string, 10, "%d", current_file->bitrate); eclair_all_windows_text_set(eclair, "bitrate", string); } else eclair_all_windows_text_set(eclair, "bitrate", "-"); } else { eclair_all_windows_text_set(eclair, "samplerate", "-"); eclair_all_windows_text_set(eclair, "bitrate", "-"); } //Update the title of the video window if (eclair->video.video_window) { if (current_file && current_file->path) { window_title = malloc(strlen(current_file->path) + strlen("eclair: ") + 1); sprintf(window_title, "eclair: %s", current_file->path); ecore_evas_title_set(eclair->video.video_window, window_title); free(window_title); } else ecore_evas_title_set(eclair->video.video_window, "eclair"); } //Update the current cover if (current_file) { if (current_file->cover_path || (current_file->cover_path = eclair_cover_file_get_from_local(&eclair->cover_manager, current_file->artist, current_file->album, current_file->path))) eclair_gui_cover_set(eclair, current_file->cover_path, force_cover_update); else eclair_gui_cover_set(eclair, NULL, force_cover_update); } else eclair_gui_cover_set(eclair, NULL, force_cover_update); }
int main (int argc, char * argv[]) { Edvi_Device *device; Edvi_Property *property; Edvi_Document *document; Edvi_Page *page; Ecore_Evas *ee; Evas *evas; Evas_Object *o; char *param_kpathsea_mode = "cx"; int page_number; int width; int height; if (argc < 3) { printf ("\nUsage: %s file.dvi page_number\n\n", argv[0]); return EXIT_FAILURE; } printf ("[DVI] version : %s\n", edvi_version_get ()); if (!edvi_init (300, param_kpathsea_mode, 4, 1.0, 1.0, 0, 255, 255, 255, 0, 0, 0)) { return EXIT_FAILURE; } device = edvi_device_new (edvi_dpi_get (), edvi_dpi_get ()); if (!device) { goto shutdown; } property = edvi_property_new (); if (!property) { goto free_device; } edvi_property_property_set (property, EDVI_PROPERTY_DELAYED_FONT_OPEN); document = edvi_document_new (argv[1], device, property); if (!document) { goto free_property; } sscanf (argv[2], "%d", &page_number); page = edvi_page_new (document); if (!page) { goto free_document; } edvi_page_page_set (page, page_number); edvi_page_size_get (page, &width, &height); if (!ecore_init()) { goto free_page; } if (!ecore_evas_init()) { goto shutdown_ecore; } ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, width, height); /* these tests can be improved... */ if (!ee) { printf ("Can not find Software X11 engine. Trying DirectDraw engine...\n"); ee = ecore_evas_software_ddraw_new (NULL, 0, 0, width, height); if (!ee) { goto shutdown_ecore_evas; } } ecore_event_handler_add (ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); ecore_evas_callback_delete_request_set (ee, app_delete_request); ecore_evas_title_set (ee, "Evas Dvi Test"); ecore_evas_name_class_set (ee, "evas_dvi_test", "test_evas_dvi"); ecore_evas_callback_resize_set (ee, app_resize); ecore_evas_show (ee); evas = ecore_evas_get (ee); o = evas_object_image_add (evas); evas_object_move (o, 0, 0); _evas_object_bg_set (o, 255, 255, 255); edvi_page_render (page, device, o); evas_object_show (o); ecore_main_loop_begin (); ecore_evas_shutdown (); ecore_shutdown (); evas_shutdown (); edvi_page_delete (page); edvi_document_delete (document); edvi_property_delete (property); edvi_device_delete (device); edvi_shutdown (); return EXIT_SUCCESS; shutdown_ecore_evas: ecore_evas_shutdown (); shutdown_ecore: ecore_shutdown (); free_page: edvi_page_delete (page); free_document: edvi_document_delete (document); free_property: edvi_property_delete (property); free_device: edvi_device_delete (device); shutdown: edvi_shutdown (); return EXIT_FAILURE; }
int main(int argc, char *argv[]) { app_t app; int i; Evas_Object *o; ecore_init(); ecore_app_args_set(argc, (const char **)argv); ecore_evas_init(); edje_init(); edje_frametime_set(1.0 / 30.0); memset(&app, 0, sizeof(app)); app.ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, WIDTH, HEIGHT); ecore_evas_data_set(app.ee, "app", &app); ecore_evas_title_set(app.ee, TITLE); ecore_evas_name_class_set(app.ee, WM_NAME, WM_CLASS); app.theme = THEME; for (i=1; i < argc; i++) if (strcmp (argv[i], "-fs") == 0) ecore_evas_fullscreen_set(app.ee, 1); else if (strncmp (argv[i], "-theme=", sizeof("-theme=") - 1) == 0) app.theme = argv[i] + sizeof("-theme=") - 1; else if (argv[i][0] != '-') app.infile = argv[i]; app.evas = ecore_evas_get(app.ee); app.edje_main = edje_object_add(app.evas); evas_data_attach_set(app.evas, &app); if (!edje_object_file_set(app.edje_main, app.theme, THEME_GROUP)) { fprintf(stderr, "Failed to load file \"%s\", part \"%s\".\n", app.theme, THEME_GROUP); return 1; } evas_object_move(app.edje_main, 0, 0); evas_object_resize(app.edje_main, WIDTH, HEIGHT); app.e_box = e_box_add(app.evas); e_box_orientation_set(app.e_box, 0); e_box_homogenous_set(app.e_box, 0); e_box_align_set(app.e_box, 0.0, 0.5); edje_object_part_swallow(app.edje_main, "contents_swallow", app.e_box); evas_object_show(app.edje_main); evas_object_show(app.e_box); ecore_evas_show(app.ee); _populate(&app); app.scroll.initial_delay_ms = 750; app.scroll.accel_ms = 600; setup_gui_list(&app); ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); ecore_evas_callback_resize_set(app.ee, resize_cb); evas_object_event_callback_add(app.edje_main, EVAS_CALLBACK_KEY_DOWN, key_down, &app); evas_object_focus_set(app.edje_main, 1); o = edje_object_part_object_get(app.edje_main, "back_button"); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, mouse_down_back_button, &app); ecore_main_loop_begin(); return 0; }