Page 57 of 97

Posted: Thu Feb 03, 2011 4:03 pm
by FeyFre
VladSh
PS:
Вот такой кусочек кода может вам поможет

Code: Select all

var frame = AkelPad.SendMessage(hmain, AKD_FRAMEFIND,FWF_CURRENT,0);
Я бы написал больше, но пока не в силах устно на ходу просчитать смещение поля.

Posted: Thu Feb 03, 2011 6:58 pm
by VladSh
FeyFre
Пасиба, но я сам ничего не понял... :)
AKD_FRAMEFIND нигде ничему не равно (не знаю, что туда передавать), а FWF_CURRENT = 1.

Posted: Thu Feb 03, 2011 8:27 pm
by FeyFre
VladSh
Все AKD_* объявлены в AkelDll.h как WM_USER + ###

Code: Select all

#define AKD_FRAMEFIND              (WM_USER + 264)
#define AKD_FRAMEFINDA             (WM_USER + 265)
#define AKD_FRAMEFINDW             (WM_USER + 266)
WM_USER объявлен в PlatformSDK(Windows SDK) в файле WinUser.h как 0x0400
Сообщение AKD_FRAMEFIND возвращает указатель на внутреннюю структуру Акеле FRAMEDATA (берем там в том же AkelDll.h) - структура которая содержит всю индивидуальную информацию вкладки(каждой вкладке своя, в SDI - в единичном экземпляре)
В общем, пока рылся, нашел путь

Code: Select all

var tabstob = AkelPad.SendMessage(hWndEdit, AEM_GETTABSTOP,0,0);
// Манипулируем tabstob
AkelPad.SendMessage(hWndEdit, AEM_SETTABSTOP,tabstop,0);
// AEM_SETTABSTOP = WM_USER + 2216
// AEM_GETTABSTOP  = WM_USER + 2215
// WM_USER = 0x0400

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

Posted: Thu Feb 03, 2011 10:43 pm
by Infocatcher
openRelativeFile.js
Небольшие улучшения + поддержка вложенных манифестов (только один уровень, дока молчит, примеров с большей вложенностью не видать, а проверять лениво).

Posted: Fri Feb 04, 2011 7:46 am
by VladSh
FeyFre wrote:Тут мы напрямую у контролла спрашиваем размер табов, и устанавливаем его, без участия FRAMEDATA. Соотв. оно в настройки не попадет. Но с другой стороны, сколько оно буде держатся в окне тоже понятия не имею.
Спасибо огромное за помощь! 8)
Всё отлично: изменения только для текущей вкладки; размер таба держится на всё время жизни вкладки. Это именно то, что мне было нужно!
P.S. В скрипт Instructor'а добавил дополнительный аргумент (при его наличии настройки программы не меняются) и отправил ему в личку.

Posted: Fri Feb 04, 2011 8:34 am
by FeyFre
Всё отлично: изменения только для текущей вкладки; размер таба держится на всё время жизни вкладки.
Все usecase-попробовали? Как оно себя ведет при разделении окон и обратно?

Posted: Fri Feb 04, 2011 8:54 am
by VladSh
FeyFre
Все или нет, не знаю.. но при разделении окон работает правильно: изменяется во всех частях сразу, не сбрасывается при снятии разделения окна.

Posted: Fri Feb 04, 2011 9:52 am
by se7h
Infocatcher wrote:openRelativeFile.js
Небольшие улучшения + поддержка вложенных манифестов (только один уровень, дока молчит, примеров с большей вложенностью не видать, а проверять лениво).
а если добавить возможость открытия файлов в ассоциированных программах будет вообще атас

jpg во вьювере, mp3 в плеере и т.д.

Posted: Fri Feb 04, 2011 1:19 pm
by Infocatcher
se7h wrote:
Infocatcher wrote:openRelativeFile.js
[...]
а если добавить возможость открытия файлов в ассоциированных программах будет вообще атас

jpg во вьювере, mp3 в плеере и т.д.
Не понятно, как различать, что открывать в AkelPad'e, а что – по системной ассоциации.
Впрочем, начать можно и со списка расширений. :)

Posted: Fri Feb 04, 2011 1:28 pm
by se7h
Infocatcher wrote:
se7h wrote:
Infocatcher wrote:openRelativeFile.js
[...]
а если добавить возможость открытия файлов в ассоциированных программах будет вообще атас

jpg во вьювере, mp3 в плеере и т.д.
Не понятно, как различать, что открывать в AkelPad'e, а что – по системной ассоциации.
Впрочем, начать можно и со списка расширений. :)
возможно, файл можно проверить на бинарность? и затем открыть такой в другой программе :?
если что, список тоже решение

Posted: Fri Feb 04, 2011 1:43 pm
by Fr0sT
возможно, файл можно проверить на бинарность?
Как?
А различать, в чем запускать, можно параметром.

Posted: Fri Feb 04, 2011 1:52 pm
by se7h
Fr0sT wrote:
возможно, файл можно проверить на бинарность?
Как?
А различать, в чем запускать, можно параметром.
Scripts-Rus.txt wrote:AkelPad.OpenFile
________________

Открыть файл.

OpenFile(pFile[, nFlags][, nCodePage][, bBOM]);

Аргументы
pFile
Файл для открытия.
nFlags
0x1 //OD_ADT_BINARY_ERROR Проверить является ли файл бинарным.
...
как-то так :roll:

Posted: Fri Feb 04, 2011 2:42 pm
by Infocatcher
se7h wrote:как-то так :roll:
Как-то так будет
AkelPad
---------------------------
"...\l.gif" бинарный файл. Продолжить?
---------------------------
ОК Отмена
На ОК вернет 0, а на Отмена – -12.

Сделал: openRelativeFile.js
Если на запрос AkelPad'а выбрать отмену, то будет использована системная ассоциация.

Posted: Fri Feb 04, 2011 3:04 pm
by se7h
ИМО лучше белый список с расширениями, чем костыль с отменной
впрочем, одно другому не мешает, если будет возможность выбрать свой вариант

Posted: Fri Feb 04, 2011 3:19 pm
by Infocatcher
Тогда нужна возможность заставить AkelPad.OpenFile() молчать на бинарных файлах (и не открывать их).