Глава 17. Панель инструментов как экранная клавиатура

Николай (unDEFER) Кривченков

2009-09-26

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

А, вот с другим, по сути родственным, утверждением: "Горячие клавиши гораздо удобнее кнопок на панели инструментов" многие поспорят. Нет, в том, что на клавишу часто нажать гораздо быстрее, чем на кнопку на панели инструментов, думаю, никого убеждать не надо. Дело в другом. Чтобы запомнить и всегда легко вспоминать комбинацию горячих клавиш, нужно по меньшей мере часто их повторять. А сами панели инструментов никогда не напоминают об этих комбинациях при обычном использовании. Т.е. если вы не помните или не знаете комбинацию горячих клавиш и вместо них будете просто использовать панели инструментов, то вы никогда их не узнаете и не запомните.

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

Благодаря такому подходу в unDE будут достигнуты два замечательных свойства системы:

  1. Для любой команды расположенной на панели инструментов будет автоматически сопоставлена горячая клавиша, которая будет запоминаться легко благодаря визуальной ассоциации её с расположением клавиш на клавиатуре.
  2. При создании горячей клавиши для неё будет автоматически создана и кнопка на панели инструментов.

Однако, стандартная виртуальная клавиатура слишком громоздка. Даже если оставить только алфавитно-цифровые клавиши с модификаторами, такая клавиатура будет занимать значительное пространство на экране:

Экранная клавиатура

Чтобы уменьшить занимаемое пространство мы сложим клавиатуру вдвое примерно так:

Экранная клавиатура складываемая вдвое

На полученной клавиатуре, чёрным отображено значение кнопки при нажатии её левой кнопкой мыши, красным -- значение правого щелчка, а серым -- среднего.

Компактная экранная клавиатура

Конечно, пользоваться такой сложенной экранной клавиатурой будет по-началу не привычно, но немного освоившись на ней можно печатать даже быстрее, чем на полной, за счёт:

  1. >Уменьшения расстояний, на которые необходимо каждый раз перемещать мышь при выборе следующей буквы.
  2. >Скорости щелчков мыши, которые могут быть выше при чередовании пальцев (для левой и правой кнопки), которыми они выполняются.

Примерно также скорость печати возрастает на обычной клавиатуре при использовании двух рук вместо одной.

Сам способ группировки клавиш на экранной клавиатуре, который мы назовём зеркальным, обладаёт следующими преимуществами:

  1. Близкие клавиши располагаются на близких кнопках даже, если они попадают на разные половины клавиатуры.
  2. Всегда легко определить по расположению клавиши на реальной клавиатуре её расположение на клавиатуре виртуальной, и наоборот. Здесь действует правило -- все клавиши находящиеся с краёв (левого и правого) реальной клавиатуры, находятся в левой части виртуальной клавиатуры, а все клавиши из центра -- в правой.
  3. Левые и правые клавиши-модификаторы естественным образом объединяются в одну кнопку. При этом левый щелчок мышью обозначает нажатие левой клавиши, а правый -- правой.

Панель клавиатуры в unDE всегда будет расположена в правом нижнем углу экрана. За счёт этого, как было отмечено в предыдущей статье "Способ экономии места на экране", уменьшенные кнопки внизу и справа панели будет столь же легко (и даже легче) нажимать как и все остальные.

Также особо отметим угловое расположение клавиши "пробел". Её будет легко нажимать как и реальную после любой другой клавиши, просто быстро заведя курсор мыши в угол экрана.

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

Что касается второго "Enter" на кнопке "3" ("0"), то он, а также серые "-", "+", "*", "/" будет соответствовать т.н. Грей-клавишам на цифровой клавиатуре.

Вообще для дополнительной экономии пространства экрана хотелось бы также расположить кнопки строго друг под другом. Но к сожалению это ведёт к потере ассоциации панели с реальной клавиатурой. Почему же на клавиатуре кнопки расположены так причудливо? В Интернет можно обнаружить множество интересных предположений на эту тему. Однако, реальную причину этого, пожалуй, раскрывает следующий рисунок взятый с сайта Артемия Лебедева:

Механизм клавиатуры печатной машинки

На нём хорошо видно, что если бы клавиши пишущей машинки были расположены друг под другом, то рычаги отходящие от них к литерам просто сливались бы. Первые пишущие машинки появились ещё во второй половине XIX века, и техническая проблема расположения кнопок возникла именно тогда. Как видите побороть, заведённое по технической причине, положение не удаётся даже в XXI веке при разработке виртуальной клавиатуры технически реализованной в корне иначе.

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

SourceForge.net Logo