Posted: Wed Sep 15, 2010 5:52 pm
by Instructor
Shift tabulation size at specified offset.
Shift marker position at specified offset.
Change alternating lines size.
Code: Select all
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=9209#p9209
// Version: 1.9
// Author: Shengalts Aleksander aka Instructor
//
//
// Description(1033): Shift tabulation size at specified offset.
// Description(1049): Изменить размер табуляции на указанную величину.
//
// Arguments:
// First argument -Current tabulation size:
// +2 increase.
// -2 decrease.
// 8 set to.
// -Local=true -Change tabulation size locally. Not saved by program (default is false).
// -ShowInput=true -Show input dialog. Default is false, but true if first argument not specified.
//
// Usage:
// "Set tab manually" Call("Scripts::Main", 1, "ShiftTabSize.js")
// "Increase tab" Call("Scripts::Main", 1, "ShiftTabSize.js", `+2`)
// "Set tab to 8 locally" Call("Scripts::Main", 1, "ShiftTabSize.js", `8 -Local=true`)
//Arguments
var pTabShift="";
var bLocal=AkelPad.GetArgValue("Local", false);
var bShowInput=AkelPad.GetArgValue("ShowInput", false);
if (WScript.Arguments.length >= 1)
pTabShift=WScript.Arguments(0);
//Variables
var hMainWnd=AkelPad.GetMainWnd();
var hWndEdit=AkelPad.GetEditWnd();
var pSign;
var nTabShift;
var nTabSize;
if (bLocal)
nTabSize=AkelPad.SendMessage(hWndEdit, 3239 /*AEM_GETTABSTOP*/, 0, 0);
else
nTabSize=AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 52 /*FI_TABSTOPSIZE*/, 0);
nTabShift=parseInt(pTabShift);
if (isNaN(nTabShift))
{
pTabShift="";
bShowInput=true;
}
if (bShowInput)
{
if (!pTabShift)
pTabShift="" + nTabSize;
pTabShift=AkelPad.InputBox(hMainWnd, WScript.ScriptName, GetLangString(0), pTabShift);
nTabShift=parseInt(pTabShift);
if (isNaN(nTabShift)) pTabShift="";
}
if (hWndEdit && pTabShift)
{
pSign=pTabShift.substr(0, 1);
if (pSign == '+' || pSign == '-')
{
nTabSize=nTabSize + nTabShift;
nTabSize=Math.max(nTabSize, 0);
}
else nTabSize=nTabShift;
if (bLocal)
AkelPad.SendMessage(hWndEdit, 3240 /*AEM_SETTABSTOP*/, nTabSize, 0);
else
AkelPad.SetFrameInfo(0, 1 /*FIS_TABSTOPSIZE*/, nTabSize);
}
function GetLangString(nStringID)
{
var nLangID=AkelPad.GetLangId(1 /*LANGID_PRIMARY*/);
if (nLangID == 0x19) //LANG_RUSSIAN
{
if (nStringID == 0)
return "\u0420\u0430\u0437\u043C\u0435\u0440\u0020\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438:";
}
else
{
if (nStringID == 0)
return "Tabulation size:";
}
return "";
}
Shift marker position at specified offset.
Code: Select all
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=9209#p9209
// Version: 1.8
// Author: Shengalts Aleksander aka Instructor
//
//
// Description(1033): Shift marker position at specified offset.
// Description(1049): Сместить позицию маркера на указанную величину.
//
// Arguments:
// First argument -Current marker position:
// +10 increase.
// -10 decrease.
// 80 set to.
// 0 turn off.
// -Local=true -Change marker position size locally. Not saved by program (default is false).
// -ShowInput=true -Show input dialog. Default is false, but true if first argument not specified.
//
// Usage:
// "Set marker manually" Call("Scripts::Main", 1, "ShiftMarker.js")
// "Increase marker" Call("Scripts::Main", 1, "ShiftMarker.js", `+10`)
// "Set marker to 80 locally" Call("Scripts::Main", 1, "ShiftMarker.js", `80 -Local=true`)
//Arguments
var pMarkerShift="";
var bLocal=AkelPad.GetArgValue("Local", false);
var bShowInput=AkelPad.GetArgValue("ShowInput", false);
if (WScript.Arguments.length >= 1)
pMarkerShift=WScript.Arguments(0);
//Variables
var hMainWnd=AkelPad.GetMainWnd();
var hWndEdit=AkelPad.GetEditWnd();
var pSign;
var nMarkerShift;
var nMarkerPos;
if (bLocal)
nMarkerPos=AkelPad.SendMessage(hWndEdit, 3257 /*AEM_GETMARKER*/, 0, 0);
else
nMarkerPos=AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 64 /*FI_MARKER*/, 0);
nMarkerShift=parseInt(pMarkerShift);
if (isNaN(nMarkerShift))
{
pMarkerShift="";
bShowInput=true;
}
if (bShowInput)
{
if (!pMarkerShift)
pMarkerShift="" + nMarkerPos;
pMarkerShift=AkelPad.InputBox(hMainWnd, WScript.ScriptName, GetLangString(0), pMarkerShift);
nMarkerShift=parseInt(pMarkerShift);
if (isNaN(nMarkerShift)) pMarkerShift="";
}
if (hWndEdit && pMarkerShift)
{
pSign=pMarkerShift.substr(0, 1);
if (pSign == '+' || pSign == '-')
{
nMarkerPos=nMarkerPos + nMarkerShift;
nMarkerPos=Math.max(nMarkerPos, 0);
}
else nMarkerPos=nMarkerShift;
if (bLocal)
AkelPad.SendMessage(hWndEdit, 3258 /*AEM_SETMARKER*/, 1 /*AEMT_SYMBOL*/, nMarkerPos);
else
AkelPad.SetFrameInfo(0, 12 /*FIS_MARKER*/, nMarkerPos);
}
function GetLangString(nStringID)
{
var nLangID=AkelPad.GetLangId(1 /*LANGID_PRIMARY*/);
if (nLangID == 0x19) //LANG_RUSSIAN
{
if (nStringID == 0)
return "\u041F\u043E\u0437\u0438\u0446\u0438\u044F\u0020\u043C\u0430\u0440\u043A\u0435\u0440\u0430:";
}
else
{
if (nStringID == 0)
return "Marker position:";
}
return "";
}
Change alternating lines size.
Code: Select all
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=9209#p9209
// Version: 1.2
// Author: Shengalts Aleksander aka Instructor
//
//
// Description(1033): Change alternating lines size.
// Description(1049): Изменить размер зебры на указанную величину.
//
// Arguments:
// First argument -Current alternating lines size:
// +1 increase.
// -1 decrease.
// 3 set to.
// +1;+1 increase.
// -1;-1 decrease.
// 2;3 set to.
// 0 turn off.
// -Local=true -Change alternating lines size locally. Not saved by program (default is false).
// -ShowInput=true -Show input dialog. Default is false, but true if first argument not specified.
//
// Usage:
// "Set alt lines manually" Call("Scripts::Main", 1, "ShiftAltLines.js")
// "Increase alt lines" Call("Scripts::Main", 1, "ShiftAltLines.js", `+1`)
// "Set alt lines to 3 locally" Call("Scripts::Main", 1, "ShiftAltLines.js", `3 -Local=true`)
//Arguments
var pAltLineShift="";
var bLocal=AkelPad.GetArgValue("Local", false);
var bShowInput=AkelPad.GetArgValue("ShowInput", false);
if (WScript.Arguments.length >= 1)
pAltLineShift=WScript.Arguments(0);
//Variables
var hMainWnd=AkelPad.GetMainWnd();
var hWndEdit=AkelPad.GetEditWnd();
var pSkipSign;
var nSkipShift;
var nSkipSize;
var pFillSign;
var nFillShift;
var nFillSize;
var aAltLineShift;
var dwAltLineSize;
if (bLocal)
dwAltLineSize=AkelPad.SendMessage(hWndEdit, 3264 /*AEM_GETALTLINE*/, 0, 0);
else
dwAltLineSize=MAKELONG(AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 74 /*FI_ALTLINESKIP*/, 0), AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 73 /*FI_ALTLINEFILL*/, 0));
nSkipShift=parseInt(pAltLineShift);
if (isNaN(nSkipShift))
{
pAltLineShift="";
bShowInput=true;
}
if (bShowInput)
{
if (!pAltLineShift)
pAltLineShift="" + LOWORD(dwAltLineSize) + ";" + HIWORD(dwAltLineSize);
pAltLineShift=AkelPad.InputBox(hMainWnd, WScript.ScriptName, GetLangString(0), pAltLineShift);
}
if (hWndEdit && pAltLineShift)
{
aAltLineShift=pAltLineShift.split(";");
if (aAltLineShift.length > 1)
{
pSkipSign=aAltLineShift[0].substr(0, 1);
nSkipShift=parseInt(aAltLineShift[0]);
pFillSign=aAltLineShift[1].substr(0, 1);
nFillShift=parseInt(aAltLineShift[1]);
}
else
{
pSkipSign=pAltLineShift.substr(0, 1);
nSkipShift=parseInt(pAltLineShift);
pFillSign="";
nFillShift=0;
}
if (pSkipSign == '+' || pSkipSign == '-')
{
nSkipSize=LOWORD(dwAltLineSize) + nSkipShift;
nSkipSize=Math.max(nSkipSize, 0);
}
else nSkipSize=nSkipShift;
if (aAltLineShift.length > 1)
{
if (pFillSign == '+' || pFillSign == '-')
{
nFillSize=HIWORD(dwAltLineSize) + nFillShift;
nFillSize=Math.max(nFillSize, 0);
}
else nFillSize=nFillShift;
}
else nFillSize=nSkipSize;
if (bLocal)
AkelPad.SendMessage(hWndEdit, 3265 /*AEM_SETALTLINE*/, MAKELONG(nSkipSize, nFillSize), 0);
else
AkelPad.SetFrameInfo(0, 21 /*FIS_ALTLINES*/, MAKELONG(nSkipSize, nFillSize));
}
function LOWORD(dwNumber)
{
return (dwNumber & 0xffff);
}
function HIWORD(dwNumber)
{
return (dwNumber >> 16);
}
function MAKELONG(a, b)
{
return (a & 0xffff) | ((b & 0xffff) << 16);
}
function GetLangString(nStringID)
{
var nLangID=AkelPad.GetLangId(1 /*LANGID_PRIMARY*/);
if (nLangID == 0x19) //LANG_RUSSIAN
{
if (nStringID == 0)
return "\u0420\u0430\u0437\u043C\u0435\u0440\u0020\u0437\u0435\u0431\u0440\u044B:";
}
else
{
if (nStringID == 0)
return "Alternating lines size:";
}
return "";
}