Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Можно как-то реализовать такое:
Блокировка вкладки. Т.е. чтобы вкладку невозможно было закрыть по двойному клику и имя вкладки при этом изменялось (либо цветом, либо каким-то символом в начале *)

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Andrey_A_A wrote:KDJ
Языковой файл FileAndStream.js
Thank you, Russian translation uploaded: FileAndStream_1049.lng

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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")?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post 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
Last edited by KDJ on Fri Jan 10, 2014 8:44 pm, edited 1 time in total.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post 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")

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

LineBoardRulerOnOff.js
Added: ability to enable the ruler, if LineBoard panel is disabled.

Offline
Posts: 46
Joined: Fri Mar 22, 2013 5:05 am
Location: Белово, Кемеровская область, Россия

Post 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

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Лучше куда-нибудь на акелпадовский ftp положить.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Возможно поправить ChmKeyword.js так, чтобы повторный вызов команды с другим ключевым словом срабатывал без закрытия файла справки, открытой после предыдущего вызова?

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

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

LineBoardRClickPanel.js
After right click on LineBoard panel, added ability:
- call any script,
- show user defined menu in ContextMenu plugin.

Offline
Posts: 173
Joined: Mon Dec 06, 2010 9:53 am
Location: г.Харьков, Русь

Post 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")

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

KDJ, LineBoardRClickPanel.js - интересный вариант для создания своего контекстного меню, но есть но - не отображается контекстное меню "номеров и строк закладок". Наверно лучше обратится к Instructor'у:

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

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

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

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

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

San_dr wrote:а можно в ScreenView.js внести пункт настройки CmdLineBegin?
...
No, to set CmdLineBegin (and any command line parameter), you can use: AkelPadManualSettings.js

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

LineBoardBookmarks.js
Added:
- option "Go to" with bookmarks list,
- options "Next" and "Previous",
- second argument LineLength.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

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

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