Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Концепции виджетов




Создание всех разновидностей приложений

Создание последовательных приложений

 

С PhAB Вам редко понадобится разрабатывать приложение с нуля. Например, если Вы уже создали окна и диалоги в существующем приложении, вы можете свободно перебросить их в новое приложение. Вы можете также создать центральную базу данных виджетов, чтобы импортировать их во все Ваши приложения для создания единообразного вида и реагирования.

 

 

С PhAB вы можете ускорить разработку без ухудшения функциональности. Вы можете создавать все разновидности приложений. Например, мы использовали PhAB для разработки почти всех приложений, поставляемых с Photon'ом, включая просмотрщик файлов помощи (Helpviewer), терминал (Terminal application), менеджер рабочего стола (Desktop Manager), копировщик экрана (Snapshot), все игры и “демки” – даже, собственно, сам PhAB!

 

Лучшим введением в PhAB является использование его, так что начинайте работать, используя руководства. Через очень короткое время Вы будете способны собрать воедино очень специализированные прототипы. Когда Вы будете готовы начать программирование своего приложения, Вы сможете прочитать разделы, имеющие отношение к тем виджетам, которые Вы захотите использовать. Мы снабдили полными исходными кодами все “демки” и игры, созданные с помощью PhAB. Вы можете загрузить любой из них в PhAB и изучить для использования идей в Ваших собственных приложениях. Хорошим примером, использующим большую часть возможностей PhAB, является приложение ВидеоПокер.

 

 

При создании нового пользовательского интерфейса (UI), проще собрать интерфейс из набора стандартных компонентов, таких как ползунки, списки, меню и кнопки, нежели реализовывать каждый из элементов UI с нуля. Каждый стандартный компонент, включённый в UI, является объектом, называемым виджетом.

 

Виджеты Photon'а обеспечивают набор компонентов UI, в большей или меньшей степени согласующихся с другими оконными системами, которые Вы могли видеть.

 

Набор виджетов создан на объектно-ориентированной основе, нестрого говоря, базирующейся на библиотеке встроенного инструментария X-windows (X Toolkit Intrinsic library, Xt). Если вы уже знакомы с Xt, Вы увидите, что здесь применены во многом те же концепции.

Виджет объединяет данные и действия, требуемые для обеспечения работоспособности данного элемента UI. Подобное группирование в объекте данных и действий называется инкапсуляцией.

 

Виджет инкапсулирует в себе знание о том, как:

· нарисовать себя;

· отзываться на генерируемые пользователем события (например, нажатие левой кнопки мыши);

· восстановить себя, перерисовав, когда он окажется повреждённым (например, когда перекрывающее его окно будет закрыто).

 

Кроме того, имеется несколько виджетов, называемых контейнерами, содержащие другие виджеты и управляющие их компоновкой.

 

Виджет также скрывает подробности того, как он выполняет свои обязанности перед внешним миром. Этот принцип, известный как сокрытие информации (information hiding), отделяет внутреннюю реализацию виджета от его общедоступного интерфейса.

 

Общедоступный интерфейс состоит из всех атрибутов, видимых другими объектами, а также действий, которые другие объекты могут совершать над этим виджетом. Атрибуты в общедоступном интерфейсе виджета называются ресурсами.

 

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

 

Не каждый объект является уникальным. Объекты, исполняющие те же самые функции и имеющие одинаковый общедоступный интерфейс, относятся к одному классу. Виджеты, обеспечивающие один и тот же компонент пользовательского интерфейса, принадлежат к одному классу виджетов. Методы класса окон обеспечивают общую функциональность класса.

 

Несколько классов виджетов могут иметь общие атрибуты и действия. В этих случаях эти классы виджетов могут быть выделены в категорию субкласса одного суперкласса, или родительского класса. Атрибуты и действия инкапсулированы в суперклассе; субклассы наследуют их от родительского класса. Считается, что сами субклассы наследуются из родительского класса. Библиотека Photon'а позволяет “виджетному” классу наследоваться только от одного “виджетного” класса. Такая взаимосвязь известна, как одиночное наследование. Взаимосвязи между классами виджетов могут быть изображены как дерево, известное как иерархия классов.

 

С помощью браузера (если это – документ HTML) Вы можете выбрать виджет на диаграмме (см. рис. 2).

 

Вложенность экземпляров виджетов в GUI Вашего приложения создаёт иную иерархию виджетов. Чтобы отличить её от иерархии классов, её называют семейством виджетов.

 

Библиотека виджетов Photon'ов функционирует как фабрика виджетов. Она предоставляет набор функций, которые позволяют программисту создать новый виджет определённого “виджетного” класса и затем управлять этим виджетом. Однажды созданный, виджет имеет все характеристики “виджетного” класса. Будучи унаследованным, он также имеет все характеристики суперкласса своего “виджетного” класса.

 

Новый виджет является экземпляром “виджетного” класса. Создание нового виджета определённого класса называется также инициализацией (instantiating) виджета. Этот термин не вполне точен, потому что Вы на самом деле инициализируете “виджетный” класс. Это отражает базовую тенденцию данного руководства – ссылаться и на виджеты и на “виджетные” классы, просто как на виджеты.


  PtCalendar PtBkgd      
  PtClock PtClient PtWebClient PtColorPanel  
      PtColorSel PtColorPath  
        PtColorSelGroup  
        PtColorWell  
  PtContainer   PtComboBox    
    PtCompound     PtFileSel
      PtDivider PtGenTree PtRawTree
      PtGenList PtList PtTree
      PtMenuButton PtRawList  
      PtMultiText    
PtBasic          
      PtNumeric PtNumericFloat  
        PtNumericInteger  
      PtMenu    
    PtDisjoint PtRegion PtServer  
    PtFlash PtWindow    
PtWidget     PtFontSel      
    PtGroup      
    PtOSContainer      
    PtPane      
    PtPanelGroup      
    PtPrintSel      
    PtScrollArea PtScrollContainer    
    PtTerminal PtTty    
    PtToolbar PtMenuBar    
    PtToolbarGroup    
PtTimer          
    PtMeter      
  PtGauge PtProgress      
    PtScrollBar      
    PtSlider      
    PtArc      
    PtBezier      
    PtEllipse      
    PtGrid      
    PtLine      
    PtPixel      
  PtGraphic PtPolygon      
    PtRect      
      PtOnOffButton    
    PtButton      
  PtLabel PtMenuLabel PtToggleButton    
    PtTab      
  PtRaw PtText      
             
             
  PtSeparator        
  PtTrend        

 

Рис. 2. Иерархия виджетов Photon'а

Ресурсы виджетов используются для конфигурирования того, как они выглядят на экране, и их поведения. Вы можете редактировать ресурсы в PhAB, и после создания виджета Вы можете изменить многие из них вызовами функций PtSetResource() или PtSetResources(). Ресурсы широко используются для управления данными, отображаемыми виджетом и задания того, как их отображать.

 

Например:

ресурс Pt_ARG_TEXT_STRING виджета PtLabel является строкой, выводимой на экран;

ресурсы виджета PtButton определяют, отображает ли кнопка строку и/или картинку (image), её текст, картинку, цвет, и что происходит, когда пользователь выбирает кнопку.

 

Важным типом ресурса, предоставляемого виджетами, является список ответных реакций (callback list), являющийся списком функций, запускаемых виджетом в ответ на определённые значимые пользовательские события. Например, виджет текстовой области вызывает соответствующие функции из своего списка ответных реакций всякий раз, когда пользователь вводит новое значение и нажимает Enter. При разработке приложения Вы можете добавить реакции в список ответных реакций виджета, задавая соответствующие действия в ответ на пользовательские события.

 




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


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


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



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




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