Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Геометрия виджета




 

Вы можете рассматривать виджет, как картинку или, подмонтированную фотографию. Виджет закрепляется на раме, называемой рамкой (by a frame, called a border – велик и могуч английский язык. Прим. пер.). Для виджета рамка – это набор контуров и создающие эффект выпуклости фаски, которые могут быть нарисованы вокруг внешних сторон.

 

Часть виджета, используемая для рисования, называется канвой (canvas). Для PtWidget – это область внутри рамки виджета. Для PtBasic и его потомков канва – это область внутри рамки виджета и границ. Другие виджеты, такие как PtLabel, определяют другие границы. Границы, формирующие затемнение (matt) и затеняющие любую часть канвы, распространяются за пределы отсечённой части. Эта затенённая область иногда называется как отсечённая (clipping) область (см. диаграмму на рис. 4).

 

C Для наглядности на диаграмме канва и границы показаны различным цветом. В реальном виджете они одного цвета.

 

Рис. 4. Анатомия виджета PtBasic

 

Для виджета рамка является необязательной. Она рисуется, только если виджет подсвечен (т.е. в его ресурсе Pt_ARG_FLAGS установлен флаг Pt_HIGHLIGHTED). Рамка состоит из различных необязательных компонентов, в зависимости от установок в ресурсе Pt_ARG_BASIG_FLAGS.

 

Компонентами, рассматривая их от самых наружных вовнутрь, являются:

· однопиксельная линия "гравировки";

· однопиксельная наружная контурная линия;

· фаска, ширина которой установлена в Pt_ARG_BEVEL_WIDTH;

· однопиксельная внутренняя контурная линия.

 

Виджет имеет несколько важных атрибутов, определяющих геометрию этих элементов. Размеры виджета, Pt_ARG_DIM – это общий размер виджета, включая его границы.

 

Рис. 5. Позиция и размеры виджета

 

Pt_ARG_MARGIN_WIDTH определяет ширину границы слева и справа от канвы, и Pt_ARG_MARGIN_HEIGHT определяет высоту границы над и под канвой. Эти ресурсы определены в PtBasic. Другие классы виджетов определяют свои собственные ресурсы границ, которые могут быть добавлены к ширине и высоте базовой границы. Например, виджет надписи (label widget) обеспечивает различные границы для левой, правой, верхней и нижней сторон виджета. Они добавляются к базовым ширине и высоте для определения объёма пространства, оставляемого на каждую сторону канвы. Начальной точкой виджета (в целях выполнения любой прорисовки или позициониования любого порождаемого виджета) является верхний левый угол канвы. Все координаты, определяемые для виджета, являются относительными этого начала, как координаты всех событий, получаемых виджетом. Например, если виджет является контейнером, позиции всех его "детей" являются относительными этой точки.

 

Рис. 6. Начальная точка виджета и позиция его "ребёнка"

 

Для позиционирования "детей" контейнеры описаны только внешним краем рамки виджета. Позиция виджета содержится в ресурсе Pt_ARG_POS. Эта позиция является точкой в верхнем левом углу внешнего контура рамки виджета. Контейнер позиционирует своих детей выравниванием по этому ресурсу.

 

Доступ и модификация позиции и размеров виджета могут быть достигнуты одновременно использованием ресурса Pt_ARG_AREA, предоставляемого виджетом. Пространство виджета – это прямоугольник, определяемый позицией виджета и его размерами. Обычно оно не может быть вычислено до того, как виджет не будет реализован; Вы можете принудить виджет вычислить своё пространство вызовом PtExtentWidget(); чтобы вынудить виджет и все его порождения вычислить свои пространства, необходимо вызвать PtExtentWidgetFamily(). Как только пространство вычислено, Вы можете узнать его, получив данные ресурса Pt_ARG_EXTENT, или вызовом PtWidgetExtent().

 




Поделиться с друзьями:


Дата добавления: 2014-12-10; Просмотров: 472; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.