LINUX.ORG.RU

Как в BeOS

 


0

1

Некоторые, возможно, помнят, что в BeOS была (а в Haiku есть и по сей день) замечательная особенность — пункт меню, отвечавший за подменю, не бездействовал и мог быть также задействован для чего-либо ещё (пример: пункт «Open With...» вёл к списку приложений, но при нажатии выдавал диалог открытия для понятных целей).
Ну так вот, попытки отыскать способы реализовать такое с GTK+ оказались тщетны. Был найдено только событие «button-press-event», но оно срабатывает только при ещё не раскрывшемся/уже скрытом подменю. Есть ли шанс, что существует полноценное решение?



Последнее исправление: cetjs2 (всего исправлений: 1)

Есть ли шанс, что существует полноценное решение?

Нет, надо переделывать код в тулките.

Сам давно облизываюсь на эту фичу.

geekless ★★
()
Ответ на: комментарий от buddhist

Немного не понял, что за фича.

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

geekless ★★
()
Ответ на: комментарий от geekless

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

честно говоря, не вижу проблемы в реализации ни для Gtk ни для Qt. Для Gtk перехватить несколько сигналов, и лёгкая камасутра для Qt примерно то-же но в других позах. Типичная (да, типичная) но не базовая/основополагающая(да, производная) фича которой не место в тулките.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Вообще-то это требует изменения логики обработки ввода, как мышинного, так и клавиатурного, а также изменения обработчика expose.

И эта «фича» настолько элементарна и очевидна, что ей место в абсолютно любом тулките. Кто ж виноват, что косность мышления не даёт разработчикам выйти за рамки копирования поведения виджетов винды.

geekless ★★
()
Ответ на: комментарий от fragment

Нет, в православном линуксе. Блин, не заставляй меня запустить FF, у меня тут как раз хромиум остатки оперативы доедает...

geekless ★★
()
Ответ на: комментарий от fragment

Осспади. Отключаешь показ обычного меню. -> Появляется кнопка с сокращенным меню. Включаешь показ обычного меню. -> Кнопка исчезает.

geekless ★★
()
Ответ на: комментарий от geekless

И эта «фича» настолько элементарна и очевидна, что ей место в абсолютно любом тулките.

В семерочке такое в меню «пуск» есть. Только вот штука в том, что для конечного пользователя это все не очевидно. То же меню в FF - догадываешься, что что-то работает по-другому только из-за разделения выделения на две части. Среднестатистический пользователь вообще вряд ли поймет почему при кликах у него меню ведет себя каждый раз по-разному.

Amp ★★★
()

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

thesame ★★★★
()
Ответ на: комментарий от Amp

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

Amp Только вот штука в том, что для конечного пользователя это все не очевидно. То же меню в FF - догадываешься, что что-то работает по-другому только из-за разделения выделения на две части. Среднестатистический пользователь вообще вряд ли поймет почему при кликах у него меню ведет себя каждый раз по-разному.

Я даже не знаю, что тут можно сказать, чтобы вышло цензурно...

Во-первых. Для среднестатистического пользователя «не очевидно» вообще ничего, кроме XP и семерочки, в которой сосед ему показал, как запускать «интернет».

Ребята, мы форуме о GNU/Linux, ау? Предполагается, что у пользователей этой системы есть мозги.

Во-вторых. Дизайн решает. Вы хоть раз меню icewm видели? Там абсолютно нереально запутаться: когда нажатие выполняет действие, а когда открывает подменю. А всё почему? Потому что разработчики icewm чуть умнее вас. А у вас напрочь отсутствует воображение.

«догадываешься, что что-то работает по-другому только из-за разделения выделения на две части. Среднестатистический пользователь вообще вряд ли поймет» — да-да, а раньше тебе не нужно было разбираться, как работает меню. Ты впитал это знание с молоком матери. Любому интерфейсу надо обучаться. Ты вот, как видишь, обучился новому интерфейсу за 2 минуты методом тыка. Почему же ты по умолчанию считаешь большинство людей тупее себя?

geekless ★★
()
Ответ на: комментарий от fragment

Черт, не могу, никако мейнтейнеры бубунты патчей наложили.

netcat ★★
()
Ответ на: комментарий от ananas

Не цепляется. По крайней мере у меня на двух разных компьютерах.

krakatau
() автор топика
Ответ на: комментарий от thesame

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

krakatau
() автор топика
Ответ на: комментарий от geekless

Я даже не знаю, что тут можно сказать, чтобы вышло цензурно...

Обсуждение даже на вторую страницу перекинуться не успело, а тебе уже одно место припекает и хочется нецензурщину писать. Не принимай все так близко :) Речь о том, что нестандартные (для HIG-а заданной платформы) решения будут не сразу поняты пользователем, а может быть вообще не поняты. Я рад, что ты считаешь пользователей линукс умниками и умницами, но факт остается фактом. Я не говорю, что это не нужно. Я не говорю, что это не надо включать в тулкиты. Просто оно не укладывается в текущие привычки большинства пользователей и разработчику следует иметь это ввиду.

Ты вот, как видишь, обучился новому интерфейсу за 2 минуты методом тыка.

По двум причинам - об этом уже читал ранее и потому что там, где я это впервые видел, оно сделано было несколько более грамотнее, чем в том же FF.

Почему же ты по умолчанию считаешь большинство людей тупее себя?

Чем шире круг потенциальных пользователей, тем на более тупого пользователя интерфейс приложения и должен быть рассчитан. Поэтому разработчику UI полезно считать большинство людей тупее себя. Исключением может быть случай, когда приложение рассчитано на некоторый круг «умников» - например инструментарий для разработчиков.

Amp ★★★
()
Ответ на: комментарий от Amp

Обсуждение даже на вторую страницу перекинуться не успело, а тебе уже одно место припекает и хочется нецензурщину писать.

Я не выспавшийся и злой. И я в принципе не люблю людей, пишущих ерунду. А не выспавшись, я не люблю их в два раза сильнее.

Речь о том, что нестандартные (для HIG-а заданной платформы) решения будут не сразу поняты пользователем, а может быть вообще не поняты.

А что вообще есть «стандартного»? Стандартно то, что есть в тулките, а не наоборот. Будет в тулките — будет стандартно. Я не знаю, что может быть непонятного в том, что у команды Open будет подменю со списком недавних файлов, например. Ну правда не знаю. Практически, «интуитивно-понятный интерфейс».

У иконки есть дефолтное действие на даблклик, а есть меню со списком всех действий. Здесь абсолютно тот же принцип, только с поправкой на формат (что это не иконка, а часть другого меню).

Вот кстати еще один интересный пример интерфейсной закостенелости: ничто не мешает сделать в выпадающих меню фильтрацию пунктов вводом текста. Ввёл «open», и видишь только пункты с текстом «open», а не 100500 остальных. Удобно? Удобно. Почему нет до сих пор? Потому что в голову никому не пришло.

Чем шире круг потенциальных пользователей, тем на более тупого пользователя интерфейс приложения и должен быть рассчитан. Поэтому разработчику UI полезно считать большинство людей тупее себя. Исключением может быть случай, когда приложение рассчитано на некоторый круг «умников» - например инструментарий для разработчиков.

Абсолютно любое меню — это интерфейс вида «тыкнул кнопку, получил банан». Вот ЧТО там может быть не понятного? Если людей считать НАСТОЛЬКО тупыми, то лучше программировать для обезьян.

geekless ★★
()
Ответ на: комментарий от geekless

А что вообще есть «стандартного»? Стандартно то, что есть в тулките, а не наоборот. Будет в тулките — будет стандартно.

Как бы, широко распространенные графические среды имеют свои стандарты, как должен выглядеть внешний вид приложения, и разработчик должен ориентироваться в первую очередь на них. Поскольку GTK+ является частью проекта GNOME, то логично предположить, что разработчики ориентируются на GNOME Human Interface Guidelines.

hippi90 ★★★★★
()
Ответ на: комментарий от Tayler

В хромом для такого дела кнопки встроены в пункты меню.

А нет, вру. Там пункты с кнопками не содержат вложенных меню. Но не вижу причин, чтобы так нельзя было сделать. Хоть это и не совсем то, что хочет ТС (хотя может вариант со встроенными в меню кнопками даже лучше, по крайне мере сразу ясно, что по кнопке можно кликнуть и что это не просто пункт для открытия меню следующей вложенности).

Tayler ★★
()
Ответ на: комментарий от geekless

Я не знаю, что может быть непонятного в том, что у команды Open будет подменю со списком недавних файлов, например. Ну правда не знаю. Практически, «интуитивно-понятный интерфейс».

Пользователь привык, что если меню имеет подменю, то оно некликабельно. Речь не об удобстве, а о привычках. Разработчикам открытых приложений конечно наплевать и они мало чего теряют от экспериментов над пользователями, но в других случаях я бы десять раз подумал. Если ты не крупный производитель софта и не законодатель моды в UI, то лучше подстраиваться под существующие привычки пользователей и их паттерны поведения.

Абсолютно любое меню — это интерфейс вида «тыкнул кнопку, получил банан». Вот ЧТО там может быть не понятного? Если людей считать НАСТОЛЬКО тупыми, то лучше программировать для обезьян.

Забыл раскрывающиеся меню в 2003-м MSO и как пользователи там ТЕРЯЛИ пункты? :)

Amp ★★★
()
Ответ на: комментарий от Tayler

В хромом для такого дела кнопки встроены в пункты меню. И там вроде бы Gtk.

Там, как и в FF, owner-drawn меню, использующие рендер GTK. То бишь наваять-то можно, просто кода получится много. Вряд ли овчинка стоит выделки, если ТС ее пишет для личных нужд.

Amp ★★★
()
Ответ на: комментарий от Amp

Забыл раскрывающиеся меню в 2003-м MSO и как пользователи там ТЕРЯЛИ пункты? :)

Половинчатые меню — это абсолютное зло, т.к. мешает пользователю выработать автоматическую, моторную память.

geekless ★★
()
Ответ на: комментарий от Tayler

может вариант со встроенными в меню кнопками даже лучше

Кстати, да, в моём случае они могут послужить заменой. Спасибо за план Б.

krakatau
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.