Grabber API

Разработка Far.
User avatar
John Doe
Бюрократ
Posts: 11411
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Grabber API

Post by John Doe » Thu 22 Jan, 2015 10:59

Latest post of the previous page:

Skirda wrote: ...а макросы, кроме всего прочего (Put/Add), могут юзать и внутренний - Clip(5,2)).
Не вижу для чего может понадобиться в граббере внутренний.
Skirda wrote: а как тебе видится "Наверно требуется именно АПИ для получения содержимое фаровского буфера по заданным координатам"?
Плагин передаёт SMALL_RECT, COORD, FAR_CHAR_INFO*, и в ответ фар заполняет буфер.

Только вопрос:
//координаты выделенного блока относительно начала экранного буфера
Почему не относительно фара?

User avatar
HaRT
Moderator
Posts: 8116
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 105 times

Grabber API

Post by HaRT » Thu 22 Jan, 2015 13:30

John Doe wrote: для чего может понадобиться в граббере внутренний
Чтобы макрос мог проанализировать, что показано в окне, не похерив содержимое системного буфера. :-)
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Grabber API

Post by John Doe » Thu 22 Jan, 2015 14:00

Если необходимо анализировать то, что можно получить только через CtrlIns, то да.
Но это ведь не так.

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

Grabber API

Post by Skirda » Fri 23 Jan, 2015 07:50

John Doe wrote:
Skirda wrote: ...а макросы, кроме всего прочего (Put/Add), могут юзать и внутренний - Clip(5,2)).
Не вижу для чего может понадобиться в граббере внутренний.
Встречный вопрос - как в макросах работа с внутренним буфером соотносится с грабером? :-)

Предложенные функции - работа с буфером обмена. Отношение к грабберу косвенное. Для грабер-плагина ничего не мешает в тех же форматах (rtf/html/bmp/etc) копировать в буфер обмена выделенный в редакторе кусок текста.
We are the Borg. You will be assimilated.
So Say We All!

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

Grabber API

Post by John Doe » Fri 23 Jan, 2015 07:57

Skirda wrote: Встречный вопрос - как в макросах работа с внутренним буфером соотносится с грабером?
Сейчас выделенную область макрос может получить только с помощью CtrlIns.
Наследие прошлого. Если развивать, то в другую сторону: дать доступ через свойства/функции.
Skirda wrote: Для грабер-плагина ничего не мешает в тех же форматах (rtf/html/bmp/etc) копировать в буфер обмена выделенный в редакторе кусок текста.
Пусть копирует.
Но для целей анализа зачем буфер обмена, если есть более прямые пути.
Skirda wrote: Предложенные функции - работа с буфером обмена.
Речь только о работе с "внутренним" буфером?
Или что-то ещё?

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

Grabber API

Post by Skirda » Fri 23 Jan, 2015 08:19

John Doe wrote:
Skirda wrote: Предложенные функции - работа с буфером обмена.
Речь только о работе с "внутренним" буфером?
Или что-то ещё?
Внутренний буфер тут как бы ни причем. Внутренний буфер это доп.фича (изначально для макросов), чтобы не "портить" основной буфер... ну или иметь на борту несколько буфер обмена.
Если ты читал внимательно моё месаг, то мог увидеть фразу:
FSF.CopyToClipboard ... (с очисткой предыдущего содержимого)
Да, плагин может сам заюзать WinAPI, чтобы добавить в существующий буфер новые данные, не стирая предыдущее значение, но при этом у него не будет доступа к "другим" буферам.
We are the Borg. You will be assimilated.
So Say We All!

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

Grabber API

Post by John Doe » Fri 23 Jan, 2015 08:28

Skirda wrote: Внутренний буфер тут как бы ни причем.
Выходит я неправильно понял.
Skirda wrote: но при этом у него не будет доступа к "другим" буферам.
Можно подробнее?

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

Grabber API

Post by Skirda » Fri 23 Jan, 2015 10:49

John Doe wrote:
Skirda wrote: но при этом у него не будет доступа к "другим" буферам.
Можно подробнее?
К теме относится косвенно, ну да ладно.
Сейчас макросы могут манипулировать клипбордом достаточно просто - get/set/add/clear/swap/etc.. Причем как виндовым клипбордом, так и внутренними (сценарий работы с разными буферами придумать достаточно просто)
Плагины такого не могут (могут только get/set/clear виндового буфера).
Новые FSF-функции - в первую очередь для add (внутренние буферы - как бонус).
We are the Borg. You will be assimilated.
So Say We All!

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

Grabber API

Post by John Doe » Fri 23 Jan, 2015 11:09

Skirda wrote: К теме относится косвенно
Тему разделим, не проблема.
Skirda wrote: Сейчас макросы могут манипулировать клипбордом достаточно просто - get/set/add/clear/swap/etc.
"add" тут легко заменить на последовательность "get/set".
Под "swap" видимо понимается переключение между системным/внутренним клипбордом.
Под "etc" видимо копирование внутреннего в системный и наоборот.
Skirda wrote: (сценарий работы с разными буферами придумать достаточно просто)
Мне например сложно.
Внутренний буфер сейчас существует только во время исполнения макроса, и основное его предназначение - это компенсировать неполноту macroapi, или избавить неподготовленного пользователся от изучения этого АПИ.
Какие ещё варианты применения?
Skirda wrote: Плагины такого не могут
Вопрос в том, зачем им это вообще может понадобиться? Пример?
Skirda wrote: Новые FSF-функции - в первую очередь для add (внутренние буферы - как бонус).
"add" в macroapi тупо заменяется на "get/set".
А для плагинов, если я правильно понял, подразумевается другая задача: добавить к содержимому клипборда ещё один формат. Или нет?

User avatar
DrKnS
Posts: 4644
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Grabber API

Post by DrKnS » Fri 23 Jan, 2015 18:41

Skirda wrote: Плагины такого не могут (могут только get/set/clear виндового буфера).
А оно им надо?
Насколько я понимаю, внутренний буфер появился не от хорошей жизни, а от отсутствия нормальных переменных в макроязыке, использования вместо них буфера обмена и нежелания при этом терять его содержимое.

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

Grabber API

Post by Skirda » Mon 26 Jan, 2015 09:48

DrKnS wrote:Насколько я понимаю, внутренний буфер появился не от хорошей жизни, а от отсутствия нормальных переменных в макроязыке, использования вместо них буфера обмена и нежелания при этом терять его содержимое.
Ну вообще-то внутренний буфер появился (10.01.2003, 1.7 build 1587) под влиянием плагина MultiClip :-)
А для того, чтобы не городить огород с клавиатурными сочетаниями, сначала были введены $IClip и IClip, которые потом превратились в макро-функцию clip.
We are the Borg. You will be assimilated.
So Say We All!

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

Grabber API

Post by John Doe » Mon 26 Jan, 2015 09:53

Skirda wrote: под влиянием плагина MultiClip
История может и интересная, но по факту получилось именно то, о чём написал DrKnS.

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

Grabber API

Post by Skirda » Mon 26 Jan, 2015 09:59

John Doe wrote:по факту получилось именно то, о чём написал DrKnS.
Тогда было проще макрофункцию написать, чем АПИ модифицировать.
Но изначальная задумка была не про макросы.
We are the Borg. You will be assimilated.
So Say We All!

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

Grabber API

Post by John Doe » Mon 26 Jan, 2015 10:05

Skirda wrote: Но изначальная задумка была не про макросы.
Планируется вернуться к изначальной задумке?
Если да, то я выделю хвост этого обсуждения в отдельную тему.

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

Grabber API

Post by Skirda » Mon 26 Jan, 2015 10:08

Планировать всё что угодно можно, но судя по всему этот функционал никому не нужен...
We are the Borg. You will be assimilated.
So Say We All!

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

Grabber API

Post by John Doe » Mon 26 Jan, 2015 10:14

Skirda wrote: судя по всему этот функционал никому не нужен...
Судя по "чему"?
Нигде речи не было об этом функционале.
Мне пока не вполне понятно в каком виде он может быть.
В плагине как-то так:

Post Reply

Return to “Development”