Глава I – Введение. Часть 3
Лицензионное соглашение
Лицензия wxWidgets (официально, по историческим и юридическим причинам называемая <<лицензией wxWindows>>) является лицензией LGPL с некоторыми изменениями. Вы можете подробно ознакомиться с текстом лицензии, который доступен на сайте проекта или в каталоге docs дистрибутива, однако вкратце его суть такова: вы можете использовать wxWidgets в коммерческих или открытых проектах абсолютно бесплатно. Вы можете линковать библиотеку как статически, так и динамически. В любом из случаев, вы не обязаны делать доступными ваш собственный исходный код или объектные файлы, однако если вы делаете изменения в коде самой библиотеки, то вы обязаны предоставить всем доступ к этим изменениям бесплатно. Также желательно ознакомиться с лицензией отдельных компонентов, являющихся частью wxWidgets, таких как библиотеки по работе с PNG и JPEG.
Исходный код, который поставляется с данной книгой, публикуется под лицензией wxWindows.
Архитектура wxWidgets
Таблица ref{wxapi} показывает четыре концептуальных уровня: внешний API wxWidgets, основной порт, API платформы, используемый этим портом и, наконец, название операционной системы.
Далее мы перечислим основные порты wxWidgets, которые существовали на время написания книги.
wxMSW
Этот порт компилируется и запускается на всех 32-х и 64-х битных версиях Microsoft Windows, включая Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP и Windows 2003. Он также может быть скомпилирован при использовании библиотеки Winelib под Linux. Также существует рабочая конфигурация под Windows CE (см. <>). Порт wxMSW может быть сконфигурирован для использования wxUniversal, вместо стандартных Win32 элементов.
wxGTK
wxWidgets для GTK+ может использовать элементы GTK+ версии 1.x или 2.x на любой из разновидностей Unix, поддерживающих X11 и GTK+ (например, Linux, Solaris, HP-UX, IRIX, FreeBSD, OpenBSD, AIX и других). Библиотека также может работать на встраиваемых платформах с достаточными для этого ресурсами, например, в среде GPE Palmtop (смотрите рис.~ref{pic1_4}). wxGTK является рекомендуемым портом для всех Unix-систем.
wxX11
wxWidgets для X11 использует набор элементов из wxUniversal и запускается непосредственно в Xlib, которая не имеет собственных элементов управления. Это обстоятельство делает порт подходящим для встраиваемых систем, но при его можно использовать и для построения приложений, которым не хотелось бы иметь зависимости от GTK+. Библиотека позволяет запускать приложение на любой Unix-системе, где может быть запущен X11. Порт wxX11 не является таким же развитым, как и wxGTK. На рис.~ref{pic1_5} показана игра <>, скомпилированная вместе с портом wxX11 и запущенная в системе Familiar Linux/TinyX на iPAQ PDA.
wxMotif
Этот порт может использовать Motif, OpenMotif или Lesstif на большинстве Unix-систем. Sun Microsystems оценивает функциональность своей библиотеки между GTK+ и GNOME, поэтому использование Motif не является желательной опцией для большинства разработчиков и пользователей.
wxMac
wxMac нацелен на запуск приложений в среде Mac OS 9 (требуется версия не меньшая 9.1) и Mac OS X (требуется версия не меньшая 10.2.8). Чтобы компилировать приложения для Mac OS 9 вам потребуются утилиты из Metrowerks CodeWarrior. Для Mac OS X вы можете использовать как Metrowerks CodeWarrior, так и Apple tools. В последнем случае вам необходимо использовать Xcode версии 1.5 или выше. Если вы любите пользоваться командной строкой, то можно обойтись компилятором GCC версии 3.3 или выше.
wxCocoa
Этот порт еще находится в процессе разработки и предназначен для использования Cocoa API, впервые появившейся в Mac OS X. Хотя функциональность Carbon и Cocoa очень похожа, но этот порт имеет потенциальную возможность поддержки среды GNUStep на платформах, отличных от Mac.
wxWinCE
Порт Windows CE является оболочкой над различными SDK для систем на базе Windows CE, включая Pocket PC and Smartphone. Основной частью данного порта является порт для Win32 wxMSW с ограничениями и добавлениями для работы на малых платформах. Рис.~ref{pic1_6} показывает игру <>, запущенную в эмуляторе Pocket PC 2003. На рис.~ref{pic1_7} показаны четыре экрана примера <