kolibrios/programs/develop/libraries/box_lib/trunk/doc/tooltip/tooltip.htm
siemargl eb9257c0ff tooltip docu file lost
git-svn-id: svn://kolibrios.org@6707 a494cfbc-eb01-0410-851d-a64ba20cac60
2016-11-13 13:07:37 +00:00

87 lines
4.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>