tooltip docu file lost

git-svn-id: svn://kolibrios.org@6707 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
siemargl 2016-11-13 13:07:37 +00:00
parent 4811fbd229
commit eb9257c0ff

View File

@ -0,0 +1,87 @@
<html>
<head>
<title>элемент Tooltip</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<link href="../style.css" type=text/css rel=stylesheet>
</head>
<body>
<p><a href="../box_lib.htm">На главную &uarr;</a></p>
<h1>Оглавление</h1>
<p><a href="#intro">Введение</a></p>
<p><a href="#funct">Функции</a></p>
<p><a href="#struc">Структура данных</a></p>
<p><a href="#source">Исходный код и примеры</a></p>
<h1><a name="intro">Введение</a></h1>
<p>Тултип - всплывающая подсказка, показывается при задержке указателя мыши над конкретной областью, обычно элементом управления.</p>
<p>Область контроля - прямоугольник с заданными координатами</p>
<p>Текст тултипа может быть многострочным, с разделителем код 13 (\r), произвольным размером шрифта.</p>
<p>В первой версии тултип выводится ниже курсора мыши и вправо. Учитывайте при планировании интерфейса.</p>
<p>Используется динамическая память, соответственно библиотека должны быть загружена с функциями</p>
<pre>@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load</pre>
<p>и куча должна быть инициализирована вызовом SysFn 68.11</p>
<h1><a name="funct">Функции</a></h1>
<p>Все функции используют x86-32 calling convention, stdcall.</p>
<p>Это означает, что регистры EAX, ECX, EDX могут не сохранять свои значения после вызова функций.</p>
<p>Примеры вызовов смотрите в программе - примере.</p>
<h2><a name="tooltip_init">tooltip_init(ttip)</a></h2>
<p>Параметр - указатель на первый в цепочке тултип.</p>
<p>Возврат EAX==1 при успешном выделениии памяти, 0 при сбое.</p>
<p>Вызывается один раз, инициализирует все тултипы, выделяя память и рассчитывая внутренние переменные.</p>
<h2><a name="tooltip_delete">tooltip_delete(ttip)</a></h2>
<p>Параметр - указатель на первый в цепочке тултип.</p>
<p>Возврат - нет.</p>
<p>Освобождает выделенную память.</p>
<h2><a name="tooltip_test_show">tooltip_test_show(ttip)</a></h2>
<p>Параметр - указатель на первый в цепочке тултип.</p>
<p>Возврат - нет.</p>
<p>Показ нужного из всей цепочки тултипов при бездействии.
Должна вызываться при бездействии или периодически для проверки таймера.
Например при опросе событий функцией SysFn 23 (event 0).</p>
<h2><a name="tooltip_mouse">tooltip_mouse(ttip)</a></h2>
<p>Параметр - указатель на первый в цепочке тултип.</p>
<p>Возврат - нет.</p>
<p>Эта функция должна вызываться при событии мыши. Стирает тултип при выходе мыши из зоны контроля</p>
<h2><a name="get_font_size">get_font_size(color)</a></h2>
<p>Параметр - цвет текста с размером шрифта, в формате функции SysFn 4.</p>
<p>Возврат - EAX = width shl 16 + height.</p>
<p>Декодирует из комбинированного цвета/размера ширину и высоту шрифта в пикселях</p>
<h1><a name="struc">Структура тултипа</a></h1>
<p>Макрос для создания структуры тултипа ниже, включен в box_lib.mac. Не забываем объединить тултипы в список.</p>
<pre>struc tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
{
.txt dd txt ; указатель на текст asciiz, разделитель \r 13
.next dd next ; следующиий tooltip в цепочке или 0
.zone_y dw zone_y ; зона контроля (в 90% случаев совпадает с размером контрола)
.zone_x dw zone_x ;
.zone_h dw zone_h ;
.zone_w dw zone_w ;
.col_txt dd col_txt ; цвет текста тултипа, включая размер SysFn4
.col_bkg dd col_bkg ; цвет фона тултипа
.tm_wait dw tm_wait ; время ожидания х10мс
;временные переменные
.font_sz dd ? ; font size
.mouse dd ? ; предыдущее положение (x, y)
.tm_strt dd ? ; время запуска таймера (входа мыши в зону) х10мс
.video dd ? ; память для сохраненного под тултипом
.video_y dw ? ; координаты запомненной области экрана, или 0 если пусто
.video_x dw ?
.video_h dw ? ; размер предрасчитывается при init
.video_w dw ?
}
</pre>
<hr>
<h1><a name="source">Исходный код и примеры</a></h1>
<p>Исходный код находится в библиотеке box_lib, файл tooltip.asm</p>
<p>Пример использования находится в box_lib\asm\trunk\tooltip_demo.asm</p>
<h1>EOF</h1>
</body>
</html>