Программирование GUI в OI

 
Libroom Forum IndexOpenInkpot
AuthorMessage

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1246


Location: Украина. Харьков

Posted: 15.01.2011 01:57    

Добрый день.
Собственно сабж.
Вот хочу попробовать портировать свою программу в OI. Азбуки пока у меня нет, так что экспериментировать буду на десктопе. Добрые люди подсказали что на OI используется EFL. Поставил себе из исходников такие либы:
eet,embrio,ecore,edjle,evas,eina. Простенький примерчик на отрисовочку в окошке векторных объектов заработал:

Code:

    //We set some window attributes and make the wrapper visible
    ecore_evas_title_set(ecore_evas, "Example Application");
    ecore_evas_name_class_set(ecore_evas, "testapp", "Testapp");
    ecore_evas_show(ecore_evas);

    //Get the pointer to the canvas and add tan object
    evas = ecore_evas_get(ecore_evas);
    bg = evas_object_rectangle_add(evas);
    evas_object_color_set(bg, 255, 255, 255, 255); // white bg
    evas_object_move(bg, 100, 100);                    // at origin
    evas_object_resize(bg, 100, 100);         // covers full canvas
    evas_object_show(bg);

    r2 = evas_object_rectangle_add(evas);
    evas_object_color_set(r2, 0, 128, 0, 128); // 50% opaque green
    evas_object_move(r2, 150, 150);
    evas_object_resize(r2, 100, 100);
    evas_object_show(r2);

    //Starting the main application loop
    ecore_main_loop_begin();


но не совсем понятно, куда дальше двигаться. Вот собственно что мне нужно:
1. Отображение на екране выпадающего меню по нажатию кнопки и обработка событий с этим меню связанных;
2. Рисование на екране текста выбранным шрифтом;
3. Рисование на экране линий;
4. Обработка клавиш.

Подскажите пожалуйста с какую сторону двигаться и какая библиотека в OI отвечает за указанную функциональность.


Last edited by sergeyvl on 15.01.2011 19:24; edited 1 time in total
 
View user's profile ^

lunohod
Член клуба The eBook

Член клуба The eBook



Joined: 10 Jan 2007
Posts: 4283


Location: Stuttgart, Germany

Posted: 15.01.2011 03:28    

Надо использовать библиотеку libeoi: http://git.openinkpot.org/libeoi.git/
Там есть и средства обработки кнопок и echocebox (типа list widget).
Вот, например, простое приложение: http://git.openinkpot.org/language-selector.git/tree/src/language-sele ctor.c

Для 2. и 3. стоит ознакомиться с edje. Вот пример другого простого приложения: http://git.openinkpot.org/emessage.git/tree/themes/emessage.edc , http://git.openinkpot.org/emessage.git/tree/src/emessage.c

Также можно создать evas_object_image и получить из него указатель на буфер с пикселами и рисовать туда руками.


Для разработки советую воспользоваться удобной штукой http://openinkpot.org/wiki/Documentation/BuildEnvironmentJhbuild
_________________
V3, n516, PRS-505, iLiad, eSlick, Samsung E60, K3, K4NT, Onyx M90, PB 912, Kobo Mini
 
View user's profile ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1246


Location: Украина. Харьков

Posted: 15.01.2011 11:37    

lunohod, Спасибо за полезную информацию! Без твоей помощи я бы наверное долго курил бы в c этими вещами.

Начал со сборки окружения с jhbuild. Тут возникло несколько проблем:

Code:
./jhbuild build libeoi


1. По умолчанию он хочет ставить все в /opt/gnome. Так как запускаюсь не из под рута, то он выдает ошибку. Исправил в defaults.jhbuildrc -> prefix = '/home/serg/Development/OI'

2. При установке некоторых зависимостей возникали проблемы - пришлось доставлять libxcb-xxx-dev в убунте руками. Там их около 20. Точно не знал какие нужны - поставил все.

В общем libeoi поставил, скомпилировал и тестовый примерчик со списочком языков. Запустил его, но вот засада:

Изображение очень искажено. По высоте - занимает почти все окно. Но по ширине - только его треть. Очень сжато по оси X. То же самое - увидел когда поставил epuzzles.

Help!
 
View user's profile ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1246


Location: Украина. Харьков

Posted: 27.01.2011 19:56    

Quote:

Изображение очень искажено. По высоте - занимает почти все окно. Но по ширине - только его треть. Очень сжато по оси X. То же самое - увидел когда поставил epuzzles.


Я застрял на этом. Идей никаких нет. Вероятно дело в libeoi. Копаться в ее недрах щас времени особо нету. Если кто знает, помогите!
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile ^

lunohod
Член клуба The eBook

Член клуба The eBook



Joined: 10 Jan 2007
Posts: 4283


Location: Stuttgart, Germany

Posted: 27.01.2011 20:20    

sergeyvl

Запусти Xephyr :

Xephyr :1 -noxv -nodri -ac -screen 600x800 -grayscale -dpi 200 -noreset -cc 0x22

А потом при старте гуёвых приложений указывай DISPLAY=:1
_________________
V3, n516, PRS-505, iLiad, eSlick, Samsung E60, K3, K4NT, Onyx M90, PB 912, Kobo Mini
 
View user's profile ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1246


Location: Украина. Харьков

Posted: 27.01.2011 22:12    

lunohod

Большое тебе человеческое спасибо! Заработало.

Запустил epuzzles. Курсорные клавиши работают. Но вот странно, в некоторых играх клавиша "вниз" не работает. Пишет на консоль "No key for Down". (Например Solo, Slant, ...). Буду попутно с этим разбираться.
 
View user's profile ^
Libroom Forum IndexOpenInkpotAll times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021