Page 84 of 96

Posted: Mon Jan 06, 2014 7:53 am
by Andrey_A_A
Можно как-то реализовать такое:
Блокировка вкладки. Т.е. чтобы вкладку невозможно было закрыть по двойному клику и имя вкладки при этом изменялось (либо цветом, либо каким-то символом в начале *)

Posted: Mon Jan 06, 2014 12:50 pm
by KDJ
Andrey_A_A wrote:KDJ
Языковой файл FileAndStream.js
Thank you, Russian translation uploaded: FileAndStream_1049.lng

Posted: Mon Jan 06, 2014 1:26 pm
by KDJ
Instructor wrote:
KDJ wrote:For fast turning on/off ruler, you can use LineBoardRulerOnOff.js
For common use (if LineBoard already running) not need for script:

Code: Select all

-"Ruler on/off" Call("LineBoard::Main", 3, 17)
Yes, but it does not work, if the ruler is visible, and its height is not equal to 17.
-----
There is another problem - how to programmatically enable/disable LineBoard panel ("Show board")?

Posted: Mon Jan 06, 2014 8:55 pm
by KDJ
Lenchik wrote:Как сделать меню выпадающее из LineBoardBookmarks.js появляющимся по клику правой кнопкой на панели с номерами строк LineBoard плагина?
Try this script:

Code: Select all

// LineBoardRClickPanel.js
// 
// Right click on LineBoard panel, shows menu from LineBoardBookmarks.js instead of plugin menu.
//
// Usage:
//   Call("Scripts::Main", 1, "LineBoardRClickPanel.js")
//
// Notes:
//   After first call, the script resides in the memory.
//   Second script call, closes the script.

var hScript = AkelPad.ScriptHandle(WScript.ScriptName, 3 /*SH_FINDSCRIPT*/);

if (hScript && AkelPad.ScriptHandle(hScript, 13 /*SH_GETMESSAGELOOP*/))
{
  //script already is running
  AkelPad.ScriptHandle(hScript, 33 /*SH_CLOSESCRIPT*/);
}
else
{
  var oSys = AkelPad.SystemFunction();
  var hSubClassEdit;

  if (hSubClassEdit = AkelPad.WindowSubClass(2 /*WSC_EDITPROC*/, EditCallback, 123 /*WM_CONTEXTMENU*/))
  {
    //Allow other scripts running
    AkelPad.ScriptNoMutex();

    //Message loop
    AkelPad.WindowGetMessage();

    AkelPad.WindowUnsubClass(2 /*WSC_EDITPROC*/);
  }
}

function EditCallback(hWnd, uMsg, wParam, lParam)
{
  if ((uMsg == 123 /*WM_CONTEXTMENU*/) && AkelPad.IsPluginRunning("LineBoard::Main") && IsClickOnBoard(hWnd, lParam & 0xFFFF, (lParam >> 16) & 0xFFFF))
  {
    AkelPad.WindowNoNextProc(hSubClassEdit);
    AkelPad.Call("Scripts::Main", 1, "LineBoardBookmarks.js", "MM");
  }

  return 0;
}

function IsClickOnBoard(hWnd, nClickX, nClickY)
{
  var lpRect = AkelPad.MemAlloc(16 /*sizeof(RECT)*/);

  AkelPad.CallW("LineBoard::Main", 11, hWnd, 0, lpRect);
  oSys.Call("User32::ClientToScreen", hWnd, lpRect);
  oSys.Call("User32::ClientToScreen", hWnd, lpRect + 8);

  var nX = AkelPad.MemRead(lpRect,      3 /*DT_DWORD*/);
  var nY = AkelPad.MemRead(lpRect +  4, 3 /*DT_DWORD*/);
  var nW = AkelPad.MemRead(lpRect +  8, 3 /*DT_DWORD*/);
  var nH = AkelPad.MemRead(lpRect + 12, 3 /*DT_DWORD*/);
  AkelPad.MemFree(lpRect);

  if ((nClickX >= nX) && (nClickX <= nW) && (nClickY >= nY) && (nClickY <= nH))
    return true;

  return false;
}


-----
PS. Improved script placed in the collection: LineBoardRClickPanel.js

Posted: Mon Jan 06, 2014 9:21 pm
by Lenchik
KDJ
Great! Works! It's a kind of magic!
I put it to autorun together with history.js:

Code: Select all

CmdLineBegin=/Call("Scripts::Main",1,"history.js") /Call("Scripts::Main", 1, "LineBoardRClickPanel.js")

Posted: Tue Jan 07, 2014 9:27 pm
by KDJ
LineBoardRulerOnOff.js
Added: ability to enable the ruler, if LineBoard panel is disabled.

Posted: Wed Jan 08, 2014 7:27 am
by Egorkaru
Instructor wrote:ChmKeyword.js

- Набор файлов помощи CHM для C/C++, CSS, HTML, VBS, JS, NSIS: скачать (14.5 Mb).
- Файл помощи для PHP.
Не качается. Скинь мне по электронной почте набор файлов помощи CHM для C/C++, CSS, HTML, VBS, JS, NSIS. Мой адрес электронной почты: egorkuzevanov841@gmail.com

Posted: Wed Jan 08, 2014 12:40 pm
by VladSh
Лучше куда-нибудь на акелпадовский ftp положить.

Posted: Fri Jan 10, 2014 5:22 am
by Skif_off
Instructor
Возможно поправить ChmKeyword.js так, чтобы повторный вызов команды с другим ключевым словом срабатывал без закрытия файла справки, открытой после предыдущего вызова?

Добавлено:
Кажется, это проблематично - скрипт висит в памяти и ждет нажатия Esc (-CatchEsc=true).

Posted: Fri Jan 10, 2014 8:51 pm
by KDJ
LineBoardRClickPanel.js
After right click on LineBoard panel, added ability:
- call any script,
- show user defined menu in ContextMenu plugin.

Posted: Fri Jan 10, 2014 9:39 pm
by San_dr
KDJ
а можно в ScreenView.js внести пункт настройки CmdLineBegin?
can the ScreenView.js to make the item configuring for CmdLineBegin?
a można w ScreenView.js wprowadzić ustawienia CmdLineBegin?

for example^
CmdLineBegin=/Call("Scripts::Main", 1, "LineBoardRClickPanel.js") /Call("Scripts::Main", 1, "IconsOnTabs.js")

Posted: Fri Jan 10, 2014 11:07 pm
by Andrey_A_A
KDJ, LineBoardRClickPanel.js - интересный вариант для создания своего контекстного меню, но есть но - не отображается контекстное меню "номеров и строк закладок". Наверно лучше обратится к Instructor'у:

1. необходим в плагине вызов контекстного меню "номеров и строк закладок", чтобы можно было вставить в любое меню (во 2-й уровень меню)

2. контекстное меню "номеров и строк закладок" должно иметь настройку: какой длины отображать строки или только номера строк.

Имхо LineBoardRClickPanel.js - своеобразный костыль...
Повторяется ситуация, когда писали скрипты для вызова меню с тулбаров, считали координаты углов, а потом спустя несколько месяцев появился функционал: Call("ContextMenu::Show", 1, "X", "Y", INDEX, "SUBMENU") и пришлось всё у себя переделывать...

Продолжаю надеяться, что появится в плагине отдельные контекстные меню для линейки и номеров строк...

Posted: Sat Jan 11, 2014 5:21 pm
by KDJ
San_dr wrote:а можно в ScreenView.js внести пункт настройки CmdLineBegin?
...
No, to set CmdLineBegin (and any command line parameter), you can use: AkelPadManualSettings.js

Posted: Sun Jan 12, 2014 8:44 pm
by KDJ
LineBoardBookmarks.js
Added:
- option "Go to" with bookmarks list,
- options "Next" and "Previous",
- second argument LineLength.

Posted: Mon Jan 20, 2014 11:48 am
by Andrey_A_A
KDJ
в скрипте AkelPadMethodsView.js можно ли:
1. Язык вытащить из скрипта в lng, чтобы перевод сделать.
2. В окне отображения методов по клику правой кнопкой мыши меню с :
- "Вставить в AkelPad"
- "Копировать"
3. Можно что-то придумать, чтобы фразу/слово из буфера обмена искать по всему тексту.
----
4. Информация о методах есть и в других файлах (кроме Coder-....txt)

LineBoard-....txt - можно ли сделать как-то, чтобы и их просматривать через окно скрипта.