Page 1 of 1

Plugin API. Пишем панельный плагин. Введение

Posted: Wed 12 Dec, 2012 13:46
by Skirda
За основу написания плагина возьмем идею:
Иногда я выкладываю рабочие файлы и папки на Desktop`е.
И если я хочу отобразить на панели FAR это дело, то приходится пройти путь
C:->Windows->Profiles->user->Desktop->My Folder
Возможно ли создание плагина для FAR, который добавлял бы пункт DeskTop
(для текущего пользователя) в меню выбора диктоводов?
По своей сути данный плагин особой ценности не представляет - для этой цели лучше использовать комбинацию клавиш RightCtrl-1..0. Но в качестве учебного пособия - это то, что надо.

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

Шаг1: Первое приближение
Полная реализация идеи. Информацию о местоположении Доски пользователя берем из реестра - HCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop. Имеется так же возможность задания конкретного каталога для перехода (не только Desktop текущего пользователя) - достигается путем введения блока конфигурирования плагина. Этим самым "конкретным каталогом" может быть каталог, в котором лежит куча ссылок...
На данном шаге плагин не создает собственной панели.

Шаг2: Файловая панель. Начало
Добавляем к предыдущему варианту плагина собственную панель, эмулирующую файловую систему. На данном шаге файловая панель состоит из одного элемента - виртуального каталога "[Default Dir]", переход в который заставляет Far Manager "прыгнуть" на реальной файловой системе в "нашу папку".

Шаг3: Файловая панель. Навигация
Добавляем к предыдущему варианту виртуальный каталог "[Shell Folders]", содержащий виртуальные ссылки на вполне реальные каталоги. Панель по прежнему в режиме Read Only (ни добавлять ни удалять с панели мы еще не умеем). Переход в подкаталоги папки "[Shell Folders]" активирует смену текущей папки на реальной ФС.

Шаг?: Файловая панель. ???

Re: Plugin API. Пишем панельный плагин. Введение

Posted: Wed 12 Dec, 2012 13:47
by Skirda
Это вводная статья. Будет правится по мере добавки уроков.

Re: Plugin API. Пишем панельный плагин. Введение

Posted: Wed 12 Dec, 2012 19:55
by Skirda
Кстати, какие предложения по дальнейшим шагам?
4-й шаг планирую такой: "Усложняем задачу. На файловой панели в новом виртуальном каталоге [My Folders] можно создавать, удалять и переименовывать папки (любой вложенности)". Или сделать 4-й урок аналогичный третьему, но уже с классами (или лучше классы не применять, чтобы не потерялась сама суть)?
Другие идеи есть?

Re: Plugin API. Пишем панельный плагин. Введение

Posted: Fri 25 Jan, 2013 10:21
by techie
Было бы неплохо каждый шаг сделать самодостаточным, а то попадая из поиска на Шаг 1 не сразу понимаешь о чём вообще речь, какая доска и вообще. И начать с минимального плагина, без лишних деталей, который хотя бы свою версию показывает.

Re: Plugin API. Пишем панельный плагин. Введение

Posted: Fri 25 Jan, 2013 13:20
by John Doe
techie wrote:И начать с минимального плагина
Вроде есть http://farmanager.com/svn/trunk/plugins/helloworld/

Re: Plugin API. Пишем панельный плагин. Введение

Posted: Sat 26 Jan, 2013 07:03
by Skirda
Я пока не планировал цикл от простого к сложному по всему АПИ.
Цель была только панельные плагины. Но если кто напишет - Wелкам! :-)