Это все было придумано чтобы устранить недостатки, присущие стандартной схеме управления окнами и диалогами.
Недостатки:
1) При ресайзе нужно прицеливаться по краям рамочки, чтобы найти поинтом заветные 2-3 пиксела за которые можно ресайзить окно, это очень неудобно.
2) Чтобы закрыть окно приходиться целиться по крестику в углу окна, причем иногда этот самый крестик либо мелкий либо его вообще нет на экране.
Фича 1: Изменяем размер окна
Это интуитивно понятный способ изменения размера области, его можно сравнить с мешком, в который мы засовываем руку, чтобы отодвинуть край, причем если засунуть руку в деревянный ящик, то ящик будет подвинут, так как изменять размер ящика нельзя.
Итак: ставим курсор в произвольную область окна и передвигаем курсор к краю, на пересечении бордюра с курсором начинается ресайз окна, причем курсор "прилипает" к бордюру и можно ресайзить как в большую так и в меньшую сторону. Диалоги, которые нельзя ресайзить просто перемещяются вслед за курсором.
Изменяем положение окна
Перемещать окно нужно за заголовок как обычно. (ничего оригинальнее не придумывается, но это не мешает)
Фича 2: Правая клавиша мышки
По нажатии клавиши в любом месте окна, появляется контекстное меню, причем центр курсора указывает аккурат по центру иконки "Close". Таким образом единственным правым щелчком мышки можно закрыть окно. При отпускании правой кнопки, если курсор не указывает ни на один элемент, меню тут же пропадает.
Вроде бы все описал понятно, но у кого проблемы с фантазией, картинки прилагаются:
Здравствуйте, Critical Error, Вы писали:
CE>Итак: ставим курсор в произвольную область окна и передвигаем курсор к краю, на пересечении бордюра с курсором начинается ресайз окна, причем курсор "прилипает" к бордюру и можно ресайзить как в большую так и в меньшую сторону. Диалоги, которые нельзя ресайзить просто перемещяются вслед за курсором.
Жуть. А если я просто хочу передвинуть курсор, чтобы он не мешался?
Ну и кроме того, изменение размеров — достаточно редкая операция, чтобы ее сильно оптимизировать.
CE>По нажатии клавиши в любом месте окна, появляется контекстное меню, причем центр курсора указывает аккурат по центру иконки "Close". Таким образом единственным правым щелчком мышки можно закрыть окно. При отпускании правой кнопки, если курсор не указывает ни на один элемент, меню тут же пропадает.
Т.е. если я случайно нажму на правую кнопку — окно тут же закроется. Некрасиво.
Здравствуйте, Cyberax, Вы писали:
C>Жуть. А если я просто хочу передвинуть курсор, чтобы он не мешался?
Упс, я тут забыл написать, что нужно нажимать левую перед тем как ресайзить или двигать .
C>Т.е. если я случайно нажму на правую кнопку — окно тут же закроется. Некрасиво.
Угу, если случайно нажмешь, то закроется, но на самом деле случайное нажатие может произойти и левой и в более страшном контексте. Эту идею я честно стырил у игры UO (была такая древняя MMORPG). Так вот там это ничуть не мешало. Единственно можно понизить риск, показывая меню управления окном только при нажатии правой на заголовке.
CE>Это интуитивно понятный способ изменения размера области, его можно сравнить с мешком, в который мы засовываем руку, чтобы отодвинуть край, причем если засунуть руку в деревянный ящик, то ящик будет подвинут, так как изменять размер ящика нельзя.
CE>Итак: ставим курсор в произвольную область окна и передвигаем курсор к краю, на пересечении бордюра с курсором начинается ресайз окна, причем курсор "прилипает" к бордюру и можно ресайзить как в большую так и в меньшую сторону. Диалоги, которые нельзя ресайзить просто перемещяются вслед за курсором.
Здравствуйте, Critical Error, Вы писали:
C>>Жуть. А если я просто хочу передвинуть курсор, чтобы он не мешался? CE>Упс, я тут забыл написать, что нужно нажимать левую перед тем как ресайзить или двигать .
Для передвижения такое уже во многих программах есть. Не скажу, что мне это особо чем-то нравится, но и ничего сильно плохого я тоже не вижу.
C>>Т.е. если я случайно нажму на правую кнопку — окно тут же закроется. Некрасиво. CE>Угу, если случайно нажмешь, то закроется, но на самом деле случайное нажатие может произойти и левой и в более страшном контексте.
Например? Для всяких delete/format disk c/destroy the world — должы быть дополнительные подтверждения, так что случайные клики не составляют большой проблемы.
CE>Эту идею я честно стырил у игры UO (была такая древняя MMORPG). Так вот там это ничуть не мешало. Единственно можно понизить риск, показывая меню управления окном только при нажатии правой на заголовке.
Да, это уже более нормально. Сейчас меню показывается, но close в самом низу.
Здравствуйте, swame, Вы писали:
S>И как это уживется с Dran'n'drop ?
Да очень просто, в случае драг-дропа, когда начинается драг, то это сообщение перхватывается контролом с которого перетаскиваем что-либо и не поступает диалогу. Примерно тоже самое если в окне находится Text-Edit контрол: левой клавишей можно спокойно выделять текст. В этом случае ресайзить окно можно по прежнему пользуясь краем окна, но теперь этот край не 2-3 пикселя, а вся свободная область между контролами и краем (обычно больше 6 пикселей).
В KDE, удерживая Alt, можно перетаскивать окно за любое место (не только за заголовок), а правой кнопкой — изменять размер (возле какого угла ухватил, тот и будет двигаться). Есть настройка, позволяющая изменять размеры развернутых окон. Закрывать окна удобнее всего нажатием средней клавиши (колеса) на кнопке на панели задач.
Здравствуйте, Roman Odaisky, Вы писали:
RO>В KDE, удерживая Alt, можно перетаскивать окно за любое место (не только за заголовок), а правой кнопкой — изменять размер (возле какого угла ухватил, тот и будет двигаться). Есть настройка, позволяющая изменять размеры развернутых окон. Закрывать окна удобнее всего нажатием средней клавиши (колеса) на кнопке на панели задач.
Нифига не удобно, кстати. Я достаточно часто нажимаю неправильную кнопку и случайно закрываю окна или табы в FF (там тот же механизм).
Здравствуйте, Roman Odaisky, Вы писали:
RO>В KDE, удерживая Alt, можно перетаскивать окно за любое место (не только за заголовок), а правой кнопкой — изменять размер (возле какого угла ухватил, тот и будет двигаться). Есть настройка, позволяющая изменять размеры развернутых окон. Закрывать окна удобнее всего нажатием средней клавиши (колеса) на кнопке на панели задач.
Ну против колесика я сразу скажу, что не очень он удобен, потому как во-первых сила нажатия на колесико больше, чем сила нажатия на обычную кнопку мышки, к тому же он рутится. Так уж сложилось что колесико применяется в основном для манипуляций с положением чего-либо, например удерживая нажатым колесико в 3D редакторах изменяют расстояние от модели или позицию камеры или вообще модель крутят.
Вот простой пример: у вас открыто 50 документов в браузере или в MSVS, вот подумайте, чем проще закрывать их, средней или правой кнопкой мыши? Сможете ли вы с частотой 2-5 кликов в секунду жать на колесико?
Так что колесико можно использовать например для возможности изменять позицию окна удерживая кнопку в любом месте окна.
По части риска закрыть окно правой: бывают такие UI (например в Опере) где кнопка закрытия вкладки находится на заголовке вкладки, тогда если их открыто много, то кроме сплошного ряда крестиков ничего и не видно. По моему тут риск закрыть окно левой гораздо выше, так как площадь активации вкладки значительно меньше площади кнопки "Закрыть".
К тому же окно закрывается не сразу, и закрытие окна всегда можно отменить если ты вовремя понял что нажал на правую, просто смести курсор из менюшки и отпусти кнопку, также собственно как и при ошибочном нажатии левой.
Здравствуйте, Critical Error, Вы писали:
CE>2: Правая клавиша мышки
Хорошая идея. В 2000й винде так комбобокс открывался (левой кнопкой) — можно было нажать, не отпуская провести до нужного итема, и отпустить. А в XP это сломали.
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, Critical Error, Вы писали:
CE>Это все было придумано чтобы устранить недостатки, присущие стандартной схеме управления окнами и диалогами.
А может ну их нафик эти окна, которыми так неудобно управлять? Вот мой ответ:
1. Экран делится на рабочую область приложений и панель задач.
2. Рабочая область приложений состоит из N панелей.
3. В каждой панели работает одно и только одно приложение.
4. Пользователь может настраивать количество и взаимное расположение панелей как ему вздумается.
5. В любой момент пользователь может спрятать или сделать единственной (спрятать все кроме) любую панель нажатием одной клавиши.
6. При прятании панелей пустое место распределяется между оставшимися.
7. Меню запуска приложений живёт в каждой пустой панели.
8. Панель задач представляет из себя ленту, состоящую из скриншотов программ и подписей к ним. Фактически, это просто ещё одна панель.
9. При наведени на скриншот он увеличивается вместе с подписью, а при клике — программа переносится в последнюю активную панель.
Вот, в кратце. Мне кажется, что такая система будет востребована, особенно с новыми большими мониторами и в разрешении 1900х1280 и выше.
CE>Жду критики, замечаний, багов.
Здравствуйте, Critical Error, Вы писали: CE>Жду критики, замечаний, багов.
У меня один только вопрос.Вы пользователей переучивать будете?Они и без того не знабт куда что тянуть и только научились чего и как, и тут и еще такое чудо.
hell citizen однажды (12 февраля 2008 15:35) писал:
> 5. В любой момент пользователь может спрятать или сделать единственной (спрятать все кроме) любую панель нажатием одной клавиши.
Хорошая мысль. Дополню. Сделать 10 панелей. Управлять с цифровой клавиатуры [0-9], "," для мозаики. Управление при нажатом нумлоке.
Здравствуйте, linker, Вы писали:
L>У меня один только вопрос.Вы пользователей переучивать будете?Они и без того не знабт куда что тянуть и только научились чего и как, и тут и еще такое чудо.
Нет конечно, я не собираюсь переделывать виндовый интерфейс и тем более когото "переучивать". Это эксперимент по созданию интерфейса для игры. Я просто перебираю варианты. Конкретно эта часть призвана упростить управление диалогами. В играх не очень удобно целиться по мелким крестикам.
Гм, ну на первый взгляд могу сказать, что я большой ценитель места на экране. Аська например должна быть гдето на фоне, а не занимать драгоценное пространство редактора кода.
Еще минус: постоянный ресайз. Всякие редакторы сойдут с ума от такого. Панели съедут куда попало.
Да и постоянно изменяющийся рабочий стол тоже не есть гуд. Вот мы вроде бы помним, что редактор у нас был сверху, ан нет, он у нас уже снизу!
Здравствуйте, Critical Error, Вы писали:
CE>Здравствуйте, Cyberax, Вы писали:
C>>Жуть. А если я просто хочу передвинуть курсор, чтобы он не мешался?
CE>Упс, я тут забыл написать, что нужно нажимать левую перед тем как ресайзить или двигать .
а если я хочу сделать драг анд дроп элемента окна за его пределы?
Здравствуйте, hell citizen, Вы писали: HC>А может ну их нафик эти окна, которыми так неудобно управлять? Вот мой ответ: HC>1. Экран делится на рабочую область приложений и панель задач. HC>2. Рабочая область приложений состоит из N панелей. HC>3. В каждой панели работает одно и только одно приложение. HC>4. Пользователь может настраивать количество и взаимное расположение панелей как ему вздумается. HC>5. В любой момент пользователь может спрятать или сделать единственной (спрятать все кроме) любую панель нажатием одной клавиши. HC>6. При прятании панелей пустое место распределяется между оставшимися. HC>7. Меню запуска приложений живёт в каждой пустой панели. HC>8. Панель задач представляет из себя ленту, состоящую из скриншотов программ и подписей к ним. Фактически, это просто ещё одна панель. HC>9. При наведени на скриншот он увеличивается вместе с подписью, а при клике — программа переносится в последнюю активную панель.
HC>Вот, в кратце. Мне кажется, что такая система будет востребована, особенно с новыми большими мониторами и в разрешении 1900х1280 и выше.
Уже достаточно давно существует такой оконный менеджер для *nix систем: Ion.
Я даже пользовался некоторое время, достаточно удобно, в особенно в плане того, что не надо трогать мышку. Единственное, апликации, пытающиеся навязывать свой размер окон, не всегда хорошо с ним уживаются.
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"