MathJax

HTML

LyX: добавление кнопок в меню, на панели инструментов


Сначала я покажу, как добавить какую-нибудь кнопку в какое-нибудь меню. Для примера, я покажу, как добавить в меню Правка кнопку, при нажатии на которую будет начинаться математический режим, туда будет вводиться формула $$\dfrac{\sqrt{\pi}}{2}$$ и после этого курсор 2 раза перемещается влево, так, что после окончания выполнения этой команды курсор начинает мигать слева от только что введенной формулы. При этом я хочу, чтобы эта кнопка стояла между кнопками Вставить и Вставить недавнее, сверху этой кнопки помещалась полоса, такая, как, ну, знаете, есть же в меню полосы, разделяющие их на блоки, в которых группируются как-то связанные друг с другом кнопки. А отображаемое имя этой кнопки должно быть drob' s chislitelem . Для того, чтобы выполнить эту задачу - частный случай задач, заявленных в названии этой темы, нам потребуется редактировать файлы, находящиеся в папке C:\Program Files\LyX 2.0\Resources\ui. Именно, для того, чтобы изменить какое-нибудь меню, нам нужно редактировать файл stdmenus.inc, находящийся в этой папке. Открываем его в каком-нибудь редакторе, я это все делаю в банальном Блокноте. Где интуитивно, где глядя на код и, держа в уме горячие клавиши, которыми я пользовался в LyX, когда я еще только-только начал изучение этой программы и о создании собственных горячих клавиш не могло быть и речи, я понял, что редактировать нужно блок кода этого файла, начинающийся с

#
# EDIT MENU
#
Menu "edit"


А именно: после строки

Item "Paste" "paste"

добавить 2 строки

Separator
Item "drob' s chislstelem" "command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left;"


Первая из добавленных строк как раз и дает разделяющую полоску, описанную выше. Сохраняем изменения в stdmenus.inc, перезапускиваем) LyX. В результате получаем вот что:
Так, теперь займемся добавлением кнопок на панели задач. Признаюсь, что, как добавлять кнопки на панели задач, я подсмотрел вот здесь. А процедура добавления кнопок в меню, описанная выше была додумана уже мной на базе этого узнанного материала. И, уж, конечно, я не претендую ни на какое авторство. Ну, и вот... Вероятно, внимательный читатель вот в этом посте уже заметил отличие одной панели инструментов в окне прогры LyX, которой пользуюсь я (она, эта отличающаяся панель, расположены на фото там точно над рабочей областью, в которой я пишу) от аналогичной панелей инструментов в еще неизмененной прогре LyX. Именно, отличие этой панели сразу бросается в глаза большущей кнопкой, на которой имеется лишь частично вошедшая на фото надпись Moyacom [Ctrl + 0 1]. Однако, той кнопкой я не ограничился, потому что не ясно было, как на кнопки, созданные пользователем, прикреплять еще и какие хочешь картинки. Поэтому я создал еще одну кнопку. На следующем фото созданные мной на этой панели инструментов кнопки указаны красными стрелками:
Вот для начала я и расскажу, как создать кнопку, покрытую желаемой картинкой (у картинки должно быть обязательно расширение .png), при нажатии на которую выполняется команда, определенная в C:\Users\ИВАН\AppData\Roaming\LyX2.0\commands\default.def. Итак, вписываем в этот файл с новой строки следующее:

\define "pina2" "command-sequence math-mode; math-insert \dfrac{\pi}{2}; char- right; char-right;"

Закрываем файл default.def, сохраняем изменения. Далее, в папку C:\Users\ИВАН\AppData\Roaming\LyX2.0\images\commands копируем фото (повторюсь, обязательно расширения .png), под которым мы хотим, чтобы создаваемая нами кнопка появилась в окне прогры LyX, переименовываем это фото в pina2. Давайте договоримся, что кнопку мы добавляем на панель Дополнительно (на приведенном выше фото приведена измененная панель инструментов *Дополнительно*). Но сама програ LyX не знает панели инструментов с таким названием. Эта панель в понимании LyX называется Extra (я это выяснил, смотря на сообщения в не раз упоминавшейся в моих рассказах на этом форуме про прогру LyX области ее окна Сообщения прогресса/отладки при активации/деактивации этой панели через Вид>Панели инструментов). Отлично. Идем в уже упомянутую выше папку C:\Program Files\LyX 2.0\Resources\ui. Открываем файл stdtoolbars.inc, ищем там что-то, начинающееся со слова extra (возможно, с большой буквы) или что-то, похожее на, там, заголовок или что-то в этом духе, содержащее это слово. Чтобы не лезть далеко, мы добавим нашу кнопку в самое начало этой команды. Именно, вот участок кода того файла до моего вмешательства:

...................................................................
StickyPopupMenu "update-others" "Update other formats"
End

Toolbar "extra" "Extra"
Item "Default" "layout"
Item "Numbered list" "layout Enumerate"
...................................................................


А вот каким я сделал тот участок кода:

...................................................................
StickyPopupMenu update-others Update other formats
End

Toolbar "extra" "Extra"
Item "Privet moim chitatelyam" "call pina2"
Item "Default" "layout"
Item "Numbered list" "layout Enumerate"
...................................................................


, где многоточия - это строки файла stdtoolbars.inc, стоящие до и после приведенного кода этого файла. В принципе, все, закрываем с сохранением файл stdtoolbars.inc. Тогда после перезапуска LyX при активации панели Дополнительно на этой панели появляется новая функционирующая кнопка с тем изображением, которое мы и назначили и выполняющая ту функцию, которую мы и определили. Как видно из последнего фото, всплывающая подсказка определяется написанным нами в первой паре кавычек, относящихся к соответствующему item. В заключении скажу, что добавленная мной вторая кнопка была определена без участия файла default.def и, как я сказал выше, без умысла назначить на нее картинку, под которой эта кнопка отображалась бы в окне прогры LyX: я просто вставил перед последней строкой блока кода, в котором я делал только что описанные манипуляции, пустую строку и вставил в эту пустую строку следующий код:

item "Moyacom" "command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left;"

А [Ctrl + 0 1] на созданной мной кнопке на приведенном мной фото видно потому, что у меня на команду command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left; Ctrl+0+1 (признаться, я появления этой подсказки в этом месте совсем не ожидал.

Комментариев нет:

Отправить комментарий

Архив блога