Поскольку функция проверки жестко кодирует столбец 1, то в цикле for вместо
color=check( );
ты должен сделать
color = i == i ? check() : "someDefaultColor"
Или передайте i
функции проверки (check(i)
), и функции проверки проверят, что переданное значение равно 1
.
Я полагаю, что GTK/GNOME заимствует немало рекомендаций по дизайну пользовательского интерфейса от Apple macOS и ее предков.
Я думаю, что у Mac были довольно строгие правила оформления диалоговых окон:
Возможно, вы захотите прочитать классический документ Macintosh Human Interface Guidelines или, по крайней мере, части, относящиеся к диалоговым окнам(Обратная связь и диалог , начиная со страницы 33 PDF-файла, и всю главу 6, посвященную диалоговым окнам, начиная со страницы 199. )Хотя в GTK были внесены некоторые изменения, этот старый документ является очень четким описанием философии дизайна, к которой могут стремиться дизайнеры пользовательского интерфейса.
В GNOME также есть собственные рекомендации по пользовательскому интерфейсу. В частности, он явно определяет, что ускорители (, известные как клавиши доступа в их терминологии ), указываются только при удерживании Alt .
Этот диалог действительно предоставлен Gtk.
Ускорители есть; по умолчанию они не указаны, но если зажать Alt , вы их увидите. В Gedit это w для «Закрыть без сохранения», c для «Отмена» и s для «Сохранить как...». Вы можете также используйте Esc для отмены и Enter для сохранения.
Относительно происхождения я привожу несколько примеров из классического редактора unix "vi" (и "vim" ).
В vim после команды "выход" "q":
E37: No write since last change (add ! to override)
Это отображается на красном (! )нижняя строка. Теперь вам нужно решить, хотите ли выq!
(действительно выйти из безымянного «буфера» -файла еще нет )илиw my file
(записать так, как файл «мой файл»(w! my file
перезаписывает )), а затем q
. Или просто продолжайте -это не модально, просто строка исчезает.
(с существующим файлом wq
сохранить в существующий файл с последующим выходом)
В еще более классическом "vi" (1976 (! )говорит википедия):
No write since last change (:quit! overrides)
Здесь нет указаний на то, что q означает выход. Вы найдете его в man ex
.
quit abbr: q
Causes ex to terminate. No automatic write of the editor buffer
to a file is performed. However, ex issues a warning message [...]
Или в vim, послеh[elp] quit
:q[uit] Quit the current window. Quit Vim if this is the last
window. This fails when changes have been made [...]
И элемент управления -C снова дает (на vim):
Type :qa! and press <Enter> to abandon all changes and exit Vim
Если вы читаете это в первый раз, это похоже на плохо отформатированное оскорбление.:Напечатайте "qa", идиот . На самом деле это означает точку с запятой :для командного режима, qa для выхода из всех файлов/окон и "!" заставить бросить.
Выйти из редактора никогда не было просто --и не может быть. Ваши примеры тоже это показывают.
Я рад, что первый ключ ответа(Alt
для отображения )решает основную проблему.
Кнопка «Сохранить (как )(... )» также очень непоследовательна :возвышенное и libreoffice, кажется, пишет непосредственно в «Новый» файл или документ «Без названия 1». Pluma не хватает точек! О, я вижу :, это называется "Несохраненный документ 1",поэтому, конечно, «сохранить как» означает «сохранить как...», а не «сохранить как есть». Кому понадобился бы такой парадоксон в своей папке?
Я хочу сказать, :что нельзя называть "linux" недружественным . Все изо всех сил стараются настроить полезную среду рабочего стола в графическом интерфейсе , работающем на linux.
queue up my actions entirely from the keyboard.
хм, похоже, вам нравится использовать vim в терминале;)
Теперь я посмотрю, не смогу ли я сделать свой vim более дружелюбным . Это действительно не должно быть на красной строке ошибки -фона...