Ada_Ru форум

Обсуждение языка Ада

GUI - пример на языке D.

Оставить новое сообщение

Сообщения

iZEN
GUI - пример на языке D.
2005-08-12 21:53:54

Приветствую.

На rsdn.ru случайно наткнулся на тему, где обсуждается платформо-независимый язык D и реализация GUI его средствами.

Вот взгляните, кому интересно:

http://rsdn.ru/Forum/Message.aspx?mid=1152810

Особенно впечатлил фреймворк Harmonia. Это "portable windowless" GUI framework engine со встроенным HTML-engine (вместо пресловутых XUL и XAML).

В принципе, неплохие идеи для GUI в Ада можно почерпнуть оттуда.

Hello iZEN,

 

Saturday, August 13, 2005, 12:53:54 AM, you wrote:

 

Приветствую.

На rsdn.ru случайно наткнулся на тему, где обсуждается

платформо-независимый язык D и реализация GUI его средствами.

Вот взгляните, кому интересно:

http://rsdn.ru/Forum/Message.aspx?mid=1152810

Особенно впечатлил фреймворк Harmonia. Это "portable windowless" GUI framework engine со встроенным HTML-engine (вместо пресловутых XUL и XAML).

В принципе, неплохие идеи для GUI в Ада можно почерпнуть оттуда.

 

Ага, можно глянянуть на их package tree:

http://www.terrainformatica.com/harmonia/map.htm

 

А D-язык - почти Ада в терминах C/C++/C#/Java синтаксиса :)

Неплохой язык. Но синтаксис Ады мне ближе и понятнее.

 

 

 

 

--

Best regards,

Vladyslav

iZEN wrote:

Приветствую.

На rsdn.ru случайно наткнулся на тему, где обсуждается платформо-независимый язык D и реализация GUI его средствами.

 

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

 

Я создам новую нить, что бы не путаться.

 

-- Vadim Godunko

 

Technoserv A/S

Rostov-on-Don, Russia

Hello Vadim,

 

Monday, August 15, 2005, 10:42:24 AM, you wrote:

 

iZEN wrote:

Приветствую.

На rsdn.ru случайно наткнулся на тему, где обсуждается

платформо-независимый язык D и реализация GUI его средствами.

 

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

А мне - идея использовать только голый холст и низкоуровненвые GDI функции для рисования своих контролов/виджетов - я сам подумывал(ю) об подобной реализации, но на базе openGL. Скорость - ВО! Компактность кода - ВО! Безглючность (можно достичь) - ВО! Одно плохо - вид уж очень "свой, особенный" на всех платформах один и тот-же получается, т.е. под разные платформы нужно свои скины присобачивать, чтоб юзер ниочем не догадаывался :( а так - идея достойная Ады - разработать нечто свое с упором на надоежнось, безопасность и т.д., опираясь только на ограниченый набор проверенных функций ОС.

 

 

--

Best regards,

Vladyslav

Vladyslav Kozlovskyy wrote:

 

А мне - идея использовать только голый холст и низкоуровненвые GDI

функции для рисования своих контролов/виджетов - я сам подумывал(ю) об

подобной реализации, но на базе openGL. Скорость - ВО! Компактность

кода - ВО! Безглючность (можно достичь) - ВО! Одно плохо - вид уж

очень "свой, особенный" на всех платформах один и тот-же получается,

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

ниочем не догадаывался :( а так - идея достойная Ады - разработать нечто

свое с упором на надоежнось, безопасность и т.д., опираясь только на

ограниченый набор проверенных функций ОС.

 

Я сам когда-то хотел подобную вещь сделать... Однако со временем передумал - слишком много задач решать придётся, а вероятность успешного результата близка к нулю. Если то, что получится будет достаточно полным и удобным, то оно не будет компактным, а безглючность - вообще не факт. Опять таки, безглючный код будет иметь значительно больший размер, чем глючный. :(

 

 

-- Vadim Godunko

 

Technoserv A/S

Rostov-on-Don, Russia

Hello teplouhov,

 

Tuesday, August 16, 2005, 5:14:15 PM, you wrote:

 

On Tue, 16 Aug 2005 09:10:33 +0400, Vadim Godunko

<godunko@...> wrote:

 

Vladyslav Kozlovskyy wrote:

 

А мне - идея использовать только голый холст и низкоуровненвые GDI функции для рисования своих контролов/виджетов - я сам подумывал(ю) об подобной реализации, но на базе openGL. Скорость - ВО! Компактность кода - ВО! Безглючность (можно достичь) - ВО! Одно плохо - вид уж очень "свой, особенный" на всех платформах один и тот-же получается, т.е. под разные платформы нужно свои скины присобачивать, чтоб юзер ниочем не догадаывался :( а так - идея достойная Ады - разработать нечто свое с упором на надоежнось, безопасность и т.д., опираясь только на ограниченый набор проверенных функций ОС.

 

Я сам когда-то хотел подобную вещь сделать... Однако со временем передумал - слишком много задач решать придётся, а вероятность успешного результата близка к нулю. Если то, что получится будет достаточно полным и удобным, то оно не будет компактным, а безглючность - вообще не факт. Опять таки, безглючный код будет иметь значительно больший размер, чем глючный. :(

 

А какие проблемы-то нынче?

Готовых либ и даже редакторов 3D(wings3d, кстати идет и на п1-75 без OpenGL ;) )

и под OpenGL нынче как грязи, 3х-мерная визуализация прикручивается в несколько строчек хоть куда...

 

Вот только чтобы простейшая менюшка просила карту с OpenGL мне например нафиг не надо, да я думаю и не только мне :)

Под OpenGL легко и 2D рисуется :) Быстро и кроссплатформенно :)

А нарисовать радиокнопку (две окружности) или checkbox - квадратик/две линии(крестик) - много ресурсов не надо :) EditBox (самая крутая весч (после tree и grid, конечно) занимает около 600 строк кода :) А кто-то говорил о тяжеловесности похожих библиотек :)

 

(кстати на голом канвасе написана львиная часть компонентов Delphi, кажись весь SWING, новая GUI Microsoft для .NET (Авалон, кажется), все HTML-ГУИПКИ. Так что эта идея еще не самая паршивая

 

 

А вот сделать это отдельно в виде чего-то вроде опционального

драйвера почему бы и нет? (ну и пускай делает кто-нить кому делать не фиг - опенсорсный проект и пускай развлекаются :) )

Если конечно его поддержка не будет требовать ничего от программиста при написании программы, иначе эти заморы идут лесом... (ну как

миниум в отдельный файл - пускай раскрашивают кому делать нефиг :) )

Не факт что подобный драйвер не будет иметь спроса. Особенно если он совместим по интерфейсам с нашем ГУ╡-билдером (да впрочем и с любым другим)

 

Тоесть если сделать описание меню в чем-то более высокоуровневом и платформонезависимом, то такие фокусы вполне возможны. Так-же как и более интересный(для меня :) ) вариант прикрутки вместо

этого графического барохла и текстового режима, и выносного пульта с несколькими кнопками и простейшим индикатором или совсем без него :)

И это надо

 

Vladimir

PS Кстати, может сделать эти всякие менюшки и гуи как надстройку над текстовыми коммандами?..

 

Мне эта идея Владимира близка, как никакая другая - всю жисть

проработав SQL-developerом режим

"ГУ╡ и чевото там" -> SQL-команда -> результат

считаю до сих пор самым прогрессивным! - гляньте: если делать все проги двухуровневыми, получаем такую штуку:

 

ГУИ/UI/TextUI/Дистанционный пульт/3dUIG/че душа пожелает

|

V

нажали "Ок" -> собрали (через &) символьную строку и имеем-с:

|

V

"команда" - просто текстовая строка

|

V

легкий парсер командной строки или чето слегка покруче (ежели надо) |

V

собсно - прога - исполнитель (сервер). Может быть хоть на Луне :О)

 

 

--

Best regards,

Vladyslav

On Tue, 16 Aug 2005 09:10:33 +0400, Vadim Godunko <godunko@...> wrote:

 

Vladyslav Kozlovskyy wrote:

 

А мне - идея использовать только голый холст и низкоуровненвые GDI

функции для рисования своих контролов/виджетов - я сам подумывал(ю) об

подобной реализации, но на базе openGL. Скорость - ВО! Компактность

кода - ВО! Безглючность (можно достичь) - ВО! Одно плохо - вид уж

очень "свой, особенный" на всех платформах один и тот-же получается,

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

ниочем не догадаывался :( а так - идея достойная Ады - разработать нечто

свое с упором на надоежнось, безопасность и т.д., опираясь только на

ограниченый набор проверенных функций ОС.

 

Я сам когда-то хотел подобную вещь сделать... Однако со временем

передумал - слишком много задач решать придётся, а вероятность успешного

результата близка к нулю. Если то, что получится будет достаточно полным

и удобным, то оно не будет компактным, а безглючность - вообще не факт.

Опять таки, безглючный код будет иметь значительно больший размер, чем

глючный. :(

 

А какие проблемы-то нынче?

Готовых либ и даже редакторов 3D(wings3d, кстати идет и на п1-75 без OpenGL ;) )

и под OpenGL нынче как грязи, 3х-мерная визуализация прикручивается

в несколько строчек хоть куда...

 

Вот только чтобы простейшая менюшка просила карту с OpenGL мне например

нафиг не надо, да я думаю и не только мне :)

 

А вот сделать это отдельно в виде чего-то вроде опционального

драйвера почему бы и нет? (ну и пускай делает кто-нить кому делать

не фиг - опенсорсный проект и пускай развлекаются :) )

Если конечно его поддержка не будет требовать ничего от программиста

при написании программы, иначе эти заморы идут лесом... (ну как

миниум в отдельный файл - пускай раскрашивают кому делать нефиг :) )

 

Тоесть если сделать описание меню в чем-то более высокоуровневом

и платформонезависимом, то такие фокусы вполне возможны. Так-же

как и более интересный(для меня :) ) вариант прикрутки вместо

этого графического барохла и текстового режима, и выносного пульта

с несколькими кнопками и простейшим индикатором или совсем без него :)

 

Vladimir

PS Кстати, может сделать эти всякие менюшки и гуи как надстройку

над текстовыми коммандами?..

-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

Vladyslav Kozlovskyy wrote:

 

Под OpenGL легко и 2D рисуется :) Быстро и кроссплатформенно :)

А нарисовать радиокнопку (две окружности) или checkbox - квадратик/две линии(крестик) - много ресурсов не надо :) EditBox (самая крутая весч (после tree и grid, конечно) занимает около 600 строк кода :) А кто-то говорил о тяжеловесности похожих библиотек :)

 

Извольте не согласится. На мой взгляд здесь немного забыли:

 

1. О направлении отображения текста (привычный нам - слева на право, арабский - справа на лево, китайский - сверху вниз и все смешанные варианты)

2. Алгоритмах поддержки Unicode (десятки кодовых комбинаций могут описывать один едиентвенный символ).

 

3. Для всего этого возможность ввода всего множества символов с

клавиатуры в 115 кнопок.

 

4. Поддержке Cut-Paste, Drag and Drop.

 

 

 

--

Vadim Godunko

Hello Vadim,

 

Tuesday, August 16, 2005, 6:22:33 PM, you wrote:

 

Vladyslav Kozlovskyy wrote:

 

Под OpenGL легко и 2D рисуется :) Быстро и кроссплатформенно :)

А нарисовать радиокнопку (две окружности) или checkbox - квадратик/две линии(крестик) - много ресурсов не надо :) EditBox (самая крутая весч (после tree и grid, конечно) занимает около 600 строк кода :) А кто-то говорил о тяжеловесности похожих библиотек :)

 

Извольте не согласится. На мой взгляд здесь немного забыли:

 

1. О направлении отображения текста (привычный нам - слева на право, арабский - справа на лево, китайский - сверху вниз и все смешанные варианты)

китайский давно справа на лево пишется на PC :) Если же сделать

сверху-вниз, то ни о каком совмещении не может быть и речи (а значит все просто :)

 

А в остальном, не вижу проблем в совмещении. Сам реализовывал вывод кирилицы и еврита в одной строке. Ничего. Даже читабельно :)

 

 

2. Алгоритмах поддержки Unicode (десятки кодовых комбинаций могут описывать один едиентвенный символ).

С Unicode не знаком, каюсь. Десятки кодовых комбинаций это что? - одно начертание может иметь несколько кодов? Дык это легко лечится:

таблица_начертаний[Unicode]->конкретное начертание.

 

Или я что-то не то ляпнул? :)

 

 

3. Для всего этого возможность ввода всего множества символов с

клавиатуры в 115 кнопок.

Использовать API ОС для работы с клавиатурой никто не отменял :)

 

 

4. Поддержке Cut-Paste, Drag and Drop.

 

То о чем я писал поддерживает все, кроме Unicode. Да, еще менеджер фонтов использутся битмапный (еще 200 строк кода + bitmap-ресурс :)

 

--

Vadim Godunko

 

 

--

Best regards,

Vladyslav

Vladyslav Kozlovskyy wrote:

 

>2. Алгоритмах поддержки Unicode (десятки кодовых комбинаций могут >описывать один едиентвенный символ).

 

С Unicode не знаком, каюсь. Десятки кодовых комбинаций это что? - одно начертание может иметь несколько кодов? Дык это легко лечится:

таблица_начертаний[Unicode]->конкретное начертание.

 

Или я что-то не то ляпнул? :)

 

Unicode относится к разряду multibyte кодировок. В дополнение к этому, Unicode предполагает создание произвольных символов, например

кириллическая буква Ё может быть закодирована как одной кодовой позицией

- собственно буквой, так и комбинацией из двух кодовых позиций - буквы Е и двух точек над буквой.

 

Никаких ограничений, кроме фантазии писателя не накладывается.

 

 

>3. Для всего этого возможность ввода всего множества символов с

>клавиатуры в 115 кнопок.

 

Использовать API ОС для работы с клавиатурой никто не отменял :)

Редко какая ОС в полной мере это подерживает. :(

 

Плюс обычно предоставляется поддержка hot-spot, но за сам hot-spot отвечает по прежнему приложение.

 

--

Vadim Godunko

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти