Std/Docu/ru/Scrollers.odc

StdScrollers
ENGLISH
Редакция перевода: Ф.В.Ткачев, 2010-10-31

DEFINITION StdScrollers;

	IMPORT Dialog, Properties;

	CONST
		horBar = 0; verBar = 1; horHide = 2; verHide = 3; width = 4; height = 5; savePos = 7; showBorder = 6;

	TYPE
		Prop = POINTER TO RECORD (Properties.Property)
			horBar, verBar, horHide, verHide: BOOLEAN;
			width, height: INTEGER;
			showBorder, savePos: BOOLEAN
		END;

	VAR
		dialog: RECORD 
			horizontal, vertical: RECORD 
				mode: INTEGER;
				adapt: BOOLEAN;
				size: REAL
			END;
			showBorder, savePos: BOOLEAN
		END;

	PROCEDURE AddScroller;
	PROCEDURE RemoveScroller;
	PROCEDURE InitDialog;
	PROCEDURE Set;
	PROCEDURE DialogGuard (VAR par: Dialog.Par);
	PROCEDURE HeightGuard (VAR par: Dialog.Par);
	PROCEDURE WidthGuard (VAR par: Dialog.Par);
	PROCEDURE HorAdaptGuard (VAR par: Dialog.Par);
	PROCEDURE VerAdaptGuard (VAR par: Dialog.Par);

END StdScrollers.


Модуль StdScrollers предоставляет объекты прокрутки (scroller), представляющие собой вьюшки-обертки (wrapper), которые могут быть обернуты вокруг любого другого объекта отрисовки, чтобы снабдить его горизонтальной и/или вертикальной полоской прокрутки. Например, текстовая вьюшка, вставленная в диалоговую форму, может быть обернута таким объектом прокрутки, чтобы можно было просматривать текст, который целиком не помещается в видимой области.


CONST horBar, verBar, horHide, verHide, width, height, savePos, showBorder
Элементы свойств для дескриптора Prop.


TYPE Prop (Properties.Property)
Свойства, описывающие атрибуты объекта прокрутки.

horBar: BOOLEAN
Имеется ли горизонтальная полоса прокрутки?

verBar: BOOLEAN
Имеется ли вертикальная полоса прокрутки?

horHide: BOOLEAN	horHide -> horBar
Имеет смысл, только если horBar. Тогда остаются три варианта:
~horBar	полоса прокрутки невидима никогда
horBar  &  horHide	полоса прокрутки показывается в случае необходимости автоматически 
horBar  &  ~horHide	полоса прокрутки видна все время

verHide: BOOLEAN	verHide -> verBar
Имеет смысл, только если verBar. Тогда остаются три варианта:
~verBar	полоса прокрутки невидима никогда
verBar  &  verHide	полоса прокрутки показывается в случае необходимости автоматически
verBar  &  ~verHide	полоса прокрутки видна все время

width, height: INTEGER	width >= 0  &  height >= 0	[в универсальных единицах]
Размер оборачиваемой вьюшки. 
Значение 0 означает, что оборачиваемая вьюшка автоматически адаптируется к размеру вьюшки-обертки. Другие значения соответствуют фиксированным размерам.

showBorder: BOOLEAN
Показывать рамку вокруг оборачиваемой вьюшки.

savePos: BOOLEAN
Задает сохранение текущей позиции прокрутки при сохранении объекта прокрутки на диск, а также делает прокрутку отменяемой.


VAR
dialog: RECORD
Запись-интерактор для настройки свойств объекта прокрутки для выделенной одиночной вьюшки.

horizontal, vertical: RECORD
Записи, описывающие поведение полосок прокрутки для обоих направлений.

	mode: INTEGER	mode IN {0, 1, 2}
		0: нет полосы прокрутки
		1: автоматический показ полосы прокрутки
		2: постоянный показ полосы прокрутки
	adapt: BOOLEAN
		adapt: установить размер (ширину или высоту) в 0
		~adapt: rсохранить фиксированный размер
	size: REAL
		размер в сантиметрах (Dialog.metricSystem) или в дюймах (~Dialog.metricSystem)

showBorder, savePos: BOOLEAN
Значения, соответствующие дескриптору свойств.


PROCEDURE AddScroller
Охрана: StdCmds.SingletonGuard
Оборачивает выделенную вьюшку объектом прокрутки.

PROCEDURE RemoveScroller
Охрана: StdCmds.SingletonGuard
Удаляет объект прокрутки с обернутой вьюшки (если выделена вьюшка, обернутая таким объектом).

PROCEDURE InitDialog
Инициализирует запись dialog в соответствии с выделенным объектом прокрутки.

PROCEDURE Set
Применяет вновь заданные свойства к выделенному объекту прокрутки.

PROCEDURE DialogGuard (VAR par: Dialog.Par)
PROCEDURE HeightGuard (VAR par: Dialog.Par)
PROCEDURE WidthGuard (VAR par: Dialog.Par)
PROCEDURE HorAdaptGuard (VAR par: Dialog.Par)
PROCEDURE VerAdaptGuard (VAR par: Dialog.Par)
Охраны для диалога Std/Rsrc/Scrollers.