Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
far.rtf
Скачиваний:
35
Добавлен:
13.03.2015
Размер:
271.49 Кб
Скачать

F8. Удаление файлов и каталогов.

Для удаления файлов или каталогов надо выделить нужный файл или каталог или выбрать их группу. Для удаления каталога нет необходимости предварительно удалять его содержимое. Нельзя удалить текущий каталог.

Shift-F8 удаляет только файл под курсором (если выделена группа файлов).

Shift-Del всегда удаляет файлы, не используя Корзину (каталог для временного хранения удаляемых файлов). Использование Корзины командами F8 и Shift-F8 зависит от конфигурации программы FAR.

F9. Вызов и настройка меню конфигурации системы.

Меню вызывается клавишей F9 или нажатием кнопки мыши на верхней строке экрана.

Размещено на Allbest.r

Плагины. Создание.

Плагин (от английского Plug-in - подключаемый модуль) - это внешние подключаемые модули (plugins), которые применяются для расширения возможностей программ. Плагины не являются специфической чертой FAR. С их помощью расширяются, например, возможности ICQ, Adobe Photoshop или Winamp. Есть они и в других файл-менеджерах, например, в Windows Commander. Но, по сравнению с другими файловыми менеджерами, только в FAR плагинам предоставляются поистине фантастические возможности: плагины работают в любом месте - в панелях, в редакторе, в программе просмотра; их можно запускать прямо из командной строки. Иной раз ты просто не знаешь, кто именно выполнит следующую команду - сам far.exe или плагины, настолько тесно слилась оболочка со своими помощниками. Сама идеология плагинов позволяет настраивать оболочку под себя, добавляя нужное и выкидывая лишнее. Это самое главное преимущество систем с плагинами перед монолитными программами. Почему именно "плагины", а не прямая компиляция функционала в ядро Far Manager? Здесь все просто и вытекает из определения термина "плагин" - я хочу вот эту фишку в редакторе, а соседу она будет лишней. Ок, я ставлю плагин, добавляющий эту фишку, а сосед пусть "мучается" - при этом ему хорошо, я доволен и вместе мы не перегружаем исходный код Far Manager "ненужными" функциями.А что делать, если этой самой функции нигде нет? Здесь три пути:

  1. написать плагин самому

  2. найти (и убедить в нужности функционала) того, кто нам напишет такой плагин

  3. смириться (или становимся программистом и далее путь 1)

Наш путь первый. Не будем отступать от традиций и в качестве примера возьмем плагин "helloworld", входящий в инсталляцию Far Manager.Собираем материал. Итак, цель есть - простой и понятный плагин, вызов которого приветствует пользователя фразой "Здравствуй, Мир!". Остались вопросы:

  1. Какой минимальный набор функций, чтобы Far Manager понял, что наша dll - плагин?

  2. Интерфейс может быть на другом языке, отличным от начертания "Здравствуй, Мир!". Как сделать мультиязычный интерфейс?

  3. Каким образом Far Manager вообще работает с плагинами?

  4. Какие файлы входят в проект?

Как Far Manager работает с плагинами? Прежде чем двигаться дальше, посмотрим, что делает Far Manager от момента запуска до приема команд от пользователя.

  1. Пользователь запускает Far Manager.

  2. Far Manager настраивает свое окружение (инициализация глобальных переменных, конфигурационных баз, панелей и прочих объектов интерфейса).

  3. Загружает плагины.

  4. Загружает макросы.

  5. Запускает основной цикл обработки и показывает панели.

Подробнее рассмотрим загрузку плагинов.Для известных путей происходит сканирование файловой структуры на наличие файлов "*.dll".Очередной найденный dll-модуль проверятся на предмет принадлежности в текущей OS, на наличие предопределенных экспортируемых функций (пока GetGlobalInfoW). Минимальный набор функций. Весь набор экспортируемых функций, которые понимает Far Manager и ожидает от плагина, можно подсмотреть в конце файла plugin.hpp. Но чтобы плагин "взлетел", понадобится следующий минимальный набор экспортируемых функций:

  • GetGlobalInfoW - Основная информация о плагине - автор, версия, GUID плагина, описание плагина, минимальная версия Far Manager. Функция вызывается один раз сразу после загрузки DLL-модуля в память.

  • SetStartupInfoW - Вызывается один раз, сразу после вызова функции GetGlobalInfoW. Far Manager передаёт плагину информацию, необходимую для дальнейшей работы (указатели на сервисные и некоторые полезные внутренние функции Far Manager).

  • GetPluginInfoW - Far Manager вызывает эту функцию для получения дополнительной информации о плагине (из какого места можно вызвать плагин, префикс(ы), строки для разных меню вызова).

  • OpenW - Far Manager вызывает OpenW, когда пользователь желает воспользоваться функциями плагина. Здесь мы реализовываем основной функционал.

Если плагин позволяет изменять некоторые свои настройки, то понадобится экспортируемая функция ConfigureW. Но в нашем простом плагине настраивать ничего не будем.Состав проекта.В проекте будут следующие файлы:

  • README.TXT - Описание плагина. Что, зачем и почему. Пользователь всегда хочет знать подробности.

  • changelog - Что менялось в проекте от версии к версии. Файл опциональный, но полезный.

  • guid.hpp - GUID`ы плагина, меню, диалогов.

  • HelloWorld.cpp - "Ядро" системы. Т.к. описываемый плагин простой, то весь код разместим в одном файле.

  • HelloWorld.hpp - Локальные функции и определения проекта. Опционально, если весь код в одном файле.

  • HelloWorld.rc - Ресурсы. Версия dll-модуля

  • HelloWorld*.hlf - Файлы справки на разных языках. Опционально, но полезно - пользователю можно сказать "жми F1 и читай". Можно повторить содержимое README.TXT.

  • HelloWorld*.lng - Языковые ресурсы - строки, которые плагин показывает пользователю (в меню, диалогах, и пр.).

  • HelloWorldLng.hpp - Содержит константы, определяющие строковые ресурсы в lng-файлах.

  • HelloWorldW.def - Показывает сборщику, какие функции экспортирует dll-модуль.

  • makefile - Файл, содержащий правила сборки плагина (правила, которые понимает команда make.exe и аналогичные).

  • version.hpp - Содержит константы, описывающие версию плагина. Константы используются как в rc-файле, так и в функции GetGlobalInfoW.

Мультиязычный интерфейс.Для корректного отображения языкозависимых строк плагину достаточно выполнить несколько требований:

  • Держать строки в файлах *.lng

  • Вызывать нужные строки по номеру с помощью АПИ-функции PluginStartupInfo::GetMsg

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]