Tizen UIFW - EFL

  • View
    977

  • Download
    7

Embed Size (px)

Text of Tizen UIFW - EFL

  • Samsung Electronics

    Software R&D Center

    UI!! EFL

  • Copyright 2014 Samsung Electronics, Co., Ltd. All rights reserved. 2

    Window

  • EFL ?

    Enlightenment Foundation Libraries

    Enlightenment Graphical User Interface Toolkit

  • Enlightenment

    Window Manager + EFL

    (, , BSD )

    UIFW

  • Enlightenment Window Manager

    Compositor, File Manager, App Launcher, Wallpaper

    Bodhi

    Elive

    HUMANity

    Macpup

    MoonOS

    OpenGEU

    Pentoo

    PCLinuxOS

    Sabayon

    Unite17

    Yellow Dog

  • EFL

    EFL: Collection of EFL Core Libraries

    Eina: &

    Eo:

    Ector:

    Evas: /

    Ecore:

    Edje: GUI &

    Elementary:

    Elementary

    EFLECTOR

  • EFL

    GUI

    (, )

    IPC/

    3D

    /

  • EFL in Tizen?

  • ECORE :

    EVAS : /

    EDJE : GUI &

    ELEMENTARY :

    Today !!

  • ECORE

  • (Ecore)

    Event Driven Mainloop

    : http://egloos.zum.com/seoz/v/3827472

  • (Ecore)

    Event Driven Mainloop

    UI

    Block ()

  • EVAS /

  • / (Evas) Scene Graph

    , Glyph , , ,

    (Parital Rendering)

    OpenGL, Software, SIMD(MMX, SSE, SSE3, NEON)

    Retained Mode

    Drawing Command

    Idle enterer rendering

  • / (Evas)

    Automated update handling

    Start here

  • / (Evas)

    Automated update handling

    Next frame is here

  • / (Evas)

    Automated update handling

    Calculate actual update region deltas

  • / (Evas)

    Automated update handling

    Only draw updated regions

  • / (Evas)

    Automated update handling

    Result

  • EDJE GUI &

  • GUI & (Edje)

    Complex Graphical Design and Layout library

    EDC

    C GUI

    A graphical part: GUI Layout binary (.edc)

    A functionality: Executable logic binary (.c)

    .edc: Edje Text script file

    .edj: GUI layout binary

  • GUI & (Edje)

    collections { //A theme

    group { name: elm/naviframe/base/default; //A style of a theme

    images {

    image: naviframe_bg.png COMP; //Declare image resource to be used in this group

    image: naviframe_bg2.png COMP;

    }

    parts {

    part { name: base frame; //This base layout consists of one base frame part

    type: IMAGE;

    scale: 1; //Enable scailibility

    mouse_events: 0; //Disable mouse events

    description { state: default 0.0; //Default status of this base frame

    align: 0.5 0.5; //Align this part based on its group

    rel1 { relative: 0 0; offset: 0 0; } //Relative position (left top)

    rel2 { relative: 1 1; offset: -1 -1; } //Relative position (right bottom)

    image {

    normal: naviframe_bg.png //This part uses naviframe_bg.png image

    }

    }

    }

    }

    EDC Example

  • GUI & (Edje)

    .edc .cCompile-time

    Run-time .edjexecutable

    edje_cc compile

    Elm_layoutload

    Run

  • ELEMENTARY

  • (Elementary)

  • (Elementary)

    : , , , ,

    : Scroller, Layout, Box, Table, Grid

    / Scalability

    Look & Feel

    Configurable

  • (Elementary)

    Screen Scalable GUI

  • (Elementary)

    Changeable Theme

  • Configurable Device Profile Environment

    (Elementary)

    Wearable

    Mobile

  • (Elementary)

    Look & Feel

    system-theme

    app-theme

    Default Button style

    Customized Button style

    Basic Themes:

    /user/share/elementary/themes/tizen-default.edj

    Extension Theme:

    /opt/apps/org.tizen.app/data/app_theme.edj

  • EFL

    void create_base_gui(){

    /* Window */Evas_Object *win = elm_win_util_standard_add(PACKAGE, PACKAGE);

    /* Button */Evas_Object *btn = elm_button_add(win);elm_object_text_set(btn, Default");evas_object_smart_callback_add(btn, "clicked", btn_clicked_cb, NULL);evas_object_move(btn, 150, 300);evas_object_resize(btn, 400, 350);evas_object_show(btn);

    /* Image */Evas_Object *img = elm_image_add(btn);elm_image_file_set(img, "icon.png", NULL);elm_object_content_set(btn, img);

    evas_object_show(win);}

  • EFL

    void btn_clicked_cb(void *data, Evas_Object *obj, void *event_info){

    elm_object_text_set(obj, "Clicked!");}

  • EFL

    Source in Tizen

    https://review.tizen.org

    EFL : platform/upstream/efl

    Elementary : platform/upstream/elementary

    UI Practices

    https://developer.tizen.org/development/ui-practices/native-application/efl

    API reference

    https://developer.tizen.org/dev-

    guide/latest/org.tizen.native.mobile.apireference/EFL.html (EFL)

    https://developer.tizen.org/dev-

    guide/latest/org.tizen.native.mobile.apireference/Elementary.html (Elementary)

    https://developer.tizen.org/development/ui-practices/native-application/eflhttp://developer.tizen.org/dev-guide/latest/org.tizen.native.mobile.apireference/EFL.htmlhttp://developer.tizen.org/dev-guide/latest/org.tizen.native.mobile.apireference/Elementary.html

  • EFL

    Official : www.enlightenment.org

    SCM : phab.enlightenment.org

    : lists.sourceforge.net/lists/listinfo/enlightenment-dev

    : lists.sourceforge.net/lists/listinfo/enlightenment-users

    IRC

    : irc.freenode.net/6667

    : #e, #edevelop, #e.kr

    : git.enlightenment.org

    : www.enlightenment.org/docs

    EFL : efl.or.kr

    http://www.enlightenment.org/phab.enlightenment.orghttp://www.enlightenment.org/http://www.enlightenment.org/docsefl.or.kr

  • Q&A

  • Thank you