OberonCore
https://forum.oberoncore.ru/

DIA: BlackBox Component Builder 1.6 + GTK2
https://forum.oberoncore.ru/viewtopic.php?f=134&t=3535
Страница 6 из 6

Автор:  Иван Денисов [ Пятница, 28 Март, 2014 10:06 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2

Евгений Темиргалеев писал(а):
Иван Денисов писал(а):
Добавил пару ссылок:
http://gitlab.molpit.com/oberon/blackbo ... wikis/home
Правильная ссылка на материалы по методу [1]: http://oberoncore.ru/projects/bb16lin-simple-console

Поправил

Автор:  Иван Денисов [ Воскресенье, 04 Май, 2014 20:12 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2

Выверил какие пакеты нужно установить для запуска на Ubuntu 14.04
http://gitlab.molpit.com/oberon/blackbo ... is/install

Автор:  Kubanych [ Понедельник, 03 Ноябрь, 2014 20:46 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Здравствуйте, коллеги.

Что надо сделать, чтобы на BlackBox можно было программировать для Android?

Вроде, компилятор для ARM процессоров делали
viewtopic.php?f=137&t=5232
и присоединились к линуксовым GUI библиотекам?

Автор:  Иван Кузьмицкий [ Понедельник, 03 Ноябрь, 2014 23:06 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Kubanych писал(а):
Что надо сделать, чтобы на BlackBox можно было программировать для Android?
Возможно, из этого кое-что получится: http://wiki.oberon.org/odaymoscow2014

Журнал разработки: http://akastargazer.blogspot.ru (правда, там последняя запись датирована апрелем с.г., с той поры много воды утекло, скоро обновление, следите за новостями).

Автор:  Alexander Shiryaev [ Вторник, 04 Ноябрь, 2014 01:03 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Kubanych писал(а):
Здравствуйте, коллеги.

Что надо сделать, чтобы на BlackBox можно было программировать для Android?

Вроде, компилятор для ARM процессоров делали
viewtopic.php?f=137&t=5232
и присоединились к линуксовым GUI библиотекам?

Надо переписать компилятор BlackBox для ARM.

Автор:  Роман М. [ Вторник, 04 Ноябрь, 2014 16:56 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Kubanych писал(а):
Здравствуйте, коллеги.

Что надо сделать, чтобы на BlackBox можно было программировать для Android?

Вроде, компилятор для ARM процессоров делали
viewtopic.php?f=137&t=5232
и присоединились к линуксовым GUI библиотекам?

Нужно учитывать насколько вещей:
  1. Android программы исполняются в Dalvik VM или минуя виртуальную машину, напрямую через инструкции процессора. Если программа использует Dalvik, то не имеет значение на каком процессоре работает Android.
  2. Согласно ответам в Is Android OS only used for ARM CPUs?, Android поддерживает несколько архитектур, в том числе и Intel x86.
    Теоретически есть возможность "заточить" Блэкбокс под определённые модели устройств, работающих на Intel x86, но в таком случае будет поддерживаться лишь некоторый класс устройств, а не все.
  3. Переходим к графике. Тут всё непросто.
    Вариант первый: имеем байт-код Dalvik, соответственно, используем каркас, предоставляемый Android с его графическим стеком. Каркас BB (Host) тогда должен быть реализован на нём. Возможно, одной подсистемой Host здесь не обойтись.
    Вариант второй: пишем нативный код для конкретного процессора. Тогда можно использовать OpenGL ES или SDL. Все элементы интерфеса - формы и прочее - реализуем самостоятельно. Очень муторно, по-моему.

Могу ошибаться. Кто знает - поправьте.

Теперь вопрос: умеет ли BlackBox компилировать в байткод JVM? Если нет, то задача усложняется ещё больше.
Альтернативный вариант: выбрать компилятор GPCP и переделать каркас BlackBox для совместимости с GPCP.

И ещё:
GTK+ не перенесён ещё на Android.

Автор:  Дмитрий Дагаев [ Понедельник, 08 Декабрь, 2014 15:10 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Проблема с выпадающим (и контекстным) меню обнаруживается при удаленном запуске.
Если графическое приложение ./blackbox запускается на хосте, меню работает штатно (CentOS, 2.6.22.19).
При удаленном запуске (DISPLAY=...) на Windows машину через putty, XMing выпадающее (а также контекстное) меню появляется на короткое время и сразу исчезает. Обработка эта происходит внутри gtk, с обероном никак не связано.

Мои попытки прогуглить всякие варианты типа "gtk right-click menu problem" открыли неожиданно такой большой зоопарк глюков, связанных с меню, что диву даешься
Цитата:
gtk right click menu nightmare


Скажем, у Qt подобных проблем не наблюдалось.

Автор:  Иван Денисов [ Понедельник, 08 Декабрь, 2014 20:41 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Досаточно долгое время и не удаленно такой глюк имел место. Потом я поместил вызов этого меню через Actions и проблема была решена. Проверьте, а popup menu появляется при нажатии Shift + F10 ? Если да, то можно попробовать увеличить время задержки перед запуском меню по правому клику мыши.

Попобуйте заменить в HostMenus:
Код:
   PROCEDURE PopupMenu*;
   VAR a: ShowPopupMenu;
   BEGIN
      NEW(a);
      Services.DoLater(a, Services.now)
   END PopupMenu;

На
Код:
   PROCEDURE PopupMenu*;
   VAR a: ShowPopupMenu;
   BEGIN
      NEW(a);
      Services.DoLater(a, Services.Ticks() + 500)
   END PopupMenu;

Автор:  Дмитрий Дагаев [ Вторник, 09 Декабрь, 2014 10:22 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Меню появляется и сразу исчезает.
Если это главное меню, то по нажатии кнопки MenuActivate, PrepareMenu, появилось на 0.1 секунду, исчезло.
Если контекстное меню, то PopupMenu, (a: ShowPopupMenu) Do, появилось на 0.1 секунду, исчезло.

Без предложенной Вами, Иван, задержки в последнем случае (a: ShowPopupMenu) Do не вызывалось и не появлялось.

Проблема в том, что после того, как меню появилось, gtk управляет временем жизни и как-то сразу его схлопывает.

Автор:  Иван Денисов [ Понедельник, 27 Апрель, 2015 06:54 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Проверил на новой Ubuntu 15.04 x64, все работает гладко.

На всякий случай добавил на страницу проекта список зависимостей пакета.

Вложения:
ubuntu.png
ubuntu.png [ 136.33 КБ | Просмотров: 11330 ]

Автор:  Иван Денисов [ Понедельник, 27 Апрель, 2015 06:58 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Дмитрий Дагаев писал(а):
Меню появляется и сразу исчезает.
Если это главное меню, то по нажатии кнопки MenuActivate, PrepareMenu, появилось на 0.1 секунду, исчезло.
Если контекстное меню, то PopupMenu, (a: ShowPopupMenu) Do, появилось на 0.1 секунду, исчезло.

Без предложенной Вами, Иван, задержки в последнем случае (a: ShowPopupMenu) Do не вызывалось и не появлялось.

Проблема в том, что после того, как меню появилось, gtk управляет временем жизни и как-то сразу его схлопывает.

Дмитрий, а что с Shift+F10 у вас было?

Автор:  Дмитрий Дагаев [ Понедельник, 27 Апрель, 2015 09:14 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Меню появляется и сразу исчезает. Дело, похоже, не в Shift+F10, и не в Убунте.
Феномен наблюдается при удаленном запуске на Windows машину через putty, XMing.
Феномен не наблюдается при удаленном запуске на Linux машину.

Автор:  Дмитрий Дагаев [ Понедельник, 27 Апрель, 2015 09:45 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Я имею устойчивое желание провести переработку графического приложения (скажем, редактора для SCADA-системы). Предыдущее ПО на C++/Qt. И как-то не складывается переход на Обероны, ибо много проблем для доработки вылезают.
Например, мне нужен SDI. Пробовал "с кондачка" (HostWindows, открыть окошко под main-, туда загружать документы), сразу не взялось, к тому же правильное решение тянет за собой определенную переработку Framework'a. Плюс есть еще куча фичей Qt, которых непонятно, как делать - библиотека Qwt с трендами и т.д.

Прицеплять Qt тоже просто не получается, ибо там есть moc-компилятор, непонятно, что делать с методами и наследованием, и проч, и проч.

То, что ранее на форуме было, я читал. Приходится оставаться где-то "в С плюсах" :(

Автор:  Роман М. [ Понедельник, 27 Апрель, 2015 15:16 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Дмитрий Дагаев писал(а):
Я имею устойчивое желание провести переработку графического приложения (скажем, редактора для SCADA-системы). Предыдущее ПО на C++/Qt. И как-то не складывается переход на Обероны, ибо много проблем для доработки вылезают.
Например, мне нужен SDI. Пробовал "с кондачка" (HostWindows, открыть окошко под main-, туда загружать документы), сразу не взялось, к тому же правильное решение тянет за собой определенную переработку Framework'a. Плюс есть еще куча фичей Qt, которых непонятно, как делать - библиотека Qwt с трендами и т.д.

Прицеплять Qt тоже просто не получается, ибо там есть moc-компилятор, непонятно, что делать с методами и наследованием, и проч, и проч.

То, что ранее на форуме было, я читал. Приходится оставаться где-то "в С плюсах" :(

Наиболее проработанные решения по традиционному GUI ПО есть у предшественников Оберона.
В частности, Free Pascal позволяет работать как с LCL(Lazarus Component Library), так и напрямую с библиотекой GTK+.
Хотя с последней можно работать и из семества языков Оберон, в итоге всё будет пронизано вызовами средств модуля SYSTEM для работы с небезопасными операциями над структурами данных, поскольку в библиотеке GTK+ эмулируется ООП.

Как вариант, GNU Modula-2
Есть даже такие относительно свежие новости:
Цитата:
01/28/2015
Binary packages of GNU Modula-2 ready for installation are now available for Debian Jessie which is the testing distribution of Debian (at the moment). Simple install instructions are part of the announcement posted by Gaius Mulley.

Автор:  Иван Кузьмицкий [ Понедельник, 27 Апрель, 2015 15:20 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Роман М. писал(а):
В частности, Free Pascal позволяет работать как с LCL(Lazarus Component Library), так и напрямую с библиотекой GTK+.
Хотя с последней можно работать и из семества языков Оберон, в итоге всё будет пронизано вызовами средств модуля SYSTEM для работы с небезопасными операциями над структурами данных, поскольку в библиотеке GTK+ эмулируется ООП.

Как вариант, GNU Modula-2
Есть даже такие относительно свежие новости:
Цитата:
01/28/2015
Binary packages of GNU Modula-2 ready for installation are now available for Debian Jessie which is the testing distribution of Debian (at the moment). Simple install instructions are part of the announcement posted by Gaius Mulley.
Зачем на форуме Оберона искать решения в устаревших нотациях? Решительно не понимаю.

Автор:  Дмитрий Дагаев [ Понедельник, 27 Апрель, 2015 15:50 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Роман М. писал(а):
В частности, Free Pascal позволяет работать как с LCL(Lazarus Component Library), так и напрямую

Я скачивал Free Pascal Qt4 Binding.
Дают libQt4Pas.so.5.2 и qt4.pas. Последний имеет описания классов и кодов
Код:
  QCoreApplicationH = class(QObjectH) end;
    QApplicationH = class(QCoreApplicationH) end;
function QApplication_create(argc: PInteger; argv: PPAnsiChar; AnonParam3: Integer = QT_VERSION): QApplicationH; cdecl; external Qt4PasLib name 'QApplication_create';
procedure QApplication_destroy(handle: QApplicationH); cdecl; external Qt4PasLib name 'QApplication_destroy';
function QApplication_create(argc: PInteger; argv: PPAnsiChar; GUIenabled: Boolean; AnonParam4: Integer = QT_VERSION): QApplicationH; cdecl; external Qt4PasLib name 'QApplication_create2';

Судя по всему, это нужно собрать в еще одну библиотеку (я с FPC не работал - просто не знаю как) libmyqt4.so, плюс взять libQt4Pas.so.5.2 и попробовать вызвать из Оберона с Qt через 2 "прокладки" :shock:

Автор:  Иван Денисов [ Понедельник, 27 Апрель, 2015 16:51 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Дмитрий Дагаев писал(а):
Я имею устойчивое желание провести переработку графического приложения (скажем, редактора для SCADA-системы). Предыдущее ПО на C++/Qt. И как-то не складывается переход на Обероны, ибо много проблем для доработки вылезают.
Например, мне нужен SDI. Пробовал "с кондачка" (HostWindows, открыть окошко под main-, туда загружать документы), сразу не взялось, к тому же правильное решение тянет за собой определенную переработку Framework'a. Плюс есть еще куча фичей Qt, которых непонятно, как делать - библиотека Qwt с трендами и т.д.

Прицеплять Qt тоже просто не получается, ибо там есть moc-компилятор, непонятно, что делать с методами и наследованием, и проч, и проч.

То, что ранее на форуме было, я читал. Приходится оставаться где-то "в С плюсах" :(


Да, тут есть проблема. SDI мне тоже нужен будет, тут у Ивана К. есть опыт но в Windows версии. Пройдет еще много времени, пока будет сделан переключаемый модуль Windows. Про элементы управления тоже согласен, много накладных ресурсов, чтобы это доделать. Я пока копаюсь, чтобы в простом поле ввода удаление символов работало :)

Автор:  Роман М. [ Вторник, 28 Апрель, 2015 14:13 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Предлагаю обсудить вопросы по межплатформному GUI в отдельной теме, чтобы не засорять данную.

Автор:  sasha-kulov [ Понедельник, 30 Ноябрь, 2015 11:17 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

На всякий случай добавил на страницу проекта список зависимостей пакета.

Добрый день, Иван.
Ссылка :
Скачать последнюю версию из хранилища
пока тоже не работает.
Посмотрите, пожалуйста.

Саша Кулов

Автор:  Иван Денисов [ Понедельник, 30 Ноябрь, 2015 16:48 ]
Заголовок сообщения:  Re: DIA: BlackBox Component Builder 1.6 + GTK2

Спасибо, тут тоже переправил com на org. Теперь ссылка работает.

Страница 6 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/