#include <stdio.h>
#include <ecore_x.h>

int main()
{
    ecore_x_init(0);
    Ecore_X_Screen* screen = ecore_x_default_screen_get();
    if (!screen) {
        printf("Error\n");
    }

    int w, h;
    ecore_x_screen_size_get(screen, &w, &h);
    printf("%d, %d\n", w, h);
    return 0;
}

ecore_x_init이 되어있지 않으면

ecore_x_default_screen은  crash가 난다.

신고

'Open Source > EFL' 카테고리의 다른 글

[EFL] EFL build on ubuntu (13.04)  (1) 2013.07.24
Simple event test(mouse down/focus) using Evas  (0) 2012.09.03
[ecore] screen size 얻기  (0) 2012.08.15
[Elementary] 기본 코드  (0) 2012.08.04
[EFL] How to build EFL on Ubuntu.  (0) 2012.02.21
SNAPSHOT of 2011/07/05  (0) 2011.07.06
Posted by 소혼
TAG ecore, EFL


Elementary widget들을 위한 토대가 되는 코드입니다.


- 기본 window를 하나 만들고(elm_win_add), 

   * 거기에 title을 추가하고(elm_win_title_set)

   * signal을 연결하고(evas_object_smart_callback_add)

   * 윈도우 종료시, 자동으로 해제되도록 설정한다.(elm_win_autodel_set)

- back ground widget 을 만들어(elm_bg_add),

  * weight를 EXPAND로 줘서 커질 수 있게 하고,

  * 색을 파란색으로 칠하고(elm_bg_color_set)

  * win이 resize될 때 리사이즈되도록 설정하고(elm_win_resize_object_add)

  * 보여준다.(evas_object_show)

- elm_run으로 loop를 돌리고,

- (elm_exit로 인해,) loop가 종료되면 elm_shutdown으로 elementary를 정리한다.



코드

#include <elementary.h드>
#include <stdio.h>

void on_done(void *userData, Evas_Object *webView, void *eventInfo)
{
    elm_exit();
}

int elm_main(int argc, char **argv)                                                     
{   
    Evas_Object* win;                                                                   
    win = elm_win_add(NULL, "sample", ELM_WIN_BASIC);                                   
    elm_win_title_set(win, "sample");                                                   
    evas_object_smart_callback_add(win, "delete,request", on_done, NULL);               
    elm_win_autodel_set(win, EINA_TRUE);                                                
    
    Evas_Object* bg = elm_bg_add(win);                                                  
    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);           
    elm_bg_color_set(bg, 0, 0, 255);
    elm_win_resize_object_add(win, bg);                                                 
    evas_object_show(bg);
    
    evas_object_resize(win, 400, 400);                                                  
    evas_object_show(win);
    
    elm_run();                                                                          
    elm_shutdown();
    return 0;
}

ELM_MAIN()
.

빌드 명령

gcc sample.cpp `pkg-config --cflags --libs elementary`


실행 결과



약간의 설명


신고

'Open Source > EFL' 카테고리의 다른 글

Simple event test(mouse down/focus) using Evas  (0) 2012.09.03
[ecore] screen size 얻기  (0) 2012.08.15
[Elementary] 기본 코드  (0) 2012.08.04
[EFL] How to build EFL on Ubuntu.  (0) 2012.02.21
SNAPSHOT of 2011/07/05  (0) 2011.07.06
EFL에서 자주 쓰는 환경 변수  (0) 2011.06.02
Posted by 소혼
1. get source code
svn co http://svn.enlightenment.org/svn/e

2. install related packages. (http://www.enlightenment.org/p.php?p=contribute&l=en)

sudo apt-get install build-essential automake libtool ccache zlib1g-dev libjpeg62-dev libfreetype6-dev libdbus-1-dev liblua5.1-0-dev g++ libxext-dev libxrender-dev libpng12-dev libxrandr-dev libfontconfig1-dev

sudo apt-get install autopoint

sudo apt-get install libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxfixes-dev libxfont-dev libxi-dev libxinerama-dev libxss-dev libxv-dev libtiff4-dev librsvg2-dev libfribidi-dev libcurl4-openssl-dev libexif-dev libiptcdata0-dev libxml2-dev libxcb-shape0-dev

3. install each package.
#!/bin/sh
set -e
sudo echo "touch"
PREFIX="/usr/elocal"
PROJECTS="eina eet PROTO/eobj evas evas_generic_loaders ecore embryo edje e_dbus efreet eeze e"
SITE="svn.enlightenment.org"
SVN="http://$SITE/svn/e/trunk"
OPT="--prefix=$PREFIX"

export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export PATH="$PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
for PROJ in $PROJECTS; do
  cd trunk/$PROJ
  make clean distclean || true
  cd -
done

for PROJ in $PROJECTS; do
  cd trunk/$PROJ
  svn update
  cd -
done

for PROJ in $PROJECTS; do
  echo "#######################################################"
  echo $PROJ

  cd trunk/$PROJ
  ./autogen.sh $OPT
  make
  sudo make install
  cd -
  sudo ldconfig
done


신고

'Open Source > EFL' 카테고리의 다른 글

[ecore] screen size 얻기  (0) 2012.08.15
[Elementary] 기본 코드  (0) 2012.08.04
[EFL] How to build EFL on Ubuntu.  (0) 2012.02.21
SNAPSHOT of 2011/07/05  (0) 2011.07.06
EFL에서 자주 쓰는 환경 변수  (0) 2011.06.02
[EFL] Enlightenment Foundation Libraries  (1) 2011.04.01
Posted by 소혼
TAG EFL.build
revision 번호를 확인했어야 하는데 깜빡하고 확인하지 못했습니다.
7월 5일 23시 30분쯤에 svn에서 가져온 버전입니다.

신고

'Open Source > EFL' 카테고리의 다른 글

[Elementary] 기본 코드  (0) 2012.08.04
[EFL] How to build EFL on Ubuntu.  (0) 2012.02.21
SNAPSHOT of 2011/07/05  (0) 2011.07.06
EFL에서 자주 쓰는 환경 변수  (0) 2011.06.02
[EFL] Enlightenment Foundation Libraries  (1) 2011.04.01
[EFL] 1. What is EFL?  (1) 2011.04.01
Posted by 소혼
EFL쪽을 볼 때, 자주 쓰는 환경변수인데 이름이 길어서인지, 머리가 나빠서인지 자주 까먹게 된다.

ECORE_EVAS_FPS_DEBUG : FPS를 출력할 수 있게 해준다.
ECORE_EVAS_ENGINE : 렌더링할 때 사용하는 graphic backend를 변경해준다.
ECORE_ERROR_ABORT : WARNING을 에러로 바꾸어준다.

ELM_ERROR_ABORT

http://docs.enlightenment.org/auto/eina/tutorial_log_page.html
EINA_LOG_LEVEL : eina 관련 로깅할때 쓴다. (가장 많이 씀)
사용법:
EINA_LOG_LEVEL=10 ./eina_test


export ECORE_IMF_MODULE=xim

export XMODIFIERS=@im=IBUS

신고

'Open Source > EFL' 카테고리의 다른 글

[EFL] How to build EFL on Ubuntu.  (0) 2012.02.21
SNAPSHOT of 2011/07/05  (0) 2011.07.06
EFL에서 자주 쓰는 환경 변수  (0) 2011.06.02
[EFL] Enlightenment Foundation Libraries  (1) 2011.04.01
[EFL] 1. What is EFL?  (1) 2011.04.01
[EFL] 3. Simple Application using Evas.  (0) 2011.03.16
Posted by 소혼
TAG EFL
목차

1. What is EFL?
2. How to build EFL.
3. Simple Application using Evas.
    a) Simple event test(mouse down/focus) using Evas
4. Simple Application using EDJE.
5. SImple Application using Elementary.
6. Simple Application with WebKit/EFL.



신고

'Open Source > EFL' 카테고리의 다른 글

SNAPSHOT of 2011/07/05  (0) 2011.07.06
EFL에서 자주 쓰는 환경 변수  (0) 2011.06.02
[EFL] Enlightenment Foundation Libraries  (1) 2011.04.01
[EFL] 1. What is EFL?  (1) 2011.04.01
[EFL] 3. Simple Application using Evas.  (0) 2011.03.16
[EFL/Eina] eina_unicode 예제.  (0) 2011.03.09
Posted by 소혼
TAG EFL
[목차로 이동] Enlightenment Foundation Libraries

참고 URL : http://gc8134.tistory.com/category/IT/LiMo/SLP/EFL
참고 URL2 : http://bunhere.tistory.com/8
참고 URL3 : http://en.wikipedia.org/wiki/Enlightenment_Foundation_Libraries

위 세 URL의 자료는 조금 지난 자료지만, EFL이 무엇인지를 알 수 있는 기초자료라고 볼 수 있다.

Enlightenment Foundataion Libraries, 일명 EFL을 설명하기 위해서는 먼저 Enlightenment를 알아야 하고, Enlightenment를 알기 위해서는 window manager라는 것을 알아야 한다.

window manager (http://en.wikipedia.org/wiki/Window_manager)
winddow manager란 간단히 말해 window를 관리하는 시스템 소프트웨어이다. window란 Graphical User interface의 화면을 구성하는 단위이다. 이러한 window들이 모니터상의 특정 위치에 놓여지기 위해서는 이를 관리하는 프로그램이 필요한데 이를 window manager라고 한다.

   * Enlightenment DR17

enlightenment도 이러한 window manager 의 하나이다.
그런데, 초창기의 window manager들은 window들을 관리하는데에만 초점을 맞추었지만, 데스크탑 환경과 툴킷들을 제공하기 시작했다.

enlightenment도 1997년도에 Carsten Haitzler에 의해 개발되었지만 2000년도부터 EFL이라는 라이브러리를 기반으로 완전히 다시 쓰여지고 있다.

EFL은 enlightenment를 제공하기 위한 기본 라이브러리이면서 동시에 enlightenment가 제공하는 데스크탑 환경과 툴킷을 위한 라이브러리들의 집합이라고 할 수 있다.

가장 리눅스 환경에서 많이 쓰고 있는 Gnome을 생각해보자.
Gnome은 window manager로서, 일반적으로 Metacity라는 window manager를 사용하고(Mutter에 의해 교체될거라곤 하지만), GTK+라는 툴킷을 사용하고 있다.
Metacity는 enlightenment에 GTK+는 EFL을 이루는 라이브러리 가운데 하나인 elementary에 대응된다고 볼 수 있다.(정확히 일치하지는 않지만.)

앞서 말한 것과 같이 EFL은 많은 라이브러리들의 집합이다.
그 중, Evas, Ecore, Eina는 EFL을 이루는 가장 근간이라고 할 수 있다.
신고

'Open Source > EFL' 카테고리의 다른 글

EFL에서 자주 쓰는 환경 변수  (0) 2011.06.02
[EFL] Enlightenment Foundation Libraries  (1) 2011.04.01
[EFL] 1. What is EFL?  (1) 2011.04.01
[EFL] 3. Simple Application using Evas.  (0) 2011.03.16
[EFL/Eina] eina_unicode 예제.  (0) 2011.03.09
eina_tiler vs cairo_region  (0) 2010.09.10
Posted by 소혼
TAG EFL

EFL의 가장 기본 구조인 Evas library만으로 이루어진 간단한 어플리케이션을 만들어 보았습니다.


컴파일은 아래와 같이 하면 됩니다.
gcc -c simple simple.c `pkg-config --cflags --libs evas ecore-evas`

#include <Evas.h>
#include <Ecore_Evas.h>
#include <stdio.h>

int main()
{
    Evas* evas;
    Ecore_Evas* window;
    Evas_Object* rect2;

    evas_init();
    ecore_init();
    ecore_evas_init();

    window = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
    evas = ecore_evas_get(window);
    ecore_evas_show(window);

    rect2 = evas_object_rectangle_add(evas);
    evas_object_color_set(rect2, 255, 0, 0,255);
    evas_object_move(rect2, 100, 100);
    evas_object_resize(rect2, 200, 200);
    evas_object_show(rect2);

    ecore_main_loop_begin();

    ecore_evas_shutdown();
    ecore_shutdown();
    evas_shutdown();

    return 0;
}

Evas는 Ecore와 더불에 EFL의 가장 중요한 라이브러리입니다. 
신고

'Open Source > EFL' 카테고리의 다른 글

[EFL] Enlightenment Foundation Libraries  (1) 2011.04.01
[EFL] 1. What is EFL?  (1) 2011.04.01
[EFL] 3. Simple Application using Evas.  (0) 2011.03.16
[EFL/Eina] eina_unicode 예제.  (0) 2011.03.09
eina_tiler vs cairo_region  (0) 2010.09.10
[EFL] 소스 코드를 받는 법  (0) 2010.03.18
Posted by 소혼
TAG EFL
Reference: http://docs.enlightenment.org/auto/eina/index.html

기다리던 eina_unicode가 들어갔다.
glib의 unicode와 사용 방법등 비교해봐야겠다.

Eina_Unicode 소스:
#include <Eina.h>

int main()
{
    const char* utf8 = "안녕하세요.";
    printf("utf8: %s / strlen(%s) = %d\n", utf8, utf8, strlen(utf8));
    Eina_Unicode *unicode;
    int len;
    unicode = eina_unicode_utf8_to_unicode(utf8, &len);

    printf("%d / %d\n", len, eina_unicode_strlen(unicode));
}


결과:
utf8: 안녕하세요. / strlen(안녕하세요.) = 16
6 / 6

신고

'Open Source > EFL' 카테고리의 다른 글

[EFL] 1. What is EFL?  (1) 2011.04.01
[EFL] 3. Simple Application using Evas.  (0) 2011.03.16
[EFL/Eina] eina_unicode 예제.  (0) 2011.03.09
eina_tiler vs cairo_region  (0) 2010.09.10
[EFL] 소스 코드를 받는 법  (0) 2010.03.18
[요약] An overview of EFL - 1  (1) 2010.01.10
Posted by 소혼
TAG eina, Unicode
cairo_region을 공부해볼 겸, eina_tiler와 cairo_region을 간단히 사용한 예제코드를 만들어보았다.

현재 eina_tiler에는 약간의 버그가 있는 것 같다.



신고

'Open Source > EFL' 카테고리의 다른 글

[EFL] 3. Simple Application using Evas.  (0) 2011.03.16
[EFL/Eina] eina_unicode 예제.  (0) 2011.03.09
eina_tiler vs cairo_region  (0) 2010.09.10
[EFL] 소스 코드를 받는 법  (0) 2010.03.18
[요약] An overview of EFL - 1  (1) 2010.01.10
EFL 관련 사이트  (0) 2009.08.28
Posted by 소혼
이전버튼 1 2 3 이전버튼

티스토리 툴바