Scripts discussion (2)
- Author
- Message
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
1. May use ListView instead of ListBox.FeyFre wrote:1. List is ordinary LISTBOX, and selection remains active even when AkelPad is inactive. I don't think I can set different behaviour here.
2. See v0.4. Sorry for GUI-less, but that is all I can do now.
2. So, to change shortcut keys on Alt+T and Shift+Ctrl+Alt+T, I have to write in the file History.ini:
HK_RT=1108
HK_RA=1876
Calculation for Shift+Ctrl+Alt+T:
((1 | 2 | 4) << 8 ) | 0x54 == 0x0754 == 1876
A little complicated for a normal user.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Ага, неплохо. Только пробелов не хватает:se7h wrote:вроде добавили поддержку CSS
Code: Select all
color:#f00!important
Updated: https://github.com/einars/js-beautify/c ... ca0c85ec65
Added -indentScripts argument.
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
> 1. May use ListView instead of ListBox.
I shall use ListView if I shall write on C, or on any other language where I have direct access into memory.
ListView as ListBox does not have any shortcuts to tune drawing of items.
> 2. So, to change shortcut keys on
To use Calc.exe it is not so complicated.
((1 | 2 | 4) << 8 ) | 0x54 == 0x0754 == 1876
is equal to
(1+2+4)*256+84 = 1876
If to take into account this operation is singular(i.e user will tune hotkeys once in life, not once per hour) - don't see any problems.
I shall use ListView if I shall write on C, or on any other language where I have direct access into memory.
ListView as ListBox does not have any shortcuts to tune drawing of items.
> 2. So, to change shortcut keys on
To use Calc.exe it is not so complicated.
((1 | 2 | 4) << 8 ) | 0x54 == 0x0754 == 1876
is equal to
(1+2+4)*256+84 = 1876
If to take into account this operation is singular(i.e user will tune hotkeys once in life, not once per hour) - don't see any problems.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Коллеги, подскажите.
Надо взять содержимое файла следующей от текущей вкладки. Желательно не переключаться в следующую вкладку, но не суть важно.
Ещё вопрос: можно ли использовать для чтения настроек AkelPad'а oSet?
Просьба помочь: пытаюсь взять из настроек редактора расширение для сохранения "по умолчанию":но оно возвращает не расширение, а 4.. В чём тут собака порылась?)
Надо взять содержимое файла следующей от текущей вкладки. Желательно не переключаться в следующую вкладку, но не суть важно.
Ещё вопрос: можно ли использовать для чтения настроек AkelPad'а oSet?
Просьба помочь: пытаюсь взять из настроек редактора расширение для сохранения "по умолчанию":
Code: Select all
var pDefaultExt = AkelPad.SendMessage(AkelPad.GetMainWnd(), 1222 /*AKD_GETMAININFO*/, 224 /*MI_DEFAULTSAVEEXT*/, 0)
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
VladSh
В данному случае в качестве lParam(4 аргумент) нужно дать адрес памяти, куда записать значение, а возвращает оно количество символов записаных.
Если вызвали с 0 параметром, оно скажет сктолько нужно нужно _TCHAR-ов памяти(включая завершающий ноль).
Если вызвали с адресом буфера - запишет туда, и вернет количество _TCHAR-ов, но уже без нуля.
oSet - нельзя. Даже для чтения настроек плагинов нельзя. АР читает свои настройки немножко по другому алгоритму, даже чем настройки плагинов.
Собакак порылась в том что АР не выдаст нагора указатели на память которую он использует. В целях безопасности(что-бы никто туда не нагадил).но оно возвращает не расширение, а 4.. В чём тут собака порылась?)
В данному случае в качестве lParam(4 аргумент) нужно дать адрес памяти, куда записать значение, а возвращает оно количество символов записаных.
Если вызвали с 0 параметром, оно скажет сктолько нужно нужно _TCHAR-ов памяти(включая завершающий ноль).
Если вызвали с адресом буфера - запишет туда, и вернет количество _TCHAR-ов, но уже без нуля.
oSet - нельзя. Даже для чтения настроек плагинов нельзя. АР читает свои настройки немножко по другому алгоритму, даже чем настройки плагинов.
сообщение AKD_FRAMEFIND возвращает структуру FRAMEDATA в которой встроена структура EDITINFO, в которой есть поле типа AEHDOC которое по сути идентифицирует открытый документ во вкладке. Пошаманить вокруг этого, возможно что-то и достанете.Надо взять содержимое файла следующей от текущей вкладки.
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
FeyFre
History.js
Снова не указан фильтр сообщений.
History.js
Code: Select all
AkelPad.WindowSubClass(lb_hist, ListSubClass)
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Instructor
Поправил, но это не спасает от этого http://staynormal.org.ua/akelpad/shadow.png
Поправил, но это не спасает от этого http://staynormal.org.ua/akelpad/shadow.png
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
FeyFre
1.
->
2.
->
3.
->
4.
->
5.
->
1.
Code: Select all
g_hDockWnd = CreateWindowEx(0,DOCKCLASSNAME,DOCKCLASSNAME,WS_VISIBLE|WS_CHILD
Code: Select all
g_hDockWnd = CreateWindowEx(0,DOCKCLASSNAME,DOCKCLASSNAME,/*WS_VISIBLE|*/WS_CHILD
Code: Select all
ShowWindow(g_hDockWnd,SW_SHOW);
Code: Select all
//ShowWindow(g_hDockWnd,SW_SHOW);
Code: Select all
AkelPad.SendMessage(g_hAkelPad, AKD_DOCK, DK_SHOW, g_pDock);
AkelPad.SendMessage(g_hAkelPad, AKD_RESIZE, 0, 0);
Code: Select all
AkelPad.SendMessage(g_hAkelPad, AKD_DOCK, DK_SHOW, g_pDock);
//AkelPad.SendMessage(g_hAkelPad, AKD_RESIZE, 0, 0);
Code: Select all
MoveWindow(st_fr, pos.x, pos.y, pos.w, pos.h, 1);
pos = GetControlPos(_W,_H,IDC_EXIT);
MoveWindow(btn_exit, pos.x, pos.y, pos.w, pos.h, 1);
pos = GetControlPos(_W,_H,IDC_HIST);
MoveWindow(lb_hist , pos.x, pos.y, pos.w, pos.h, 1);
pos = GetControlPos(_W,_H,IDC_HKT);
MoveWindow(hk_t, pos.x, pos.y, pos.w, pos.h, 1);
pos = GetControlPos(_W,_H,IDC_HKA);
MoveWindow(hk_a, pos.x, pos.y, pos.w, pos.h, 1);
pos = GetControlPos(_W,_H,IDC_HKBT);
MoveWindow(hkbt, pos.x, pos.y, pos.w, pos.h, 1);
pos = GetControlPos(_W,_H,IDC_HKBA);
MoveWindow(hkba, pos.x, pos.y, pos.w, pos.h, 1);
Code: Select all
MoveWindow(st_fr, pos.x, pos.y, pos.w, pos.h, 0);
pos = GetControlPos(_W,_H,IDC_EXIT);
MoveWindow(btn_exit, pos.x, pos.y, pos.w, pos.h, 0);
pos = GetControlPos(_W,_H,IDC_HIST);
MoveWindow(lb_hist , pos.x, pos.y, pos.w, pos.h, 0);
pos = GetControlPos(_W,_H,IDC_HKT);
MoveWindow(hk_t, pos.x, pos.y, pos.w, pos.h, 0);
pos = GetControlPos(_W,_H,IDC_HKA);
MoveWindow(hk_a, pos.x, pos.y, pos.w, pos.h, 0);
pos = GetControlPos(_W,_H,IDC_HKBT);
MoveWindow(hkbt, pos.x, pos.y, pos.w, pos.h, 0);
pos = GetControlPos(_W,_H,IDC_HKBA);
MoveWindow(hkba, pos.x, pos.y, pos.w, pos.h, 0);
Code: Select all
function MoveWindow(hwnd,x,y,w,h)
{
oSys.Call("user32::MoveWindow",hwnd,x,y,w,h);
}
Code: Select all
function MoveWindow(hwnd,x,y,w,h,repaint)
{
oSys.Call("user32::MoveWindow",hwnd,x,y,w,h,repaint);
}
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Изменился CommonFunctions.js:
• исправлено сохранение файла без расширения, для нового файла, когда оно не смогло быть определено из первой строки или выделения;
• код переделан на использование "расширения по умолчанию" из настроек программы (раньше жёстко задавалось в скрипте);
• мелкие унификации (старался ничего не поломать..))).
Благодарности: FeyFre.
• исправлено сохранение файла без расширения, для нового файла, когда оно не смогло быть определено из первой строки или выделения;
• код переделан на использование "расширения по умолчанию" из настроек программы (раньше жёстко задавалось в скрипте);
• мелкие унификации (старался ничего не поломать..))).
Благодарности: FeyFre.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Понимаю, что это наверное правильно, но, думаю, сейчас не подниму, потому пошёл по пути, который проще:FeyFre wrote:сообщение AKD_FRAMEFIND возвращает структуру FRAMEDATA в которой встроена структура EDITINFO, в которой есть поле типа AEHDOC которое по сути идентифицирует открытый документ во вкладке. Пошаманить вокруг этого, возможно что-то и достанете.Надо взять содержимое файла следующей от текущей вкладки.
Code: Select all
AkelPad.Command(4316/*IDM_WINDOW_FRAMENEXT*/);
Upd: вопрос снимается; ответ:
Code: Select all
var hWndMain = AkelPad.GetMainWnd();
var lpFrameCur = AkelPad.SendMessage(hWndMain, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0) | 0;
var nFrameIndex = AkelPad.SendMessage(hWndMain, 1294 /*AKD_FRAMEINDEX*/, 0, lpFrameCur);