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

Обсуждение энциклопедии.
Post Reply
User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Wed 12 Dec, 2012 13:46

За основу написания плагина возьмем идею:
Иногда я выкладываю рабочие файлы и папки на 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]" активирует смену текущей папки на реальной ФС.

Шаг?: Файловая панель. ???
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Wed 12 Dec, 2012 13:47

Это вводная статья. Будет правится по мере добавки уроков.
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Wed 12 Dec, 2012 19:55

Кстати, какие предложения по дальнейшим шагам?
4-й шаг планирую такой: "Усложняем задачу. На файловой панели в новом виртуальном каталоге [My Folders] можно создавать, удалять и переименовывать папки (любой вложенности)". Или сделать 4-й урок аналогичный третьему, но уже с классами (или лучше классы не применять, чтобы не потерялась сама суть)?
Другие идеи есть?
We are the Borg. You will be assimilated.
So Say We All!

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

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

Post by techie » Fri 25 Jan, 2013 10:21

Было бы неплохо каждый шаг сделать самодостаточным, а то попадая из поиска на Шаг 1 не сразу понимаешь о чём вообще речь, какая доска и вообще. И начать с минимального плагина, без лишних деталей, который хотя бы свою версию показывает.

User avatar
John Doe
Бюрократ
Posts: 11251
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 82 times

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

Post by John Doe » Fri 25 Jan, 2013 13:20

techie wrote:И начать с минимального плагина
Вроде есть http://farmanager.com/svn/trunk/plugins/helloworld/

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Sat 26 Jan, 2013 07:03

Я пока не планировал цикл от простого к сложному по всему АПИ.
Цель была только панельные плагины. Но если кто напишет - Wелкам! :-)
We are the Borg. You will be assimilated.
So Say We All!

Post Reply

Return to “Энциклопедия”