OberonCore
https://forum.oberoncore.ru/

Графический интерфейс BlackBox для Linux
https://forum.oberoncore.ru/viewtopic.php?f=34&t=1538
Страница 3 из 7

Автор:  Иван Денисов [ Пятница, 23 Июль, 2010 16:57 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

QWERTYProgrammer писал(а):
divan писал(а):
Прилагаю картинку как BB сейчас выглядит на Ubuntu

Имеется ввиду BB работающий на Ubuntu под Wine?

да, это снимок BB 1.6 запущенного в Wine на Ubuntu 9.10 Karmic

Цитата:
А какие виджеты использоваться будут?
я так понял ГТК?
А редактор Glade?
если сделать редактор интерфейса не как в блекбоксе, то будет имхо не то...
и гтк научился уже нативно отображаться в макоси?


За основу надо брать QT, поскольку для свободного софта бесплатный, для коммерческого очень гибкий и индивидуальный подход как и у Микросистем (как понял из обсуждений на форуме), и главное коммерческий вариант существует в принципе.

Пока не обладаю достаточными для навыками и пониманием внутренней структуры BB, чтобы переписывать Hosts. Потихоньку в это въезжаю, но пока дилетант. Скачал sdk для qt, на досуге что-нибудь попробую. Но и ядро ведь пока не адаптированно под Linux как понял... Копаюсь понемножку в bb-revival-nix-0.1, но на форуме не очень обсуждается сейчас перенос, и Дмитрий тоже занят, не выкладывает нового пока.

Автор:  Alexey Veselovsky [ Понедельник, 26 Июль, 2010 21:20 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

divan писал(а):
За основу надо брать QT, поскольку для свободного софта бесплатный, для коммерческого очень гибкий и индивидуальный подход как и у Микросистем (как понял из обсуждений на форуме), и главное коммерческий вариант существует в принципе.

Оно бесплатный для свободного и не свободного софта в равной степени. LGPL же.

Поясню -- пишем закрытый сильно платный софт. Используем Qt. Покупать Qt мы не обязаны. Раскрывать исходники при этом тоже. Ибо LGPL.

Покупать Qt имеет смысл в двух случаях:
1) Хочется (сильно)модифицировать Qt (например как в kylix) и при этом не хочется публиковать оные модификации.
2) Хочется тех. поддержки от нокии.

Всё.

Замечу, что GTK это тоже LGPL.

Автор:  Иван Денисов [ Вторник, 27 Июль, 2010 01:32 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Отлично, а то QT тут уже обсуждали где-то и чуть было не откинули этот вариант сгоряча :) все на сайт нокиа! даешь кросплатформенность ГУИ BB на QT !

Автор:  Димыч [ Вторник, 27 Июль, 2010 03:06 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

divan писал(а):
Отлично, а то QT тут уже обсуждали где-то и чуть было не откинули этот вариант сгоряча :) все на сайт нокиа! даешь кросплатформенность ГУИ BB на QT !

Первые же грабли - принципиальное различие в работе со строками. См. QtPas. Удастся победить - остальное несложно.

Автор:  Валерий Лаптев [ Вторник, 27 Июль, 2010 07:47 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Я сейчас озабочен выбором гуевой библиотеки для С++. Поэтому малость в теме Гуя.
На выбор предлагаю:
Qt
vxWidget
Juce
Ultimate++
Кстати, все переносимые.
И для каждой библиотеки (которые включают не только гуй, но еще массу полезных вещей), есть своя интегрированная среда. А то и не одна.

Автор:  Alexey Veselovsky [ Вторник, 27 Июль, 2010 14:50 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Валерий Лаптев писал(а):
vxWidget

wxWidgets

Ещё можно посмотреть на fltk например и на FOX toolkit.

Но вообще, по моему, выбор прост: либо gtk, либо qt, либо x11.
Поясню почему: если мы хотим чтобы BB смотрелся (и ощущался, что важно!) родным в gnome и подобных, то следует выбрать gtk, если хотим чтобы он смотрелся и ощущался родным в kde, то следует взять Qt.

Если же мы не хотим зависимости от тяжелых плюсато-сишных либ, и хотим нечто максимально простое по исполнению, то следует работать напрямую с X11-протоколом. Возможно в т.ч. написать свою клиентскую либу для работы с ним, благо протокол простой. Кроме того, тут мы получаем максимум гибкости. Т.е. нет ограничений идиомами низлежащих высокоуровневых билиотек, как это будет в случае Qt и Gtk.

Автор:  MaximGB [ Вторник, 27 Июль, 2010 16:57 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Валерий Лаптев писал(а):
Я сейчас озабочен выбором гуевой библиотеки для С++. Поэтому малость в теме Гуя.
На выбор предлагаю:
Qt
vxWidget
Juce
Ultimate++
Кстати, все переносимые.
И для каждой библиотеки (которые включают не только гуй, но еще массу полезных вещей), есть своя интегрированная среда. А то и не одна.

Ещё есть не плохой http://www.fox-toolkit.org/

Автор:  Димыч [ Вторник, 27 Июль, 2010 18:07 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Alexey Veselovsky писал(а):
Валерий Лаптев писал(а):
vxWidget

wxWidgets

Ещё можно посмотреть на fltk например и на FOX toolkit.

Но вообще, по моему, выбор прост: либо gtk, либо qt, либо x11.
Поясню почему: если мы хотим чтобы BB смотрелся (и ощущался, что важно!) родным в gnome и подобных, то следует выбрать gtk, если хотим чтобы он смотрелся и ощущался родным в kde, то следует взять Qt.

Если же мы не хотим зависимости от тяжелых плюсато-сишных либ, и хотим нечто максимально простое по исполнению, то следует работать напрямую с X11-протоколом. Возможно в т.ч. написать свою клиентскую либу для работы с ним, благо протокол простой. Кроме того, тут мы получаем максимум гибкости. Т.е. нет ограничений идиомами низлежащих высокоуровневых билиотек, как это будет в случае Qt и Gtk.


Все верно.
Добавлю только несколько комментариев. Я рассматривал все перечисленные варианты.

Qt
Замечательная библиотека, очень целостная, «гладкая», если хотите. Объектная модель очень близка к ББ. Отличная подсистема 2D-графики. Что очень важно, есть полноценная реализация MDI-окон. Хорошая build-модель. Имеется полноценный(ая?) binding к FreePascal. LGPL.

Пока из всех тех экспериментов, что я делал - это лучший вариант.

wxWidgets

На момент начала работы была в наличии свободная лицензия.
Неплохая объектная модель, очень широкая библиотека. Хорошая документация. Качественный open-source продукт. Ожидаем версию 3.0, обещают много изменений.
Имеется binding к Haskell, положенный в основу привязки к ББ. На *nix системах отсутствует MDI (реализуется вкладками).

GTK

Вывернутая на изнанку модель ООП. Отсутствие MDI. Хотя в целом библиотека богатая.
Написано на C, относительно несложно сделать автоматизированное построение привязки.

X11

Заманчивый вариант, но его трудоемкость очень высока, несмотря на кажущуюся простоту. Своя отрисовка, также как, например, в JUCE или AGG – весьма нетривиальная задача.

FLTK, FOX и др.
В основном – отсутствует native look & feel и непонятно, как делать привязку.

---
Когда я начинал работу по созданию ГУИ, я допустил большую ошибку.
Я старался делать привязку ко всей библиотеке, с которой собирался работать. Теперь понимаю, что вполне достаточно тех нескольких функций (классов), которые предоставляются QtPas или часть из wxHaskell, которая была реализована.

К большому сожалению, в настоящее время не могу тратить сколь-нибудь серьезные ресурсы на эту работу, могу лишь сказать, что познакомившись с Qt поближе, считаю, что делать надо именно на Qt. С помощью QtPas получилось создавать окна, виджеты и пр., однако строго без текстов: любое обращение к тексту (установка заголовка, текста элемента или проста работа со строками) приводит к трапу.

Автор:  Димыч [ Вторник, 27 Июль, 2010 18:13 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Валерий Лаптев писал(а):
Я сейчас озабочен выбором гуевой библиотеки для С++. Поэтому малость в теме Гуя.
На выбор предлагаю:
Qt
vxWidget
Juce
Ultimate++
Кстати, все переносимые.
И для каждой библиотеки (которые включают не только гуй, но еще массу полезных вещей), есть своя интегрированная среда. А то и не одна.

Смотря что вам надо ;)
Больше всего мне пока нравится Qt, а наиболее интересной (с исследовательской точки зрения) показалась U++. Juce создавалась под весьма специфичные задачи, а потому и интерфейс там нисколько не native. Ну а wxWidgets исповедует принцип – везде родной интерфейс, тем и интересна (есть, правда, еще wxUniversal, но это – отдельная тема).

Автор:  Валерий Лаптев [ Вторник, 27 Июль, 2010 19:46 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Димыч писал(а):
Смотря что вам надо ;)
Больше всего мне пока нравится Qt, а наиболее интересной (с исследовательской точки зрения) показалась U++. Juce создавалась под весьма специфичные задачи, а потому и интерфейс там нисколько не native. Ну а wxWidgets исповедует принцип – везде родной интерфейс, тем и интересна (есть, правда, еще wxUniversal, но это – отдельная тема).

Ну, я уже понял, что с Qt знакомить надо по-любому.
И для разнообразия еще и с vxWidget, и U++ :)

Автор:  Alexey Veselovsky [ Вторник, 27 Июль, 2010 21:02 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Димыч писал(а):
Заманчивый вариант, но его трудоемкость очень высока, несмотря на кажущуюся простоту. Своя отрисовка, также как, например, в JUCE или AGG – весьма нетривиальная задача.

Стоп. У AGG принципиально другая задача, это не тулкит для GUI. Более того, при написании своего самостоятельного тулкита для BB, который использует только X11 отрисовывать нужно именно через AGG, благо порт AGG имеется в наличии.

Но да, над архитектурой подумать придется. Вот тут то и должн, по идее, показать себя ББ-подход во всей своей красе. Т.е. проявиться мощь должна его. В качестве архитектуры, скорости (по срокам) и качества (в т.ч. быстродействия) реализации.

Автор:  Иван Денисов [ Среда, 28 Июль, 2010 04:16 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Нравится идея с X11, это как-то правильно. Ведь в BB есть уже свой API для GUI и прогибаться под QT будет как-то неэффективно.

Автор:  Димыч [ Среда, 28 Июль, 2010 07:08 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

divan писал(а):
Нравится идея с X11, это как-то правильно. Ведь в BB есть уже свой API для GUI и прогибаться под QT будет как-то неэффективно.

:)
Ну что ж, если идея нравится — вперед, изучать протокол x11! А заодно и допиливать agg; советами помогу.
После оценки трудозатрат предлагаю вернуться к обсуждению вариантов qt и wxWidgets.

Автор:  Alexey Veselovsky [ Среда, 28 Июль, 2010 07:47 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Димыч писал(а):
divan писал(а):
Нравится идея с X11, это как-то правильно. Ведь в BB есть уже свой API для GUI и прогибаться под QT будет как-то неэффективно.

:)
Ну что ж, если идея нравится — вперед, изучать протокол x11! А заодно и допиливать agg; советами помогу.
После оценки трудозатрат предлагаю вернуться к обсуждению вариантов qt и wxWidgets.

Иногда трудозатраты лучше не оценивать :-)

Автор:  id_ler [ Четверг, 29 Июль, 2010 04:45 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Димыч писал(а):
divan писал(а):
Нравится идея с X11, это как-то правильно. Ведь в BB есть уже свой API для GUI и прогибаться под QT будет как-то неэффективно.
Ну что ж, если идея нравится — вперед, изучать протокол x11!
У авторов А. П. Полищук, С. А. Семериков есть пара книжек о Free Pascal под Linux. Одна из них «Программирование в X Window средствами Free Pascal».
Цитата:
Продолжая традиции многих изданий, посвященных программированию, начнем с программы, рисующей на экране строку "Hello, world!". В этом примере приведены основные шаги, необходимые для работы в X Window.


Вложения:
Пример.zip [1.68 КБ]
Скачиваний: 440

Автор:  id_ler [ Четверг, 29 Июль, 2010 04:47 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Недавно(2010г.) вышла книжка Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. «Free Pascal и Lazarus». Возможно, что в ней тоже есть что-то по этому вопросу.

Автор:  Димыч [ Четверг, 29 Июль, 2010 07:10 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Тогда уж XCB наверное...

Автор:  Alexey Veselovsky [ Четверг, 29 Июль, 2010 09:21 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Всё бы вам субпродукты...
Вот что нужно прочитать, чтобы понять что из себя X11 представляет и как оно работает: X Window System Protocol

Автор:  Димыч [ Четверг, 29 Июль, 2010 09:44 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Э... я про спуск на уровень самого протокола как-то не подумал.

мы не ищем легких решений? 8)

Автор:  Alexey Veselovsky [ Четверг, 29 Июль, 2010 10:04 ]
Заголовок сообщения:  Re: Графический интерфейс BlackBox для Linux

Димыч писал(а):
Э... я про спуск на уровень самого протокола как-то не подумал.

мы не ищем легких решений? 8)

В смысле? Где там сложные решения то? Протокол простой как топор. Реализовав его, мы имеем полностью прозрачную реализацию в терминах КП или Оберона.

Из внешних зависимостей у нас остается только транспортный протокол до X-сервера, это либо TCP либо Unix Domain Sockets (также известные как IPC-Socket). От них уже никуда не денешься.

PS. точнее реализовав не его, а необходимое нам подмножество протокола.

Кроме того, эта штука может быть полезна и вне проекта по переносу BB (как среды) под линукс. Т.е. ей могут пользоваться и "консольные" BB-приложения. Которые вроде как уже работают.

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