-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtabsRightLeft.js
41 lines (32 loc) · 1.57 KB
/
tabsRightLeft.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// https://akelpad.sourceforge.net/forum/viewtopic.php?p=11387#p11387
// https://infocatcher.ucoz.net/js/akelpad_scripts/tabsRightLeft.js
// https://github.com/Infocatcher/AkelPad_scripts/blob/master/tabsRightLeft.js
// (c) Infocatcher 2011, 2014
// Version: 0.1.3 - 2014-03-03
// Author: Infocatcher
//===================
//// Switch between tabs in order of them arrangement (temporary check "Switch tabs: right-left" option)
// Based on Instructor's code: https://akelpad.sourceforge.net/forum/viewtopic.php?p=4222#p4222
// Proposed hotkeys: Ctrl+PageDown and Ctrl+PageUp
// Usage:
// Call("Scripts::Main", 1, "tabsRightLeft.js") - switch to next tab
// Call("Scripts::Main", 1, "tabsRightLeft.js", "-prev") - switch to previous tab
//===================
var next = WScript.Arguments.length ? WScript.Arguments(0) != "-prev" : true;
var hMainWnd = AkelPad.GetMainWnd();
if(hMainWnd && AkelPad.IsMDI()) {
var tabOpts = AkelPad.SendMessage(hMainWnd, 1222 /*AKD_GETMAININFO*/, 157 /*MI_TABOPTIONSMDI*/, 0);
var forceRightLeft = !(tabOpts & 0x20000 /*TAB_SWITCH_RIGHTLEFT*/);
if(forceRightLeft)
AkelPad.Command(4311 /*IDM_WINDOW_TABSWITCH_RIGHTLEFT*/);
selectTab(next);
if(forceRightLeft)
AkelPad.SendMessage(hMainWnd, 1219 /*AKD_SETMAININFO*/, 157 /*MIS_TABOPTIONSMDI*/, tabOpts);
}
else {
AkelPad.MessageBox(hMainWnd, "MDI or PMDI window mode required!", WScript.ScriptName, 48 /*MB_ICONEXCLAMATION*/);
}
function selectTab(next) {
var cmd = next ? 4316 /*IDM_WINDOW_FRAMENEXT*/ : 4317 /*IDM_WINDOW_FRAMEPREV*/;
AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, cmd, 0);
}