Page 39 of 74

Posted: Mon Nov 14, 2011 3:39 pm
by VladSh
Instructor wrote:Реализовано. Будет доступно после релиза 4.7.0.
Буду танцевать :D Спасибо!

Posted: Wed Nov 16, 2011 3:58 pm
by Instructor
Добавлено: возможность задавать в WindowSubClass фильтр сообщений.
Добавлено: метод AkelPad.GetEditDoc - определить дескриптор активного документа.
Для информации: изменено сообщение AKD_GETMAININFO, а также добавлено AKD_GETFRAMEINFO.

Added: ability to specify the message filter for WindowSubClass.
Added: method AkelPad.GetEditDoc - get active document handle.
For information: changed message AKD_GETMAININFO and also added AKD_GETFRAMEINFO.


Scripts plugin v10.1

Posted: Wed Nov 16, 2011 4:04 pm
by Infocatcher
Instructor wrote:Для информации: изменено сообщение AKD_GETMAININFO, а также добавлено AKD_GETFRAMEINFO.
Надо обновить ForceNewInstance.js.
А еще у меня четыре похожих скрипта + контекстное меню текстового поля в converter.js...

Posted: Sun Dec 04, 2011 5:21 pm
by Instructor
Добавлено: метод SetFrameInfo - установить настройки вкладки.
Для информации: дополнено AKD_GETMAININFO, добавлено AKD_SETFRAMEINFO, изменено AKD_GETFRAMEINFO.

Added: method SetFrameInfo - set frame information.
For information: Completed AKD_GETMAININFO, added AKD_SETFRAMEINFO, changed AKD_GETFRAMEINFO.


Scripts plugin v10.4

Posted: Mon Dec 05, 2011 8:53 pm
by KDJ
Scripts plugin v10.4

Code: Select all

AkelPad.SetFrameInfo(0, 46 /*FIS_URLLEFTDELIMITERS*/, "abc");
AkelPad.SetFrameInfo(0, 50 /*FIS_URLRIGHTDELIMITERS*/, "abc");
AkelPad.SetFrameInfo(0, 55 /*FIS_WORDDELIMITERS*/, "abc");
generates type mismatch error.

Code: Select all

AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 108 /*FI_WORDDELIMITERS*/, 0);
returns a pointer to memory instead of a string.

Posted: Tue Dec 06, 2011 10:44 am
by VladSh
Instructor wrote:Добавлено: метод SetFrameInfo - установить настройки вкладки.
Хотелось бы иметь возможность при создании документа устанавливать в "скрытых свойствах" (специальные FIS_*) дирректорию для сохранения данного файла и его расширение.
Это очень помогло бы при установке синтаксической темы и подсветки в т.ч. (неплохо было бы научить читать установленное расширение Coder-плагин), таким же образом можно было бы автоматически определять "белый список" при включении SpellCheck, а также удобно было бы при сохранении нового файла.

Добавлено:
и хотелось бы "зеркального" метода SetFrameInfo, т.е. для получения установок, что-то типа GetFrameInfo.

Posted: Tue Dec 06, 2011 12:46 pm
by VladSh
Instructor

Code: Select all

var bTabStopAsSpaces = AkelPad.SendMessage(AkelPad.GetMainWnd(), 1223 /*AKD_GETFRAMEINFO*/, 52 /*FI_TABSTOPASSPACES*/, 0);
Похоже опять отвалилось..
В документации (FIS_*) 52 вообще нету, но оно возвращает 3, как будто возвращает число пробелов из настроек в символе табуляции.

Добавлено:
И что-то как-то странно работает галка "Пробелы" в "Размере табуляции" в настройках проги. Ставлю галку, Ок (диалог закрывается). Открываю диалог снова и вижу: галка не стоит, размер табуляции = 1.

Posted: Tue Dec 06, 2011 3:43 pm
by Instructor
VladSh wrote:

Code: Select all

var bTabStopAsSpaces = AkelPad.SendMessage(AkelPad.GetMainWnd(), 1223 /*AKD_GETFRAMEINFO*/, 52 /*FI_TABSTOPASSPACES*/, 0);
Похоже опять отвалилось..
В документации (FIS_*) 52 вообще нету, но оно возвращает 3, как будто возвращает число пробелов из настроек в символе табуляции.
FIS_ это только для AKD_SETFRAMEINFO/SetFrameInfo. Для AKD_GETFRAMEINFO используются FI_, но, в связи с добавлением AKD_SETFRAMEINFO в 4.7.1, были "уницированы" флаги сообщений. См. AkelDLL.h - там FI_TABSTOPASSPACES равен 53.
VladSh wrote:И что-то как-то странно работает галка "Пробелы" в "Размере табуляции" в настройках проги. Ставлю галку, Ок (диалог закрывается). Открываю диалог снова и вижу: галка не стоит, размер табуляции = 1.
viewtopic.php?p=15933#p15933

Posted: Tue Dec 06, 2011 4:06 pm
by VladSh
Instructor
Ок, спасибо.

Posted: Tue Dec 06, 2011 8:20 pm
by Instructor
KDJ wrote:...generates type mismatch error.
...returns a pointer to memory instead of a string.
Those calls works only with memory.

Code: Select all

AkelPad.SetFrameInfo(0, 55 /*FIS_WORDDELIMITERS*/, AkelPad.MemStrPtr("abc")); 
And the next flags will work only in 4.7.2 - FIS_URLPREFIXESENABLE, FIS_URLPREFIXES, FIS_URLDELIMITERSENABLE, FIS_URLLEFTDELIMITERS, FIS_URLRIGHTDELIMITERS, FIS_WORDDELIMITERSENABLE, FIS_WORDDELIMITERS, FIS_WRAPDELIMITERSENABLE, FIS_WRAPDELIMITERS.

Posted: Tue Dec 06, 2011 9:11 pm
by KDJ
Instructor wrote:Those calls works only with memory.
Well, but it is inconsistent with the description.
AkelDLL.h:

Code: Select all

AKD_GETFRAMEINFO
(void)wParam        == can be combination of FI_* defines or pointer to a FRAMEINFO structure.
 If wParam is combination of FI_* defines, then return value is the requested data.
Scripts-Eng.txt:

Code: Select all

  SetFrameInfo(lpFrame, nType, dwData);
Arguments
  dwData
    Setting data.

Posted: Thu Dec 08, 2011 4:32 am
by Instructor
KDJ
AkelPad.SendMessage always returns integer, so you can read it like "return value is the pointer to requested data."

Posted: Thu Dec 08, 2011 6:33 pm
by KDJ
Instructor
Whether this means that:
AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 69 /*FI_CARETOPTIONS*/, 0);
returns caret options integer value directly,
and
AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 108 /*FI_WORDDELIMITERS*/, 0);
returns pointer to word delimiters string?

In the case of SetFrameInfo:
AkelPad.SetFrameInfo(0, 17 /*FIS_CARETOPTIONS*/, CaretOptions);
CaretOptions must be integer value specified directly,
and
AkelPad.SetFrameInfo(0, 55 /*FIS_WORDDELIMITERS*/, WordDelimiters);
WordDelimiters must be pointer to word delimiters string?

Whether I well understood it?

Posted: Sun Dec 11, 2011 10:34 am
by Instructor
KDJ
Correct. But be carefull if you don't use FRAMEINFO in wParam like

Code: Select all

AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 108 /*FI_WORDDELIMITERS*/, 0);
It returns pointer to memory directly to AkelPad storage.

Posted: Sun Dec 11, 2011 12:16 pm
by KDJ
Instructor wrote:And the next flags will work only in 4.7.2 - FIS_URLPREFIXESENABLE, FIS_URLPREFIXES, FIS_URLDELIMITERSENABLE, FIS_URLLEFTDELIMITERS, FIS_URLRIGHTDELIMITERS, FIS_WORDDELIMITERSENABLE, FIS_WORDDELIMITERS, FIS_WRAPDELIMITERSENABLE, FIS_WRAPDELIMITERS.
How it will look like in future versions?