Oberon space

General Category => Общий раздел => Тема начата: valexey от Сентябрь 15, 2011, 03:28:19 pm

Название: Убить MDI.
Отправлено: valexey от Сентябрь 15, 2011, 03:28:19 pm
А не приходила ли благородным донам идея убить MDI в BBCB? Обратно совместимым способом, само собой.

Мне вот подумалось, что MDI там есть только постольку, поскольку есть Глобальная Менюшка, то есть некая сущность где описаны все действия возможные в данном контексте, и оная сущность всегда винда пользователю.

Но ведь ничто не мешает взять и пустить эту Глобальную Менюшку в свободное плавание в отдельном окне в вертикальном виде. То есть было как то-то так:
*--------------------------------------
| File Edit Attribetes ...
*--------------------------------------

Станет как-то так:
*---------------*
| File       -> |
| Edit       -> |
| Attributes -> |
| ..            |
*---------------*
С точки зрения API ничего не изменится. А от MDI  можно будет уже уйти. И это таки решит ряд проблем с портабельностью. Это конечно первый шаг, но он важен.
Название: Re: Убить MDI.
Отправлено: vlad от Сентябрь 15, 2011, 04:12:24 pm
Если с точки зрения АПИ ничего не изменится, то от MDI можно уйти непосредственно в конкретном порте ;)
Название: Re: Убить MDI.
Отправлено: valexey от Сентябрь 15, 2011, 05:39:58 pm
Если с точки зрения АПИ ничего не изменится, то от MDI можно уйти непосредственно в конкретном порте ;)
Ну, вообще хотелось бы сохранить максимально общей кодовую базу для разных портов.

Кроме того, ты же понимаешь, что чем унифицированней UI под разными осями, тем проще проектировать UI конкретной функциональности.

То есть я хотел бы от MDI избавиться и под виндами.
Название: Re: Убить MDI.
Отправлено: Romiras от Сентябрь 15, 2011, 05:54:35 pm
Порой, необходимость в меню отпадает благодаря наличию подключаемых панелей и всплывающему меню.
А разве кроме меню в BBCB нет использования MDI?
Название: Re: Убить MDI.
Отправлено: valexey от Сентябрь 15, 2011, 06:05:21 pm
Порой, необходимость в меню отпадает благодаря наличию подключаемых панелей и всплывающему меню.
А разве кроме меню в BBCB нет использования MDI?
Я не представляю для чего еще MDI может пригодиться.

Кроме того, исторически, Mac-версия BBCB была без MDI (MacOS и так имеет глобальное меню - MDI не нужно), а вот в винде, для эмуляции такого поведения используется костыль под названием MDI.
Название: Re: Убить MDI.
Отправлено: Romiras от Сентябрь 15, 2011, 10:39:04 pm
Порой, необходимость в меню отпадает благодаря наличию подключаемых панелей и всплывающему меню.
А разве кроме меню в BBCB нет использования MDI?
Я не представляю для чего еще MDI может пригодиться.
MDI у меня всегда ассоциировался с окнами, а не с меню. А в BBCB окна всех документов расположены под одним общим окном основной программы.
Название: Re: Убить MDI.
Отправлено: valexey от Сентябрь 16, 2011, 10:33:24 am
Я понимаю что это первое что бросается в глаза. Однако в ББ MDI используется ровно для того, для чего я написал - для глобального меню. Общее родительское окно - багофича и костыль позволяющий реализовать оное глобальное меню.

В MacOS-версии его не было (там вообще MDI не применялся), то есть на общее родительское окно не есть что-то необходимое.