OberonCore
https://forum.oberoncore.ru/

Меню и Toolbar
https://forum.oberoncore.ru/viewtopic.php?f=24&t=14
Страница 1 из 2

Автор:  Anton [ Пятница, 18 Ноябрь, 2005 12:57 ]
Заголовок сообщения:  Меню и Toolbar

1. Можно ли в ЧЯ приделать иконки к пунктам меню.
2. Можно ли сделать Toolbar. Разумеется сделать без хитрых изгалений :)
3. Можно ли сделать Tips к элементам диалогов

Автор:  Anton [ Пятница, 18 Ноябрь, 2005 14:24 ]
Заголовок сообщения:  Re: Меню и Toolbar

Частично отвечу сам себе :)
Anton писал(а):
2. Можно ли сделать Toolbar. Разумеется сделать без хитрых изгалений :)
3. Можно ли сделать Tips к элементам диалогов


На сайте http://www.zinnamturm.de/ нашел компоненты: Toolbar и CpcControlTips (и еще множество других), которые решают мои вопросы 2 и 3.
Насчет иконок к меню надо еще разбираться

Автор:  Илья Ермаков [ Пятница, 18 Ноябрь, 2005 15:15 ]
Заголовок сообщения: 

Компонент Toolbar пробовал. Сделан неплохо, однако при установке нужно внимательно следовать его документации, иначе ставится криво и начинает вешать среду.

Насчет этих вещей метасистемщики уже думают, скоро сделаем вариант не-MDI, типа Delphi, а в перспективе в этом направлении будем делать отрисовку собственными стилями (например, на DirectX Surfacы). Идея - сделать движок для мультимедиа-энциклопедий, притом работающий через Web.

В принципе все ноги у GUI растут из HostMenus и HostWindows - там основной цикл обработки сообщений стоит и создание главного окна.

Автор:  Калям [ Вторник, 30 Январь, 2007 00:59 ]
Заголовок сообщения:  Воз не ныне там?

Илья Ермаков писал(а):
скоро сделаем вариант не-MDI, типа Delphi, а в перспективе в этом направлении будем делать отрисовку собственными стилями (например, на DirectX Surfacы).

Как прочитал это - обрадовался. Ура! Наконец-то подвижка. А как взглянул на дату сообщения и сравнил с сегодняшней, то стало грустно - уже больше года прошло. Где же результаты? Есть продвижение?

Автор:  Илья Ермаков [ Вторник, 30 Январь, 2007 01:10 ]
Заголовок сообщения: 

Не-MDI вариант завязан на Gtk+, над ним работает команда ББ for Linux... Как уже говорил Trurl, среда запускается, работает, кубики крутятся даже :-), но недоделок еще много.

По поводу красивого ГУЯ - прошлой зимой мы делали движок для мультимедиа-энциклопедий, с произвольными стилями окон, если интересно - даже могу выложить демонстрашку-бету. Вот одна из энциклопедий, выпустили наши заказчики: http://djone.ru.

Все штучки, примененные для "облагораживания" ГУЯ, вошли в библиотеку Mt, модуль MtWindows (http://sources.metasystems.ru/mt).

Сейчас на ББ портируется 3Д-движок (OpenGL), через энное время придется думать и о поддержке Views и Controls в GL-режиме.

Автор:  Калям [ Вторник, 30 Январь, 2007 21:44 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
если интересно - даже могу выложить демонстрашку-бету

Было бы неплохо. Но какой у неё размер? Если больше 3 Мб, то не стоит.
Илья Ермаков писал(а):
Вот одна из энциклопедий, выпустили наши заказчики: http://djone.ru.

Насколько я изучил сайт, посмотреть на это в деле можно лишь после заказа диска. Ни тебе скриншотов, ничего...

Автор:  Илья Ермаков [ Вторник, 30 Январь, 2007 22:20 ]
Заголовок сообщения: 

Выложил демку, ссылку отправил Вам личным сообщением!
Если кому-то еще будет интересно, могу также скинуть ссылку, открыто публиковать не буду.

Автор:  Cardinal [ Среда, 31 Январь, 2007 14:08 ]
Заголовок сообщения: 

Я бы тоже хотел получить демо-бету! Заранее благодарен :)

Автор:  GlSal [ Среда, 31 Январь, 2007 16:39 ]
Заголовок сообщения: 

То же интересуюсь. Будьте любезны.

Автор:  Илья Ермаков [ Среда, 31 Январь, 2007 17:02 ]
Заголовок сообщения: 

Отправил всем личные сообщения со ссылкой.

Сделано просто - каждое окно представляет собой Tool Dialog с примененной нестандартной формой, сзади ставится подложка с картинкой, а главное MDI-окно усылается далеко за границу экрана.
Все окна сцеплены воедино, кто заметил - за эмблемку можно потаскать весь блок разом.
Для картинок используется FreeImage, потом это дело вошло в http://sources.metasystems.ru/abf.
Для видео используется DirectShow. Если кому интересно - минимальное подмножество его хедеров переведено на КП.

Автор:  Калям [ Воскресенье, 04 Февраль, 2007 19:03 ]
Заголовок сообщения: 

Познакомился с энциклопедией.
Сделано неплохо, но возникает вопрос - сколько времени было потрачено на разработку? Я имею в виду лишь время программирования каркаса, без учёта проработки дизайна и забивки данных.

Автор:  Борис Рюмшин [ Воскресенье, 04 Февраль, 2007 20:44 ]
Заголовок сообщения: 

Набивкой материала мы не занимались, для этого нами был создан специальный редактор. Дизайн тоже не наш (мы его только посадили на каркас). Этим всем занимались заказчики сами.

На чистое программирование (Ермак меня поправит), ушло не более месяца. Возможно больше фактически, но я про чистое рабочее время. Причем, в связи с экстремально сжатыми строками проектирование велось на ходу. С Делфи, который нам предлагался изначально, мы бы так быстро не выкрутились. Сразу предупреждаю любителей потрепаться, дело не в квалификации, а в инструменте. Это к вопросу о нетрадиционных ГУЯх.

Автор:  Илья Ермаков [ Воскресенье, 04 Февраль, 2007 23:07 ]
Заголовок сообщения: 

Работу стартовали 2 января 2006 г., заказчик (которому некие энтузиасты на Дельфи сорвали все сроки) дал установку: "нужно было уже вчера..." :-)
Дней через 5 заказчик получил работающую, но корявую внешне, альфу и редактор, в который можно было уже забивать материал. А далее - месяц доработок, вылизываний, прилично помучались с проигрыванием видео - пока поняли, что MCI устарел и как работать с DirectShow :-)
5 февраля диск ушел в печать.

На Дельфе пришлось бы использовать кучу различных компонентов для HTML, мультимедиа и т.п., а по опыту эти компоненты жутко тормозят... Еще было интересное требование - запретить копирование текста. В ББ это просто режим маски - и всего дел...

Автор:  Калям [ Понедельник, 05 Февраль, 2007 01:28 ]
Заголовок сообщения: 

Борис Рюмшин писал(а):
Набивкой материала мы не занимались, для этого нами был создан специальный редактор.

А какие отзывы были по работе с редактором?
Честно говоря, мне жаль тех, кому пришлось с ним работать: он слишком неудобен для редактирования структуры (энциклопедии) и использует те возможности редактирования текста, которые встроены в BlackBox (к примеру "линейки" - уж очень, на мой взгляд, корявы, неэстетичны).
Прошу воспринимать это как лишь как отзыв пользователя, ничего более. К тому же сроки, вполне понимаю вас, были на грани.

Автор:  Илья Ермаков [ Понедельник, 05 Февраль, 2007 02:13 ]
Заголовок сообщения: 

Ну, к редактору ребята пристрелялись и довольно ловко им пользовались :-) А что им еще делать было? :-)

Редактор текста, как и многое другое в ББ, требует доработок и вылизывания. Было бы желание - архитектура среды позволит любые фантазии, уж это проверено :-) Руки не доходят до многого. Вот, к примеру - таблицы бы нормальные сделать, по типу ворда...

Автор:  PGR [ Понедельник, 19 Март, 2007 14:48 ]
Заголовок сообщения:  Toolbar

Если включить Toolbar с сайта http://www.zinnamturm.de, то
при движении мышки постоянно идет выделение памяти. Это так и должно быть? Похоже на утечку памяти ...

Автор:  Александр Ильин [ Понедельник, 19 Март, 2007 21:10 ]
Заголовок сообщения:  Re: Toolbar

PGR писал(а):
Если включить Toolbar с сайта http://www.zinnamturm.de, то при движении мышки постоянно идет выделение памяти. Это так и должно быть? Похоже на утечку памяти ...

Это не утечка памяти в строгом смысле, потому что выделенная память рано или поздно будет освобождена сборщиком мусора.
Я нашел, в чем проблема. На тулбаре последней версии есть кнопки, позволяющие сделать текст жирным, курсивным или подчеркнутым. Для этих кнопок заданы охранные процедуры (Guards) в модуле ToolbarTooltips. Эти охранные процедуры регулярно вызываются для обновления состояния кнопок ("нажатое" состояние или обычное). Эффект утечки памяти вызывают следующие процедуры, вызываемые из охранников ToolbarTooltips: StdCmds.BoldGuard, StdCmds.ItalicGuard и StdCmds.UnderlineGuard.

Если указанные три кнопки удалить с тулбара, память перестает накручиваться. Как вариант, можно удалить проблемные вызовы StdCmds.XXX из охранников, но тогда кнопки тулбара не будут отображать текущее состояние текста.

Дополнительная память при этом выделяется для того, чтобы собрать информацию о свойствах текущего объекта (выделенного текста). Корнями это выделение памяти уходит в Properties.CollectStdProp.

Автор:  PGR [ Понедельник, 19 Март, 2007 22:11 ]
Заголовок сообщения: 

Но состояние этих кнопок может меняться только при кликах мышью или выделении
текста, а не при движении мыши...

Автор:  Александр Ильин [ Понедельник, 19 Март, 2007 23:37 ]
Заголовок сообщения: 

PGR писал(а):
Но состояние этих кнопок может меняться только при кликах мышью или выделении текста, а не при движении мыши...

Не обязательно. Никто не мешает изменять жирность текста при движении мыши вверх, а курсивность - при движении вправо. То, что фактически этого не делается, не освобождает от необходимости обновлять состояние кнопок после движения мыши. Вот, при запросе текущего состояния и выделяется память под временные данные. Там просто более общий механизм заложен, на все случаи жизни. При движении мыши изменяется значение переменной Properties.era, что приводит к вызову Properties.CollectStdProp из процедуры StdCmds.StdProp. Изучайте модуль Properties.
Исли мне не верите, удалите вызовы указанных процедур из охранников ToolbarTooltips и убедитесь, что выделение памяти прекращается.

Проблема в данном случае не специфична для тулбара, в тулбаре ничего править не нужно. Точно такое же выделение памяти будет происходить и при отображении, например, содержимого меню "Attributes". В этом меню галочки напротив "Bold", "Italic" и "Underline" выставляются точно таким же образом, т. е. с помощью модуля StdCmds.

Автор:  Илья Ермаков [ Среда, 21 Март, 2007 21:47 ]
Заголовок сообщения: 

Почему-то последняя версия Toolbar не работает в Windows 2000 (и в Линуксе под Wine)... Кто-нибудь сталкивался с этой проблемой?

Сам-то я не пользуюсь, но тут сибирцы прислали свежий школьный пакет, в котором тулбары задействованы. У меня они не показались ни в Wine, ни в Win2K, хотя под WinXP у людей отображаются нормально...

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