SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Программирование под  Maemo Маличенко Дмитрий СПБ ГУАП
План ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Что такое  Maemo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Какие есть версии ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Целевое устройство ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Программирование под  Maemo:  особенности ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Программирование под  Maemo:  инструменты ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Программирование под  Maemo:  связь с устройством ,[object Object],[object Object],[object Object],[object Object]
Работа в  scratchbox - 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Работа в  scratchbox - 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Простой пример ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Задаем имя программы Создаем главное окно программы Запуск главного цикла обработки событий
Как собрать в  Scratchbox ,[object Object],[object Object],[object Object],pkg-config –  возвращает пути к заголовочным файлам и к файлам библиотеки
Усложненный пример - 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Рисование в окне: функция  main ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Обработка сигнала при закрытии окна Создание области для рисования на все окно Добавляем обработчик события «перемещение указателя мыши» Указываем какие события хотим обрабатывать
Рисование в окне:  обработка событий static gboolean button_press_event( GtkWidget *widget, GdkEventButton *event ) {  if (event->button == 1 )   pressed=1; return TRUE;  }  static gboolean button_release_event( GtkWidget *widget, GdkEventButton *event ) {  if (event->button == 1 ) pressed=0; return TRUE;  } gboolean motion_event_callback (GtkWidget *widget, GdkEventMotion *event){ if (pressed) gdk_draw_line(widget->window,  widget->style->fg_gc[GTK_WIDGET_STATE (widget)],  x, y, event->x,event->y); x = event->x; y = event->y; return TRUE;  } Нарисовать линию используя стиль текущего окна Обновление координат
Усложненный пример - 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Работа с диалоговым окном int main (int argc, char **argv) { // Инициализационная часть . . . . table = gtk_table_new(3,3,TRUE); for (i=0;i<3;i++) { for (j=0;j<3;j++)  {   button = hildon_button_new_with_text (HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_VERTICAL, &quot; &quot;, NULL);   gtk_table_attach((GtkTable*)table, button, i,i+1,j,j+1 , GTK_EXPAND, GTK_EXPAND,0,0);   g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,   G_CALLBACK (button_clicked), NULL); } } gtk_container_add (GTK_CONTAINER (window),table); gtk_widget_show_all (GTK_WIDGET (window)); gtk_main (); return 0; } Выделенные аргументы: левый край кнопки правый край кнопки верхний край нижний край 0 1 2 3 1 2 3
Что еще не рассмотрено ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],библиотека LibConIC
Ссылки ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Спасибо за внимание!

Weitere ähnliche Inhalte

Andere mochten auch

Network marketing new
Network marketing newNetwork marketing new
Network marketing new
retrofaz
 
Beneficiile pe care le aduc blogurile in lumea afacerilor
Beneficiile pe care le aduc blogurile in lumea afacerilorBeneficiile pe care le aduc blogurile in lumea afacerilor
Beneficiile pe care le aduc blogurile in lumea afacerilor
crissa79
 
tugasan 1 KPT 6044 powerpoint
tugasan 1 KPT 6044 powerpointtugasan 1 KPT 6044 powerpoint
tugasan 1 KPT 6044 powerpoint
sitimariyam_86
 
2014 Protex Central Corporate Capabilities Presentation
2014 Protex Central Corporate Capabilities Presentation2014 Protex Central Corporate Capabilities Presentation
2014 Protex Central Corporate Capabilities Presentation
sminer7
 
Digital design assignment1
Digital design assignment1Digital design assignment1
Digital design assignment1
JShep79
 
แผนการจัดการเรียนรู้ที่ 3 เรื่อง แผนที่ดาว
แผนการจัดการเรียนรู้ที่   3 เรื่อง แผนที่ดาวแผนการจัดการเรียนรู้ที่   3 เรื่อง แผนที่ดาว
แผนการจัดการเรียนรู้ที่ 3 เรื่อง แผนที่ดาว
Kook Su-Ja
 

Andere mochten auch (15)

Network marketing new
Network marketing newNetwork marketing new
Network marketing new
 
ROI Drivers for a StartWithXML Production Process
ROI Drivers for a StartWithXML Production ProcessROI Drivers for a StartWithXML Production Process
ROI Drivers for a StartWithXML Production Process
 
Pp35
Pp35Pp35
Pp35
 
Martuni tourist attractions
Martuni tourist attractionsMartuni tourist attractions
Martuni tourist attractions
 
Beneficiile pe care le aduc blogurile in lumea afacerilor
Beneficiile pe care le aduc blogurile in lumea afacerilorBeneficiile pe care le aduc blogurile in lumea afacerilor
Beneficiile pe care le aduc blogurile in lumea afacerilor
 
Facebook vs google
Facebook vs googleFacebook vs google
Facebook vs google
 
tugasan 1 KPT 6044 powerpoint
tugasan 1 KPT 6044 powerpointtugasan 1 KPT 6044 powerpoint
tugasan 1 KPT 6044 powerpoint
 
2014 Protex Central Corporate Capabilities Presentation
2014 Protex Central Corporate Capabilities Presentation2014 Protex Central Corporate Capabilities Presentation
2014 Protex Central Corporate Capabilities Presentation
 
Digital design assignment1
Digital design assignment1Digital design assignment1
Digital design assignment1
 
Rachel Proudfoot JIBS-RLUK event July 2012
Rachel Proudfoot JIBS-RLUK event July 2012Rachel Proudfoot JIBS-RLUK event July 2012
Rachel Proudfoot JIBS-RLUK event July 2012
 
Logo progtv x internet
Logo progtv x internetLogo progtv x internet
Logo progtv x internet
 
แผนการจัดการเรียนรู้ที่ 3 เรื่อง แผนที่ดาว
แผนการจัดการเรียนรู้ที่   3 เรื่อง แผนที่ดาวแผนการจัดการเรียนรู้ที่   3 เรื่อง แผนที่ดาว
แผนการจัดการเรียนรู้ที่ 3 เรื่อง แผนที่ดาว
 
Fathers day 2013
Fathers day 2013Fathers day 2013
Fathers day 2013
 
Доклад "Создание юзабилити-отдела компании – как со всеми договориться. Опыт ...
Доклад "Создание юзабилити-отдела компании – как со всеми договориться. Опыт ...Доклад "Создание юзабилити-отдела компании – как со всеми договориться. Опыт ...
Доклад "Создание юзабилити-отдела компании – как со всеми договориться. Опыт ...
 
QR Code
QR CodeQR Code
QR Code
 

Ähnlich wie Программирование под Maemo

Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)
Ontico
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кода
Andrey Karpov
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложений
Michael Karpov
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
Michael Karpov
 
белогорцев глеб белогорцев
белогорцев глеб белогорцевбелогорцев глеб белогорцев
белогорцев глеб белогорцев
rit2010
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest
 

Ähnlich wie Программирование под Maemo (20)

Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кода
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложений
 
Internationalization and localization of the python applications with gettext...
Internationalization and localization of the python applications with gettext...Internationalization and localization of the python applications with gettext...
Internationalization and localization of the python applications with gettext...
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
 
лек13 1
лек13 1лек13 1
лек13 1
 
лек13 1(1)
лек13 1(1)лек13 1(1)
лек13 1(1)
 
лр8
лр8лр8
лр8
 
белогорцев глеб белогорцев
белогорцев глеб белогорцевбелогорцев глеб белогорцев
белогорцев глеб белогорцев
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
X Window
X WindowX Window
X Window
 
Git for you
Git for youGit for you
Git for you
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
 
Lektsia 9
Lektsia 9Lektsia 9
Lektsia 9
 

Программирование под Maemo

  • 1. Программирование под Maemo Маличенко Дмитрий СПБ ГУАП
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Рисование в окне: обработка событий static gboolean button_press_event( GtkWidget *widget, GdkEventButton *event ) { if (event->button == 1 ) pressed=1; return TRUE; } static gboolean button_release_event( GtkWidget *widget, GdkEventButton *event ) { if (event->button == 1 ) pressed=0; return TRUE; } gboolean motion_event_callback (GtkWidget *widget, GdkEventMotion *event){ if (pressed) gdk_draw_line(widget->window, widget->style->fg_gc[GTK_WIDGET_STATE (widget)], x, y, event->x,event->y); x = event->x; y = event->y; return TRUE; } Нарисовать линию используя стиль текущего окна Обновление координат
  • 16.
  • 17. Работа с диалоговым окном int main (int argc, char **argv) { // Инициализационная часть . . . . table = gtk_table_new(3,3,TRUE); for (i=0;i<3;i++) { for (j=0;j<3;j++) { button = hildon_button_new_with_text (HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_VERTICAL, &quot; &quot;, NULL); gtk_table_attach((GtkTable*)table, button, i,i+1,j,j+1 , GTK_EXPAND, GTK_EXPAND,0,0); g_signal_connect (G_OBJECT (button), &quot;clicked&quot;, G_CALLBACK (button_clicked), NULL); } } gtk_container_add (GTK_CONTAINER (window),table); gtk_widget_show_all (GTK_WIDGET (window)); gtk_main (); return 0; } Выделенные аргументы: левый край кнопки правый край кнопки верхний край нижний край 0 1 2 3 1 2 3
  • 18.
  • 19.