Кіріспе

FOX құралдар жиынтығы – ашық кодты, платформааралық виджеттер жиынтығы, яғни графикалық пайдаланушы интерфейсін (GUI) құруға арналған негізгі элементтердің кітапханасы. FOX дегеніміз – X үшін еркін нысандар. Ол Microsoft Windows жүйесінің өзінде де, X Window System жүйесінде де (ол көптеген UNIX және UNIX-қа ұқсас операциялық жүйелерде қолданылады) қолжетімді Windows 95 стиліндегі белгілі бір көрініс схемасын қамтиды. FOX құралдар жиынтығы GNU Lesser General Public License лицензиясымен шығарылды. Оның дамуы 1997 жылы Jeroen van der Zijp CFDRC ұйымында жұмыс істеген кезде басталды. Содан бері Jeroen van der Zijp пайдаланушылар қауымдастығының көмегімен негізгі кітапхананы және сынақ қосымшаларын күтіп келді. FOX құралдар жиынтығы C++ тілінде жазылған, ал Python, Ruby және Eiffel тілдері үшін де байланыстар бар. FOX бастапқы кодының таратылымы көптеген түрлі (коммерциялық және ақысыз) C++ компиляторларымен құрастыруды қолдайды.

Хабарламалар жүйесі

FOX екі бағытты, ашық хабар алмасу жүйесін ұсынады. Әр виджет өзінің хабарын белгілі бір нысанаға жібереді. Әрбір хабарлама өзінің түрін анықтайтын таңдауыштан және виджеттің тізімінен алынған бірегей идентификатордан тұрады. Бұл жүйенің артықшылығы – әр виджет нысана виджеттің әдісін ашық түрде шақыра алады, тіпті егер мұндай әдіс болмаса да. Керісінше, жеке хабарды өңдеу іске асырылғанда, жіберуші белгілі болғандықтан, нысана да жіберушіге хабарлама жібере алады. Бұл компоненттік бағдарламалық жасақтамада маңызды мүмкіндік, онда компоненттерді әртүрлі адамдар немесе тіпті әртүрлі ұйымдар жазуы мүмкін. FOX хабар алмасу жүйесі графикалық интерфейсті жаңарту стратегиясын жеңілдетеді: виджеттерді жаңарту кезінде, олар өз нысаналарынан жаңартуды сұрай алады. Бұл командалық хабарламаның әдеттегідей, нақты виджеттерді жаңартуды талап етпейтінін білдіреді. Егер қолданба N командалық хабарламаны іске асырса, олардың әрқайсысы M виджетті жаңартатын болса, онда M*N жаңарту орындалуы керек және ең көп дегенде M*N хабарлама іске асырылуы керек. Алайда, егер виджеттер жаңартуды сұраса, тек N командалық хабарлама және ең көп дегенде M жаңарту хабарламасы іске асырылады. Бұл стратегия графикалық интерфейстің жаңартуын деректердің өзгеруінен бөліп, графикалық интерфейсті негізгі деректер құрылымының нақты уақыттағы көрінісіне айналдырады.