Artifact
c042ef6b03675fa80cd1830d8851807f56a3c922:
- File
choiceHelpTopic.js
— part of check-in
[f7aec321c7]
at
2012-04-17 06:15:58
on branch trunk
— Список выбора раздела справки позиционируется точно по размеру окна диалога
(user:
orefkov
size: 1899)
[more...]
$engine JScript
$uname choiceHelpTopic
$dname Выбрать главу справки
$addin stdlib
// (c) Александр Орефков
// Скрипт позволяет быстрее выбрать нужную главу справки, когда одному слову
// соответствует несколько разделов
try{
var api = stdlib.require("winapi.js")
var sel = new ActiveXObject('Svcsvc.Service')
events.connect(windows, "onDoModal", SelfScript.self)
}catch(e)
{
Message("choiceHelpTopic.js: ошибка при инициализации. " + e.description)
//addins.unloadAddin(addins.byUniqueName(SelfScript.uniqueName))
}
function onDoModal(dlgInfo)
{
if(dlgInfo.caption == "Выбор главы")
{
if(dlgInfo.stage == openModalWnd)
{
var vt = dlgInfo.form.getControl("tblTopics").value
if(vt.Count() > 3)
{
var choices = []
for(var rows = new Enumerator(vt); !rows.atEnd(); rows.moveNext())
choices.push(rows.item().Get(0))
var rect = api.GetWindowRect(api.GetParentWindow(api.GetParentWindow(dlgInfo.form.getControl(-1).hwnd))) // -1 - это сама форма
var choice = sel.FilterValue(choices.join("\r\n"), 1 | 8 | 32, 'Выберите главу',
rect.left, rect.top, rect.width(), rect.height())
if(choice.length)
{
var sk = ""
for(var k in choices)
{
if(choices[k] == choice)
break
sk += "{DOWN}"
}
new ActiveXObject("WScript.Shell").SendKeys(sk + "~")
}
}
}
}
}